diff --git a/event_registration_limit/__init__.py b/event_registration_limit/__init__.py new file mode 100644 index 00000000000..0650744f6bc --- /dev/null +++ b/event_registration_limit/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/event_registration_limit/__manifest__.py b/event_registration_limit/__manifest__.py new file mode 100644 index 00000000000..3c77239e1be --- /dev/null +++ b/event_registration_limit/__manifest__.py @@ -0,0 +1,12 @@ +{ + 'name': "Event Registration limit", + 'category': "Marketing/Events", + 'summary': "Module to Limit the Number of Tickets Per Registration", + 'depends': ['event', 'website_event'], + 'data': [ + 'views/event_event_views.xml', + 'views/event_registration_views.xml' + ], + 'installable': True, + 'license': "AGPL-3", +} diff --git a/event_registration_limit/models/__init__.py b/event_registration_limit/models/__init__.py new file mode 100644 index 00000000000..b6bc3899716 --- /dev/null +++ b/event_registration_limit/models/__init__.py @@ -0,0 +1 @@ +from . import event_event diff --git a/event_registration_limit/models/event_event.py b/event_registration_limit/models/event_event.py new file mode 100644 index 00000000000..ba73f81e9e1 --- /dev/null +++ b/event_registration_limit/models/event_event.py @@ -0,0 +1,22 @@ + +from odoo import api, fields, models +from odoo.exceptions import ValidationError + + +class Event(models.Model): + _inherit = "event.event" + + # Event-level limit for max tickets per registration + default_tickets_per_registration = fields.Integer( + string="Default Tickets per Registration", + help="Maximum number of tickets that can be booked in a single registration for this event.", + default=9 + ) + + @api.constrains("default_tickets_per_registration") + def _check_ticket_limit(self): + for event in self: + if event.default_tickets_per_registration < 0: + raise ValidationError( + "Default tickets per registration must be greater than 0." + ) diff --git a/event_registration_limit/views/event_event_views.xml b/event_registration_limit/views/event_event_views.xml new file mode 100644 index 00000000000..9b0dd255c2b --- /dev/null +++ b/event_registration_limit/views/event_event_views.xml @@ -0,0 +1,15 @@ + + + + + event.event.view.form.from.event.inherit + event.event + + + + + + + + + diff --git a/event_registration_limit/views/event_registration_views.xml b/event_registration_limit/views/event_registration_views.xml new file mode 100644 index 00000000000..daeac7ff33e --- /dev/null +++ b/event_registration_limit/views/event_registration_views.xml @@ -0,0 +1,50 @@ + + + + + +