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