Repository
odoo/odoo · module folder
Module version
1.3
Category
Marketing/Events
Folder size
1.84 MB
License
LGPL-3
Application
No
Auto-installable
Yes
Website
https://www.odoo.com/app/events
Last tracking update
2026-08-15 22:44:21
Authors
Odoo S.A.
Maintainers
Odoo S.A.
Committers
Raphael Collet, Thibault Delavallée, Odoo Translation Bot, Laurent Smet, Julien Castiaux, Victor Feyens, Julien Mougenot, Tiffany Chang (tic), Gorash, Mathieu Duckerts-Antoine, Renaud Thiry, Ipsita Borisagar, David Monnom (moda), Victor Piryns (pivi), amdi-odoo, Dylan Kiss (dyki), Jérémy Hennecart (jeh), nihp-odoo, Max Whale, aamo-odoo, Shaan Thakkar (THSH), yagp-odoo, Pierre Pulinckx, Bastien PIERRE, Michaël Mattiello, Krzysztof Magusiak (krma), Omar (OSAH), krip-odoo, Mohamed Barakat, saurabh, khah-odoo
Odoo dependencies
Python dependencies
None
System dependencies
None
Required by
event_booth_sale, event_crm_sale, event_sale_free_no_invoiceable, event_sale_reservation, spreadsheet_dashboard_event_sale, test_event_full, test_sale_product_configurators, website_event_sale
Description
Creating registration with sales orders.
========================================

This module allows you to automate and connect your registration creation with
your main sale flow and therefore, to enable the invoicing feature of registrations.

It defines a new kind of service products that offers you the possibility to
choose an event category associated with it. When you encode a sales order for
that product, you will be able to choose an existing event of that category and
when you confirm your sales order it will automatically create a registration for
this event.

Code Analysis

Views touched (13)
XML IDNameModelTypeStatus
event_configurator_view_form event.configurator.view.form event.event.configurator form New
event_registration_change_exception Message: Alert on event registration data change ir.ui.view qweb New
event_registration_ticket_view_form event.registration.form.inherit event.registration form Inherits event_product.event_registration_ticket_view_form
event_sale_report_view_form event.sale.report.view.form event.sale.report form New
event_sale_report_view_graph event.sale.report.view.graph event.sale.report graph New
event_sale_report_view_pivot event.sale.report.view.pivot event.sale.report pivot New
event_sale_report_view_search event.sale.report.view.search event.sale.report search New
event_sale_report_view_tree event.sale.report.view.list event.sale.report list New
product_template_form_view product.template.inherit.event.sale product.template form Inherits sale.product_template_form_view
sale_order_view_form sale.order.form.inherit.event.sale sale.order form Inherits sale.view_order_form
view_event_form_inherit_ticket event.form.inherit event.event form Inherits event.view_event_form
view_event_registration_editor_form registration.editor.form registration.editor form New
view_event_registration_ticket_tree event.registration.list.inherit event.registration list Inherits event.view_event_registration_tree
HTTP endpoints (0)

No HTTP endpoints found for this module.

Models touched (10)

New fields (2)
  • sale_order_lines_ids One2many → sale.order.line
    groups='sales_team.group_sale_salesman' string='All sale order lines pointing to this event' args: 'sale.order.line', 'event_id'
  • sale_price_total Monetary
    compute='_compute_sale_price_total' groups='sales_team.group_sale_salesman' string='Sales (Tax Included)'
Public methods (1)
  • action_view_linked_orders(self)
    Redirects to only the confirmed orders linked to the current events

New fields (6)
  • event_id Many2one → event.event
    string='Event' args: 'event.event'
  • event_slot_id Many2one → event.slot
    compute='_compute_event_slot_id' domain="[('event_id', '=', event_id)]" readonly=False store=True string='Slot' args: 'event.slot'
  • event_ticket_id Many2one → event.event.ticket
    compute='_compute_event_ticket_id' domain="[('event_id', '=', event_id)]" readonly=False store=True string='Ticket Type' args: 'event.event.ticket'
  • has_available_tickets Boolean
    compute='_compute_has_available_tickets' args: 'Has Available Tickets'
  • is_multi_slots Boolean
    related='event_id.is_multi_slots'
  • product_id Many2one → product.product
    readonly=True string='Product' args: 'product.product'
Public methods (1)
  • check_event_id(self)
    @api.constrains('event_id', 'event_slot_id', 'event_ticket_id')

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (6)
  • sale_order_id Many2one → sale.order
    copy=False ondelete='cascade' string='Sales Order' args: 'sale.order'
  • sale_order_line_id Many2one → sale.order.line
    copy=False index='btree_not_null' ondelete='cascade' string='Sales Order Line' args: 'sale.order.line'
  • state Selection
    compute='_compute_registration_status' default=None precompute=True readonly=False store=True
  • utm_campaign_id Many2one
    compute='_compute_utm_campaign_id' ondelete='set null' readonly=False store=True
  • utm_medium_id Many2one
    compute='_compute_utm_medium_id' ondelete='set null' readonly=False store=True
  • utm_source_id Many2one
    compute='_compute_utm_source_id' ondelete='set null' readonly=False store=True
