From 2ace02a5b78a60f27688309df0b03bca9d629199 Mon Sep 17 00:00:00 2001 From: Jean-Marie Favreau Date: Wed, 19 Feb 2025 16:30:25 +0100 Subject: [PATCH] =?UTF-8?q?On=20garde=20l'ordre=20au=20moment=20d'int?= =?UTF-8?q?=C3=A9grer=20des=20champs=20dans=20un=20dupliqu=C3=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fix #317 --- src/agenda_culturel/forms.py | 45 ++++++++++++------- src/agenda_culturel/models.py | 6 +++ .../agenda_culturel/update_duplicate.html | 2 +- src/agenda_culturel/views.py | 4 +- 4 files changed, 37 insertions(+), 20 deletions(-) diff --git a/src/agenda_culturel/forms.py b/src/agenda_culturel/forms.py index 88a0a75..f73ff7b 100644 --- a/src/agenda_culturel/forms.py +++ b/src/agenda_culturel/forms.py @@ -574,9 +574,10 @@ class MergeDuplicates(Form): if self.event: - choices = [("event_" + str(self.event.pk), _("Value of the selected version"))] + \ - [ - ("event_" + str(e.pk), _("Value of version {}").format(e.pk)) for e in self.events if e != self.event + choices = [ + ("event_" + str(e.pk), _("Value of version {}").format(e.pk)) if e != self.event else + ("event_" + str(e.pk), _("Value of the selected version")) + for e in self.events ] else: choices = [ @@ -603,20 +604,30 @@ class MergeDuplicates(Form): result += ( '
  • ' + e.title + "
  • " ) - result += ( - "
  • Création : " + localize(e.created_date) + "
  • " - ) - result += ( - "
  • Dernière modification : " - + localize(e.modified_date) - + "
  • " - ) - if e.imported_date: - result += ( - "
  • Dernière importation : " - + localize(e.imported_date) - + "
  • " - ) + for step in e.chronology_dates(): + if step["data"] == "created_date": + result += '
  • Création le ' + localize(step["timestamp"]) + ' par ' + str(step["user"]) + '
  • ' + if step["data"] == "modified_date": + result += '
  • Dernière modification le ' + localize(step["timestamp"]) + if e.modified_by_user: + result += ' par ' + e.modified_by_user.username + else: + result += ' par import récurrent' + result += '
  • ' + + if step["data"] == "moderated_date": + result += '
  • Dernière modération le ' + localize(step["timestamp"]) + if e.moderated_by_user: + result += ' par ' + e.moderated_by_user.username + result += '
  • ' + if step["data"] == "imported_date": + result += '
  • Dernière importation le ' + localize(step["timestamp"]) + if e.imported_by_user: + result += ' par ' + e.imported_by_user.username + else: + result += ' par import récurrent' + result += '
  • ' + result += "" result += "" result += "" diff --git a/src/agenda_culturel/models.py b/src/agenda_culturel/models.py index f060af0..06c33cf 100644 --- a/src/agenda_culturel/models.py +++ b/src/agenda_culturel/models.py @@ -432,6 +432,12 @@ class DuplicatedEvents(models.Model): msgs.append(m) return msgs + def get_event_index(self, event): + for i, e in enumerate(self.get_duplicated()): + if e.pk == event.pk: + return i + return -1 + class ReferenceLocation(models.Model): diff --git a/src/agenda_culturel/templates/agenda_culturel/update_duplicate.html b/src/agenda_culturel/templates/agenda_culturel/update_duplicate.html index de94b05..293fd8a 100644 --- a/src/agenda_culturel/templates/agenda_culturel/update_duplicate.html +++ b/src/agenda_culturel/templates/agenda_culturel/update_duplicate.html @@ -14,7 +14,7 @@

    Mise à jour par sélection de champs

    -

    Vous allez mettre à jour la version A en sélectionnant +

    Vous allez mettre à jour la version {{ event_id|int_to_abc }} en sélectionnant pour chaque champ les valeurs des autres versions.

    La version ainsi créée mise à jour deviendra la version représentative.

    diff --git a/src/agenda_culturel/views.py b/src/agenda_culturel/views.py index 8664060..98a12fe 100644 --- a/src/agenda_culturel/views.py +++ b/src/agenda_culturel/views.py @@ -1519,7 +1519,7 @@ def update_duplicate_event(request, pk, epk): return render( request, "agenda_culturel/update_duplicate.html", - context={"form": form, "object": edup, "event": event}, + context={"form": form, "object": edup, "event_id": edup.get_event_index(event)}, ) @@ -1648,7 +1648,7 @@ def fix_duplicate(request, pk): else: form = FixDuplicates(edup=edup) elif form.is_action_update(): - # otherwise, a new event will be created using a merging process + # otherwise, an event will be updated using other elements event = form.get_selected_event(edup) if event is None: messages.error(request, _("The selected item is no longer included in the list of duplicates. Someone else has probably modified the list in the meantime."))