Skip to content

Commit 8041e04

Browse files
committed
[ADD] event_ticket_limit: add event ticket limiting module
Added event ticket limiting module allows users to control how many tickets a Users can book in a single registration.
1 parent fb4bc2d commit 8041e04

File tree

6 files changed

+62
-0
lines changed

6 files changed

+62
-0
lines changed

event_ticket_limit/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
from . import models

event_ticket_limit/__manifest__.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
{
2+
"name": "Event Ticket Limit",
3+
"summary": """
4+
Module for limiting the number of tickets per registration
5+
""",
6+
"description": """
7+
Module for limiting the number of tickets per registration
8+
""",
9+
"author": "Odoo",
10+
"website": "https://www.odoo.com",
11+
"category": "Event/ Event Ticket Limit",
12+
"version": "0.1",
13+
"installable": True,
14+
"auto_install": True,
15+
"depends": ["base_setup", "event", "website_event"],
16+
"data": [
17+
"views/event_tickets_views.xml",
18+
"views/event_registration_website_view.xml",
19+
],
20+
"license": "AGPL-3",
21+
}

event_ticket_limit/models/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
from . import event_ticket
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
from odoo import fields, models
2+
3+
4+
class EventTicketInherit(models.Model):
5+
_inherit = "event.event.ticket"
6+
7+
tickets_per_registration = fields.Integer(
8+
string="Tickets per Registration",
9+
help="Number of tickets per registration. 0 means unlimited.",
10+
)
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<odoo>
3+
<template id="modal_ticket_registration" name="modal_ticket_registration" inherit_id="website_event.modal_ticket_registration">
4+
<xpath expr="//select[@class='w-auto form-select']" position="replace">
5+
<select t-if="not ticket.is_expired and ticket.sale_available" t-attf-name="nb_register-#{ticket.id}" class="w-auto form-select">
6+
<t t-set="seats_max_ticket" t-value="(not ticket.seats_limited or ticket.seats_available > 9) and 10 or ticket.seats_available + 1"/>
7+
<t t-set="seats_max_event" t-value="(not event.seats_limited or event.seats_available > 9) and 10 or event.seats_available + 1"/>
8+
<t t-set="seats_max_registration" t-value="ticket.tickets_per_registration+1 if ticket.tickets_per_registration else 10"/>
9+
<t t-set="seats_max" t-value="min(seats_max_ticket, seats_max_event, seats_max_registration)"/>
10+
<t t-foreach="range(0, seats_max)" t-as="nb">
11+
<option t-out="nb" t-att-selected="len(ticket) == 0 and nb == 0 and 'selected'"/>
12+
</t>
13+
</select>
14+
</xpath>
15+
</template>
16+
</odoo>
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<odoo>
3+
<record id="event_event_ticket_view_tree_from_event_inherit_module_name" model="ir.ui.view">
4+
<field name="name">event.event.ticket.view.list.inherit</field>
5+
<field name="model">event.event.ticket</field>
6+
<field name="inherit_id" ref="event.event_event_ticket_view_tree_from_event"/>
7+
<field name="arch" type="xml">
8+
<xpath expr="//list" position="inside">
9+
<field name="tickets_per_registration" />
10+
</xpath>
11+
</field>
12+
</record>
13+
</odoo>

0 commit comments

Comments
 (0)