Bug #46974
agenda virtuel : erreur sur l'ajout d'un agenda qui eu de l'activité sur ses types de rendez-vous
0%
Description
Quand on veut ajouter un agenda dans un agenda virtuel, mais que ce premier agenda a des meetingtype marqués comme "deleted" (cf #44132), il peut y avoir refus si le type est incompatible avec les types des agendas déjà existants dans l'agenda virtuel.
J'imagine qu'il faut ajouter un delete=False dans les requêtes qui cherchent à vérifier la cohérence des meetingtype.
Fichiers
Révisions associées
perfs: less queryset in VirtualMember clean method (#46974)
Historique
Mis à jour par Thomas Noël il y a plus de 3 ans
J'imagine quelque chose comme :
diff --git a/chrono/agendas/models.py b/chrono/agendas/models.py index a36d212..0ece0b7 100644 --- a/chrono/agendas/models.py +++ b/chrono/agendas/models.py @@ -515,6 +515,7 @@ class VirtualMember(models.Model): label=meetingtype.label, slug=meetingtype.slug, duration=meetingtype.duration, + deleted=False, ) except MeetingType.DoesNotExist: error = True @@ -531,9 +532,9 @@ class VirtualMember(models.Model): num_virt_meetingtypes = len(virtual_meetingtypes) if ( num_virt_meetingtypes - and num_virt_meetingtypes != MeetingType.objects.filter(agenda=self.real_agenda).count() + and num_virt_meetingtypes != MeetingType.objects.filter(agenda=self.real_agenda, deleted=False).count() ): - extra_qs = MeetingType.objects.filter(agenda=self.real_agenda) + extra_qs = MeetingType.objects.filter(agenda=self.real_agenda, deleted=False) for virt_meetingtype in virtual_meetingtypes: extra_qs = extra_qs.exclude( slug=virt_meetingtype.slug,
mais je m'avoue un peu dépassé :/
Mis à jour par Benjamin Dauvergne il y a plus de 3 ans
iter_meetingtypes() contient déjà des deleted=False donc de ce coté ça doit aller, ils manquent donc juste ceux de la deuxième partie du patch que tu décris (mais sans test on ne saura pas vraiment).
Mis à jour par Lauréline Guérin il y a plus de 3 ans
- Fichier 0002-perfs-less-queryset-in-VirtualMember-clean-method-46.patch 0002-perfs-less-queryset-in-VirtualMember-clean-method-46.patch ajouté
- Fichier 0001-virtual-agenda-don-t-check-deleted-meeting-types-469.patch 0001-virtual-agenda-don-t-check-deleted-meeting-types-469.patch ajouté
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
Mis à jour par Lauréline Guérin il y a plus de 3 ans
Mis à jour par Thomas Noël il y a plus de 3 ans
- Statut changé de Solution proposée à Solution validée
Et en plus le code devient quasi lisible (pour moi). Que demander de plus ?
Mis à jour par Lauréline Guérin il y a plus de 3 ans
- Statut changé de Solution validée à Résolu (à déployer)
commit 52b48d6b786fa2a85c519e15d7f4ac08087b2530 Author: Lauréline Guérin <zebuline@entrouvert.com> Date: Fri Sep 25 14:54:29 2020 +0200 perfs: less queryset in VirtualMember clean method (#46974) commit d7a75f172c3e65e8103ea9a6591244bf4a081ffb Author: Lauréline Guérin <zebuline@entrouvert.com> Date: Fri Sep 25 14:51:55 2020 +0200 virtual agenda: don't check deleted meeting types (#46974)
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
virtual agenda: don't check deleted meeting types (#46974)