Public methods (3)
  • action_view_sale_order(self)
  • create(self, vals_list)
    @api.model_create_multi
  • write(self, vals)

New fields (24)
  • active Boolean
    args: 'Is registration active (not archived)?'
  • company_id Many2one → res.company
    readonly=True string='Company' args: 'res.company'
  • event_date_begin Date
    readonly=True string='Event Start Date'
  • event_date_end Date
    readonly=True string='Event End Date'
  • event_id Many2one → event.event
    readonly=True string='Event' args: 'event.event'
  • event_registration_create_date Date
    readonly=True string='Registration Date'
  • event_registration_id Many2one → event.registration
    readonly=True args: 'event.registration'
  • event_registration_name Char
    readonly=True args: 'Attendee Name'
  • event_registration_state Selection
    readonly=True string='Registration Status' args: [('draft', 'Unconfirmed'), ('cancel', 'Cancelled'), ('open', 'Confirmed'), ('done', 'Attended')]
  • event_slot_id Many2one → event.slot
    readonly=True string='Event Slot' args: 'event.slot'
  • event_ticket_id Many2one → event.event.ticket
    readonly=True string='Event Ticket' args: 'event.event.ticket'
  • event_ticket_price Float
    readonly=True string='Ticket price'
  • event_type_id Many2one → event.type
    readonly=True string='Event Type' args: 'event.type'
  • invoice_partner_id Many2one → res.partner
    readonly=True string='Invoice Address' args: 'res.partner'
  • product_id Many2one → product.product
    readonly=True string='Product' args: 'product.product'
  • sale_order_date Datetime
    readonly=True args: 'Order Date'
  • sale_order_id Many2one → sale.order
    readonly=True args: 'sale.order'
  • sale_order_line_id Many2one → sale.order.line
    readonly=True args: 'sale.order.line'
  • sale_order_partner_id Many2one → res.partner
    readonly=True string='Customer' args: 'res.partner'
  • sale_order_state Selection
    readonly=True selection=SALE_ORDER_STATE string='Sale Order Status'
  • sale_order_user_id Many2one → res.users
    readonly=True string='Salesperson' args: 'res.users'
  • sale_price Float
    readonly=True args: 'Revenues'
  • sale_price_untaxed Float
    readonly=True args: 'Untaxed Revenues'
  • sale_status Selection
    selection=[('to_pay', 'Not Sold'), ('sold', 'Sold'), ('free', 'Free')] string='Payment Status'
Public methods (1)
  • init(self)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (2)
  • event_registration_ids One2many → registration.editor.line
    string='Registrations to Edit' args: 'registration.editor.line', 'editor_id'
  • sale_order_id Many2one → sale.order
    ondelete='cascade' required=True args: 'sale.order', 'Sales Order'
Public methods (2)
  • action_make_registration(self)
  • default_get(self, fields)
    @api.model

New fields (10)
  • company_id Many2one
    related='event_id.company_id'
  • editor_id Many2one → registration.editor
    args: 'registration.editor'
  • email Char
    string='Email'
  • event_id Many2one → event.event
    required=True string='Event' args: 'event.event'
  • event_slot_id Many2one → event.slot
    string='Event Slot' args: 'event.slot'
  • event_ticket_id Many2one → event.event.ticket
    string='Event Ticket' args: 'event.event.ticket'
  • name Char
    string='Name'
  • phone Char
    string='Phone'
  • registration_id Many2one → event.registration
    args: 'event.registration', 'Original Registration'
  • sale_order_line_id Many2one → sale.order.line
    string='Sales Order Line' args: 'sale.order.line'
Public methods (0)

No public methods.

New fields (1)
  • attendee_count Integer
    compute='_compute_attendee_count' args: 'Attendee Count'
Public methods (3)
  • action_confirm(self)
  • action_view_attendee_list(self)
  • write(self, vals)
    Synchronize partner from SO to registrations. This is done notably in website_sale controller shop/address that updates customer, but not only.

New fields (5)
  • event_id Many2one → event.event
    compute='_compute_event_id' help='Choose an event and it will automatically create a registration for this event.' index='btree_not_null' precompute=True readonly=False store=True string='Event' args: 'event.event'
  • event_slot_id Many2one → event.slot
    compute='_compute_event_related' help='Choose an event slot and it will automatically create a registration for this event slot.' precompute=True readonly=False store=True string='Slot' args: 'event.slot'
  • event_ticket_id Many2one → event.event.ticket
    compute='_compute_event_related' help='Choose an event ticket and it will automatically create a registration for this event ticket.' precompute=True readonly=False store=True string='Ticket Type' args: 'event.event.ticket'
  • is_multi_slots Boolean
    related='event_id.is_multi_slots'
  • registration_ids One2many → event.registration
    string='Registrations' args: 'event.registration', 'sale_order_line_id'
Public methods (0)

No public methods.

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…