@@ -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)
 | 
			
		||||
 
 | 
			
		||||
@@ -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:
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user