From 7b1a9f33f98a33a31bcfad4764373cd45f26aebb Mon Sep 17 00:00:00 2001
From: Helge Jung <hej@c3pb.de>
Date: Wed, 25 Dec 2024 19:05:14 +0100
Subject: [PATCH] Event: make duplicate name detection optional, defaulting to
 "no"

---
 src/core/models/events.py | 5 +++--
 src/hub/settings/base.py  | 7 +++++++
 2 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/src/core/models/events.py b/src/core/models/events.py
index 9908758a1..12e855e0e 100644
--- a/src/core/models/events.py
+++ b/src/core/models/events.py
@@ -483,8 +483,9 @@ class Event(TaggedItemMixin, BackendMixin, ActivityLogMixin, models.Model):
         sos = self.kind == self.Kind.SELF_ORGANIZED
         event_type = _('SoS') if sos else _('event')
 
-        if Event.objects.exclude(id=self.id).filter(conference=self.conference, assembly=self.assembly, name=self.name).exists():
-            errors['name'] = ValidationError(_('Event__name__already_exists %(event_type)s') % {'event_type': event_type}, code='duplicate')
+        if settings.BLOCK_DUPLICATE_EVENT_NAMES:
+            if Event.objects.exclude(id=self.id).filter(conference=self.conference, assembly=self.assembly, name=self.name).exists():
+                errors['name'] = ValidationError(_('Event__name__already_exists %(event_type)s') % {'event_type': event_type}, code='duplicate')
 
         # SoS assembly setting on conference must be set
         if self.assembly and self.conference and sos:
diff --git a/src/hub/settings/base.py b/src/hub/settings/base.py
index ddfc524ff..64a6e5244 100644
--- a/src/hub/settings/base.py
+++ b/src/hub/settings/base.py
@@ -118,6 +118,7 @@ env = environ.FileAwareEnv(
     CSP_BASE_URI=(list, ["'self'"]),
     CSP_INCLUDE_NONCE_IN=(list, ['script-src']),
     ADDITIONAL_LINK_PROTOCOLS=(dict, {}),
+    BLOCK_DUPLICATE_EVENT_NAMES=(bool, False),
 )
 
 
@@ -546,6 +547,12 @@ METRICS_SERVER_IPS = env('METRICS_SERVER_IPS')
 
 ADDITIONAL_LINK_PROTOCOLS = env.dict('ADDITIONAL_LINK_PROTOCOLS', cast={'value': str})
 
+# ----------------------------------
+# Internal Schedule Support
+# ----------------------------------
+
+BLOCK_DUPLICATE_EVENT_NAMES = env.bool('BLOCK_DUPLICATE_EVENT_NAMES')
+
 # ----------------------------------
 # External Schedule Support
 # ----------------------------------
-- 
GitLab