Projet

Général

Profil

Bug #48615

Crash à l'import si des Exceptions similiaires sont positionnées sur un guichet

Ajouté par Emmanuel Cazenave il y a plus de 3 ans. Mis à jour il y a plus de 3 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Catégorie:
-
Version cible:
-
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

Révision 735a4785 (diff)
Ajouté par Lauréline Guérin il y a plus de 3 ans

agendas: fix import with duplicated exceptins (#48615)

Historique

#1

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
#2

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 ?

#3

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.

#4

Mis à jour par Lauréline Guérin il y a plus de 3 ans

#6

Mis à jour par Valentin Deniaud il y a plus de 3 ans

  • Statut changé de Solution proposée à Solution validée
#7

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)
#8

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

Formats disponibles : Atom PDF