Organisers peut être fusionné

Fix #409
This commit is contained in:
Jean-Marie Favreau 2025-04-26 18:19:12 +02:00
parent 0d4d6b5e9b
commit d74e1abd67
2 changed files with 22 additions and 12 deletions

View File

@ -663,7 +663,7 @@ class SelectEventInList(Form):
class MergeDuplicates(Form):
required_css_class = "required"
checkboxes_fields = ["reference_urls", "description", "tags"]
checkboxes_fields = ["reference_urls", "description", "tags", "organisers"]
def __init__(self, *args, **kwargs):
self.duplicates = kwargs.pop("duplicates", None)

View File

@ -48,23 +48,27 @@ def update_duplicate_event(request, pk, epk):
if len(values) != 0:
if isinstance(values[0], str):
setattr(event, f["key"], "\n".join(values))
elif (
values[0].__class__.__name__ == "ManyRelatedManager"
):
rels = set()
for v in values:
rels.update(v.all())
getattr(event, f["key"]).set(rels)
else:
setattr(event, f["key"], sum(values, []))
else:
if f["key"] == "organisers":
event.organisers.set(selected.organisers.all())
else:
setattr(
event,
f["key"],
getattr(selected, f["key"]),
)
if f["key"] == "image":
setattr(
event,
f["key"],
getattr(selected, f["key"]),
"local_image",
getattr(selected, "local_image"),
)
if f["key"] == "image":
setattr(
event,
"local_image",
getattr(selected, "local_image"),
)
event.other_versions.fix(event)
event.save()
@ -116,6 +120,12 @@ def merge_duplicate(request, pk):
else:
if isinstance(values[0], str):
new_event_data[f["key"]] = "\n".join(values)
elif values[0].__class__.__name__ == "ManyRelatedManager":
new_event_data[f["key"]] = values[0]
rels = set()
for v in values:
rels.update(v.all())
new_event_data[f["key"]].set(rels)
else:
new_event_data[f["key"]] = sum(values, [])
else: