diff --git a/src/core/models/events.py b/src/core/models/events.py index 9908758a1ed23a87fc590d33507e0eac0284204f..12e855e0e3cf13154b95f72f14fa03623edce845 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 ddfc524ffb7179449d24ed8bfc128177a73b91cd..64a6e524415d1484deee53071c071d1b6491d577 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 # ----------------------------------