From 95da130fe4972f727f1f7466693e82dd8369d6f7 Mon Sep 17 00:00:00 2001 From: Hadrien Huvelle Date: Fri, 4 Oct 2024 15:31:16 +0200 Subject: [PATCH] [16.0] adds forbid_duplicates on event.type --- .../__manifest__.py | 2 +- .../models/event.py | 20 +++++++++++++++++++ .../static/description/index.html | 12 ++++++----- 3 files changed, 28 insertions(+), 6 deletions(-) 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 @@

Contributors

Maintainers

This module is maintained by the OCA.

-Odoo Community Association + +Odoo Community Association +

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.