Development #47394
Calendrier d'indisponibilités : gérer l'import/export
0%
Description
...
Fichiers
Demandes liées
Révisions associées
Historique
Mis à jour par Emmanuel Cazenave il y a plus de 3 ans
- Lié à Development #46555: Permettre de poser une exception qui s'applique sur plusieurs agenda ajouté
Mis à jour par Emmanuel Cazenave il y a plus de 3 ans
- Statut changé de Nouveau à En cours
- Assigné à mis à Emmanuel Cazenave
Mis à jour par Emmanuel Cazenave il y a plus de 3 ans
- Fichier 0001-agendas-handle-import-export-of-unavailability-calen.patch 0001-agendas-handle-import-export-of-unavailability-calen.patch ajouté
- Statut changé de En cours à Solution proposée
- Patch proposed changé de Non à Oui
Mis à jour par Lauréline Guérin il y a plus de 3 ans
unavailability_calendar, created = cls.objects.get_or_create(slug=data['slug'], defaults=data) if not created: for k, v in data.items(): setattr(unavailability_calendar, k, v)
Pourquoi ne pas faire un update_or_create ?
Mis à jour par Emmanuel Cazenave il y a plus de 3 ans
- Fichier 0001-agendas-handle-import-export-of-unavailability-calen.patch 0001-agendas-handle-import-export-of-unavailability-calen.patch ajouté
Lauréline Guerin a écrit :
[...]
Pourquoi ne pas faire un update_or_create ?
Copier/coller sans réfléchir, c'est corrigé plus couverture de cette situation dans le test.
Mis à jour par Emmanuel Cazenave il y a plus de 3 ans
- Statut changé de Solution proposée à En cours
Il manque la partie UI, je suis à l'ouest.
Mis à jour par Emmanuel Cazenave il y a plus de 3 ans
Faire apparaître l'export dans l'UI c'est straight forward.
Pour l'import si on passe par l'unique point d'entrée actuel, le bouton 'Importer' sur /manage, il y a une nouvelle formulation trouver parce que ça amène sur '/manage/agendas/import/' ou il est écrit 'Importation d'agendas' et 'fichier d'agendas'.
Donc trouver une formulation complètement neutre, qui couvrira aussi peut-être plus tard l'import de Resource ou de tout autre type d'objet qui n'existe pas encore
Deuxième option séparer les point d'entrée d'import, genre faire apparaître un bouton d'import sur /manage/unavailability-calendars/, plus tard sur '/manage/resources/', etc.
Je ne sais pas trop quoi en penser, à votre bon cœur.
Mis à jour par Frédéric Péters il y a plus de 3 ans
Deuxième option séparer les point d'entrée d'import, genre faire apparaître un bouton d'import sur /manage/unavailability-calendars/, plus tard sur '/manage/resources/', etc.
Bof.
Pour moi il faut 1/ l'export/import global, qu'il contienne agendas et ressources et calendriers d'indisponibilités (c'est le plus important) et 2/ individuellement sur les pages d'un agenda, d'une ressource, d'un calendrier d'indisponibilités avoir une action d'export.
En évolution plus loin, si jamais ça se trouve être utile, l'export global pourrait commencer par une boite de dialogue où il serait possible de cocher les types d'objets souhaités dans l'export. (je pense avoir déjà fait une maquette pour ça, mais c'était peut-être en fait dans combo).
Mis à jour par Emmanuel Cazenave il y a plus de 3 ans
- Fichier 0001-agendas-handle-import-export-of-unavailability-calen.patch 0001-agendas-handle-import-export-of-unavailability-calen.patch ajouté
- Statut changé de En cours à Solution proposée
Pour l'export global que nous n'avons pas : #48100 parce que c'est quand même un peu de boulot.
Du coup ici j'ai rajouté l'export depuis un calendrier d'indisponibilité, facile.
Et je modifie l'import global qui invite à 'importer' tout court plutôt que 'Importation d'agendas' (comme dans wcs), et gestion des types d'objets différents dans le rapport d'importation.
Mis à jour par Valentin Deniaud il y a plus de 3 ans
Petite remarque de forme,
+ try: + slug = unavailability_calendar['slug'] + target_calendar = UnavailabilityCalendar.objects.get(slug=slug) + desk.unavailability_calendars.add(target_calendar) + except UnavailabilityCalendar.DoesNotExist:
je trouve ça mieux quand on ne met que la ligne qui doit lever une exception dans le try.
Je pense qu'il faut un peu revoir les messages qui s'affichent suite à un import, quand j'importe un agenda ça fait bizarre de lire « aucune calendrier d'indispo trouvé », et inversement quand j'apporte un calendrier savoir que « aucun agenda trouvé » ne me paraît pas utile.
À part ça ça me semble tout bon.
Mis à jour par Emmanuel Cazenave il y a plus de 3 ans
- Fichier 0001-agendas-handle-import-export-of-unavailability-calen.patch 0001-agendas-handle-import-export-of-unavailability-calen.patch ajouté
Valentin Deniaud a écrit :
Petite remarque de forme,
Corrigé.
Je pense qu'il faut un peu revoir les messages qui s'affichent suite à un import
Ouaip, j'ai shooté ça au profit d'un peu glorieux mais peu probable 'No data found' si rien ne s'est fait sur aucun type d'objet (genre fichier d'import vide).
Mis à jour par Emmanuel Cazenave il y a plus de 3 ans
- Fichier 0001-agendas-handle-import-export-of-unavailability-calen.patch 0001-agendas-handle-import-export-of-unavailability-calen.patch ajouté
Un broutille corrigée.
Mis à jour par Valentin Deniaud il y a plus de 3 ans
- Statut changé de Solution proposée à Solution validée
Mis à jour par Emmanuel Cazenave il y a plus de 3 ans
- Statut changé de Solution validée à Résolu (à déployer)
commit 033c43f8601db8629294af61fe1d69c33e77580e Author: Emmanuel Cazenave <ecazenave@entrouvert.com> Date: Mon Oct 26 17:15:47 2020 +0100 agendas: handle import/export of unavailability calendars (#47394)
Mis à jour par Frédéric Péters il y a plus de 3 ans
- Statut changé de Résolu (à déployer) à Solution déployée
agendas: handle import/export of unavailability calendars (#47394)