Amélioration du fix des dupliqués

Fix #180
This commit is contained in:
Jean-Marie Favreau 2024-10-30 14:01:59 +01:00
parent deaef7b650
commit 9c0e895c16
3 changed files with 18 additions and 4 deletions

View File

@ -162,13 +162,13 @@ class FixDuplicates(Form):
choices += [ choices += [
( (
"SelectA", "SelectA",
"Ces événements sont identiques, on garde A et on masque B", "Ces événements sont identiques, on conserve A et on masque B",
) )
] ]
choices += [ choices += [
( (
"SelectB", "SelectB",
"Ces événements sont identiques, on garde B et on masque A", "Ces événements sont identiques, on conserve B et on masque A",
) )
] ]
choices += [ choices += [
@ -189,7 +189,7 @@ class FixDuplicates(Form):
choices += [ choices += [
( (
"Select" + i, "Select" + i,
"Ces événements sont identiques, on garde " "Ces événements sont identiques, on conserve "
+ i + i
+ " et on masque les autres", + " et on masque les autres",
) )

View File

@ -222,7 +222,11 @@ class DuplicatedEvents(models.Model):
if event is None: if event is None:
event = e event = e
e.masked = e != event e.masked = e != event
Event.objects.bulk_update(events, fields=["masked"]) if e != event and e.same_uuid(event):
e.status = Event.STATUS.TRASH
if not event is None:
event.status = Event.STATUS.PUBLISHED
Event.objects.bulk_update(events, fields=["masked", "status"])
self.save() self.save()
return len(events) return len(events)
@ -953,6 +957,15 @@ class Event(models.Model):
if Event.is_ancestor_uuid(s_uuid, e_uuid): if Event.is_ancestor_uuid(s_uuid, e_uuid):
return True return True
return False return False
def same_uuid(self, event):
if self.uuids is None or event.uuids is None:
return False
for s_uuid in self.uuids:
for e_uuid in event.uuids:
if s_uuid == e_uuid:
return True
return False
def get_possibly_duplicated(self): def get_possibly_duplicated(self):
if self.possibly_duplicated is None: if self.possibly_duplicated is None:

View File

@ -29,6 +29,7 @@
<form method="post">{% csrf_token %} <form method="post">{% csrf_token %}
{{ form.as_p }} {{ form.as_p }}
<p>Remarque&nbsp;: les éléments masqués qui ont la même source que l'élément à l'élément conservé seront également marqués supprimés.</p>
<div class="grid buttons"> <div class="grid buttons">
<a href="{% if request.META.HTTP_REFERER %}{{ request.META.HTTP_REFERER }}{% else %}{% url 'duplicates' %}{% endif %}" role="button" class="secondary">Annuler</a> <a href="{% if request.META.HTTP_REFERER %}{{ request.META.HTTP_REFERER }}{% else %}{% url 'duplicates' %}{% endif %}" role="button" class="secondary">Annuler</a>
<input type="submit" value="Appliquer"> <input type="submit" value="Appliquer">