Bug #48615
Crash à l'import si des Exceptions similiaires sont positionnées sur un guichet
Début:
17 novembre 2020
Echéance:
% réalisé:
0%
Temps estimé:
Patch proposed:
Oui
Planning:
Non
Description
Genre quelqu'un qui aurait mis un jour un agenda par un import avant #48095, il aura dupliqué sans le savoir des exceptions, et aujourd'hui nouvelle mise a jour via un import, crash.
Traceback: File "/home/cazino/envs/publik-env-py3/lib/python3.7/site-packages/django/core/handlers/exception.py" in inner 41. response = get_response(request) File "/home/cazino/envs/publik-env-py3/lib/python3.7/site-packages/django/core/handlers/base.py" in _get_response 187. response = self.process_exception_by_middleware(e, request) File "/home/cazino/envs/publik-env-py3/lib/python3.7/site-packages/django/core/handlers/base.py" in _get_response 185. response = wrapped_callback(request, *callback_args, **callback_kwargs) File "/home/cazino/envs/publik-env-py3/lib/python3.7/site-packages/django/contrib/auth/decorators.py" in _wrapped_view 23. return view_func(request, *args, **kwargs) File "/home/cazino/envs/publik-env-py3/lib/python3.7/site-packages/django/views/generic/base.py" in view 68. return self.dispatch(request, *args, **kwargs) File "/home/cazino/src/chrono/chrono/manager/views.py" in dispatch 603. return super(AgendasImportView, self).dispatch(request, *args, **kwargs) File "/home/cazino/envs/publik-env-py3/lib/python3.7/site-packages/django/views/generic/base.py" in dispatch 88. return handler(request, *args, **kwargs) File "/home/cazino/envs/publik-env-py3/lib/python3.7/site-packages/django/views/generic/edit.py" in post 183. return self.form_valid(form) File "/home/cazino/src/chrono/chrono/manager/views.py" in form_valid 613. results = import_site(agendas_json, overwrite=False) File "/home/cazino/src/chrono/chrono/manager/utils.py" in import_site 69. created = cls.import_json(data, overwrite=overwrite) File "/home/cazino/src/chrono/chrono/agendas/models.py" in import_json 380. Desk.import_json(desk) File "/home/cazino/src/chrono/chrono/agendas/models.py" in import_json 1157. TimePeriodException.import_json(exception) File "/home/cazino/src/chrono/chrono/agendas/models.py" in import_json 1682. exception, _ = cls.objects.update_or_create(defaults=data, **query_data) File "/home/cazino/envs/publik-env-py3/lib/python3.7/site-packages/django/db/models/manager.py" in manager_method 85. return getattr(self.get_queryset(), name)(*args, **kwargs) File "/home/cazino/envs/publik-env-py3/lib/python3.7/site-packages/django/db/models/query.py" in update_or_create 480. obj = self.select_for_update().get(**lookup) File "/home/cazino/envs/publik-env-py3/lib/python3.7/site-packages/django/db/models/query.py" in get 384. (self.model._meta.object_name, num) Exception Type: MultipleObjectsReturned at /manage/agendas/import/ Exception Value: get() returned more than one TimePeriodException -- it returned 3!
Fichiers
Révisions associées
Historique
Mis à jour par Emmanuel Cazenave il y a plus de 3 ans
- Sujet changé de Crash à l'import sur des Excrptions similiaires sont positionnées sur un guichet à Crash à l'import si des Exceptions similiaires sont positionnées sur un guichet
Mis à jour par Lauréline Guérin il y a plus de 3 ans
- Assigné à mis à Lauréline Guérin
On pourrait, dans le cas où on a une MultipleObjectsReturned, au choix:
- updater toutes les exceptions qui matchent (label, start_datetime, end_datetime, recurrence_id)
- supprimer toutes les exceptions qui matchent et n'en recréer qu'une seule
Manu tu en penses quoi ?
Mis à jour par Emmanuel Cazenave il y a plus de 3 ans
Supprimer ça fait quand même un peu peur dès fois qu'on se loupe, tout mettre à jour ça me parait pas mal.
Mis à jour par Lauréline Guérin il y a plus de 3 ans
- Fichier 0001-agendas-fix-import-with-duplicated-exceptins-48615.patch 0001-agendas-fix-import-with-duplicated-exceptins-48615.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 Valentin Deniaud il y a plus de 3 ans
- Statut changé de Solution proposée à Solution validée
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 735a4785cdd45af0d73d1268e87ec304f47e6fe8 Author: Lauréline Guérin <zebuline@entrouvert.com> Date: Tue Nov 24 11:46:03 2020 +0100 agendas: fix import with duplicated exceptins (#48615)
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: fix import with duplicated exceptins (#48615)