diff --git a/event_registration_partner_unique/__manifest__.py b/event_registration_partner_unique/__manifest__.py
index 15c51c5bc..19bb33456 100644
--- a/event_registration_partner_unique/__manifest__.py
+++ b/event_registration_partner_unique/__manifest__.py
@@ -15,5 +15,5 @@
"application": False,
"installable": True,
"depends": ["event", "partner_event"],
- "data": ["views/event_event_view.xml"],
+ "data": ["views/event_event_view.xml", "views/event_type_view.xml"],
}
diff --git a/event_registration_partner_unique/models/event.py b/event_registration_partner_unique/models/event.py
index 7769cab59..c41ce410c 100644
--- a/event_registration_partner_unique/models/event.py
+++ b/event_registration_partner_unique/models/event.py
@@ -13,6 +13,9 @@ class EventEvent(models.Model):
forbid_duplicates = fields.Boolean(
help="Check this to disallow duplicate attendees in this event's "
"registrations",
+ compute="_compute_forbid_duplicates",
+ store=True,
+ readonly=False,
)
@api.constrains("forbid_duplicates", "registration_ids")
@@ -22,6 +25,15 @@ def _check_forbid_duplicates(self):
"forbid_duplicates"
).registration_ids._check_forbid_duplicates()
+ @api.depends("event_type_id")
+ def _compute_forbid_duplicates(self):
+ """Update event configuration from its event type. Depends are set only
+ on event_type_id itself, not its sub fields. Purpose is to emulate an
+ onchange: if event type is changed, update event configuration. Changing
+ event type content itself should not trigger this method."""
+ for event in self:
+ event.forbid_duplicates = event.event_type_id.forbid_duplicates
+
class EventRegistration(models.Model):
_inherit = "event.registration"
@@ -51,3 +63,11 @@ def _duplicate_search_domain(self):
("attendee_partner_id", "=", self.attendee_partner_id.id),
("attendee_partner_id", "!=", False),
]
+
+
+class EventType(models.Model):
+ _inherit = "event.type"
+ forbid_duplicates = fields.Boolean(
+ help="Check this to disallow duplicate attendees in this event's "
+ "registrations"
+ )
diff --git a/event_registration_partner_unique/static/description/index.html b/event_registration_partner_unique/static/description/index.html
index a3e61b6c8..4c315c7a4 100644
--- a/event_registration_partner_unique/static/description/index.html
+++ b/event_registration_partner_unique/static/description/index.html
@@ -1,4 +1,3 @@
-
@@ -9,10 +8,11 @@
/*
:Author: David Goodger (goodger@python.org)
-:Id: $Id: html4css1.css 8954 2022-01-20 10:10:25Z milde $
+:Id: $Id: html4css1.css 9511 2024-01-13 09:50:07Z milde $
:Copyright: This stylesheet has been placed in the public domain.
Default cascading style sheet for the HTML output of Docutils.
+Despite the name, some widely supported CSS2 features are used.
See https://docutils.sourceforge.io/docs/howto/html-stylesheets.html for how to
customize this style sheet.
@@ -275,7 +275,7 @@
margin-left: 2em ;
margin-right: 2em }
-pre.code .ln { color: grey; } /* line numbers */
+pre.code .ln { color: gray; } /* line numbers */
pre.code, code { background-color: #eeeeee }
pre.code .comment, code .comment { color: #5C6576 }
pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold }
@@ -301,7 +301,7 @@
span.pre {
white-space: pre }
-span.problematic {
+span.problematic, pre.problematic {
color: red }
span.section-subtitle {
@@ -456,7 +456,9 @@
This module is maintained by the OCA.
-

+
+
+
OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.
diff --git a/event_registration_partner_unique/views/event_type_view.xml b/event_registration_partner_unique/views/event_type_view.xml
new file mode 100644
index 000000000..6af809665
--- /dev/null
+++ b/event_registration_partner_unique/views/event_type_view.xml
@@ -0,0 +1,14 @@
+
+
+ Add option to avoid duplicates
+ event.type
+
+
+
+
+
+
+
+
+
+