Create event quotations from opportunities

sale_crm_event_reservation
REPOSITORY
REPOSITORYOCA/event
GIT
GIThttps://github.com/OCA/event.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/event/tree/17.0/sale_crm_event_reservation
VERSION
VERSION 1.0.2
CATEGORY
CATEGORYMarketing
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLEYes
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA)
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA)
COMMITTERS
COMMITTERSPedro M. Baeza, Weblate, OCA-git-bot, oca-ci, pilarvargas-tecnativa
WEBSITE
WEBSITEhttps://github.com/OCA/event
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:20:04
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/event:
    - crm_event
    - event_sale_reservation
odoo/odoo:
    - crm
    - base_setup
    - base
    - web
    - sales_team
    - mail
    - bus
    - web_tour
    - calendar
    - onboarding
    - resource
    - utm
    - contacts
    - digest
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - phone_validation
    - event
    - barcodes
    - event_sale
    - sale_management
    - sale
    - account_payment
    - account
    - product
    - uom
    - analytic
    - payment
    - sale_crm
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module extends the functionality of *crm_event*,
*event_sale_reservation* and *sale_crm* to support fast generation of
event quotations from opportunities and to allow you to sell events like
a boss.

Code Analysis

Views touched (4)
XML IDNameModelTypeStatus
crm_case_form_view_oppor Add button to create event quotation crm.lead button Inherits sale_crm.crm_case_form_view_oppor
crm_lead_event_sale_wizard_view_form Wizard to generate event quotation from event opportunity crm.lead.event.sale.wizard form New
view_event_type_report_graph Add reservations to event category graph event.type.report graph Inherits crm_event.view_event_type_report_graph
view_event_type_report_pivot Add reservations to event category pivot event.type.report pivot Inherits crm_event.view_event_type_report_pivot
Models touched (2)

New fields (9)
  • allowed_event_ids Many2many → event.event
    comodel_name='event.event' compute='_compute_allowed_event_ids' readonly=True
  • allowed_event_ticket_ids Many2many → event.event.ticket
    comodel_name='event.event.ticket' compute='_compute_allowed_event_ticket_ids' readonly=True
  • event_id Many2one → event.event
    comodel_name='event.event' domain="[('id', 'in', allowed_event_ids)]" index=True ondelete='cascade' string='Event'
  • event_ticket_id Many2one → event.event.ticket
    comodel_name='event.event.ticket' domain="[('id', 'in', allowed_event_ticket_ids)]" index=True ondelete='cascade' string='Ticket'
  • event_type_id Many2one
    readonly=True related='opportunity_id.event_type_id'
  • mode Selection
    help='How to create the event quotation?' required=True selection=[('register', 'Register in scheduled event'), ('reserve', 'Reserve upcoming event')]
  • opportunity_id Many2one → crm.lead
    comodel_name='crm.lead' index=True ondelete='cascade' readonly=True required=True string='Opportunity'
  • product_id Many2one → product.product
    comodel_name='product.product' domain='\n [\n ("sale_ok", "=", True),\n ("event_reservation_type_id", "=", event_type_id),\n ]\n ' index=True ondelete='cascade' string='Product'
  • seats_wanted Integer
    readonly=True related='opportunity_id.seats_wanted'
Public methods (1)
  • action_generate(self)
    Create an event reservation sales order.

New fields (1)
  • seats_reservation_total Integer
    readonly=True string='Reserved seats'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/event
GIT
GIThttps://github.com/OCA/event.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/event/tree/15.0/sale_crm_event_reservation
VERSION
VERSION 1.0.2
CATEGORY
CATEGORYMarketing
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLEYes
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA)
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA)
COMMITTERS
COMMITTERSWeblate, OCA-git-bot, David, oca-ci, pilarvargas-tecnativa, Stefan
WEBSITE
WEBSITEhttps://github.com/OCA/event
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:46:33
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/event:
    - crm_event
    - event_sale_reservation
OCA/web:
    - web_ir_actions_act_multi
    - web_ir_actions_act_view_reload
odoo/odoo:
    - crm
    - base_setup
    - base
    - web
    - sales_team
    - mail
    - bus
    - web_tour
    - calendar
    - resource
    - fetchmail
    - utm
    - web_kanban_gauge
    - contacts
    - digest
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - phone_validation
    - event
    - event_sale
    - sale_management
    - sale
    - payment
    - account
    - product
    - uom
    - analytic
    - sale_crm
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (4)
XML IDNameModelTypeStatus
crm_case_form_view_oppor Add button to create event quotation crm.lead button Inherits sale_crm.crm_case_form_view_oppor
crm_lead_event_sale_wizard_view_form Wizard to generate event quotation from event opportunity crm.lead.event.sale.wizard form New
view_event_type_report_graph Add reservations to event category graph event.type.report graph Inherits crm_event.view_event_type_report_graph
view_event_type_report_pivot Add reservations to event category pivot event.type.report pivot Inherits crm_event.view_event_type_report_pivot
Models touched (2)

New fields (7)
  • event_id Many2one → event.event
    comodel_name='event.event' context='\n {\n "default_event_type_id": event_type_id,\n }\n ' domain='\n [\n ("event_type_id", "=", event_type_id),\n ("date_end", ">=", datetime.date.today().strftime("%Y-%m-%d")),\n ("is_finished", "!=", True),\n "|",\n ("seats_limited", "=", False),\n ("seats_available", ">=", seats_wanted),\n ]\n ' index=True ondelete='cascade' string='Event'
  • event_ticket_id Many2one → event.event.ticket
    comodel_name='event.event.ticket' context='\n {\n "default_event_id": event_id,\n }\n ' domain='\n [\n ("event_id", "=", event_id),\n "|",\n ("end_sale_datetime", "=", False),\n ("end_sale_datetime", ">=", datetime.date.today().strftime("%Y-%m-%d")),\n "|",\n ("seats_limited", "=", False),\n ("seats_available", ">=", seats_wanted),\n ]\n ' index=True ondelete='cascade' string='Ticket'
  • event_type_id Many2one
    readonly=True related='opportunity_id.event_type_id'
  • mode Selection
    help='How to create the event quotation?' required=True selection=[('register', 'Register in scheduled event'), ('reserve', 'Reserve upcoming event')]
  • opportunity_id Many2one → crm.lead
    comodel_name='crm.lead' index=True ondelete='cascade' readonly=True required=True string='Opportunity'
  • product_id Many2one → product.product
    comodel_name='product.product' context='\n {\n "default_event_reservation_ok": True,\n "default_event_reservation_type_id": event_type_id,\n }\n ' domain='\n [\n ("sale_ok", "=", True),\n ("event_reservation_type_id", "=", event_type_id),\n ]\n ' index=True ondelete='cascade' string='Product'
  • seats_wanted Integer
    readonly=True related='opportunity_id.seats_wanted'
Public methods (1)
  • action_generate(self)
    Create an event reservation sales order.

New fields (1)
  • seats_reservation_total Integer
    readonly=True string='Reserved seats'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/event
GIT
GIThttps://github.com/OCA/event.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/event/tree/13.0/sale_crm_event_reservation
VERSION
VERSION 1.0.1
CATEGORY
CATEGORYMarketing
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLEYes
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA)
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA)
COMMITTERS
COMMITTERSPedro M. Baeza, Víctor Martínez, oca-travis, Weblate, OCA-git-bot
WEBSITE
WEBSITEhttps://github.com/OCA/event
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:34:11
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/event:
    - crm_event
    - event_sale_reservation
OCA/web:
    - web_ir_actions_act_multi
    - web_ir_actions_act_view_reload
odoo/odoo:
    - crm
    - base_setup
    - base
    - web
    - sales_team
    - mail
    - bus
    - web_tour
    - calendar
    - resource
    - fetchmail
    - utm
    - contacts
    - digest
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - phone_validation
    - event
    - event_sale
    - sale_management
    - sale
    - payment
    - account
    - product
    - uom
    - analytic
    - sale_crm
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (4)
XML IDNameModelTypeStatus
crm_case_form_view_oppor Add button to create event quotation crm.lead button Inherits sale_crm.crm_case_form_view_oppor
crm_lead_event_sale_wizard_view_form Wizard to generate event quotation from event opportunity crm.lead.event.sale.wizard form New
view_event_type_report_graph Add reservations to event category graph event.type.report graph Inherits crm_event.view_event_type_report_graph
view_event_type_report_pivot Add reservations to event category pivot event.type.report pivot Inherits crm_event.view_event_type_report_pivot
Models touched (2)

New fields (7)
  • event_id Many2one → event.event
    comodel_name='event.event' context='\n {\n "default_event_type_id": event_type_id,\n }\n ' domain='\n [\n ("event_type_id", "=", event_type_id),\n ("date_end", ">=", datetime.date.today().strftime("%Y-%m-%d")),\n ("state", "!=", "cancel"),\n "|",\n ("seats_availability", "=", "unlimited"),\n ("seats_available", ">=", seats_wanted),\n ]\n ' index=True ondelete='cascade' string='Event'
  • event_ticket_id Many2one → event.event.ticket
    comodel_name='event.event.ticket' context='\n {\n "default_event_id": event_id,\n }\n ' domain='\n [\n ("event_id", "=", event_id),\n "|",\n ("deadline", "=", False),\n ("deadline", ">=", datetime.date.today().strftime("%Y-%m-%d")),\n "|",\n ("seats_availability", "=", "unlimited"),\n ("seats_available", ">=", seats_wanted),\n ]\n ' index=True ondelete='cascade' string='Ticket'
  • event_type_id Many2one
    readonly=True related='opportunity_id.event_type_id'
  • mode Selection
    help='How to create the event quotation?' required=True selection=[('register', 'Register in scheduled event'), ('reserve', 'Reserve upcoming event')]
  • opportunity_id Many2one → crm.lead
    comodel_name='crm.lead' index=True ondelete='cascade' readonly=True required=True string='Opportunity'
  • product_id Many2one → product.product
    comodel_name='product.product' context='\n {\n "default_event_reservation_ok": True,\n "default_event_reservation_type_id": event_type_id,\n }\n ' domain='\n [\n ("event_reservation_ok", "=", True),\n ("event_reservation_type_id", "=", event_type_id),\n ]\n ' index=True ondelete='cascade' string='Product'
  • seats_wanted Integer
    readonly=True related='opportunity_id.seats_wanted'
Public methods (1)
  • action_generate(self)
    Create an event reservation sales order.

New fields (1)
  • seats_reservation_total Integer
    readonly=True string='Reserved seats'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/event
GIT
GIThttps://github.com/OCA/event.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/event/tree/12.0/sale_crm_event_reservation
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYMarketing
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLEYes
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA)
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA)
COMMITTERS
COMMITTERSJairo Llopis, oca-travis, Weblate, OCA-git-bot
WEBSITE
WEBSITEhttps://github.com/OCA/event
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:29:16
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/event:
    - crm_event
    - event_sale_reservation
OCA/web:
    - web_ir_actions_act_multi
    - web_ir_actions_act_view_reload
odoo/odoo:
    - crm
    - base_setup
    - base
    - web
    - sales_team
    - mail
    - bus
    - web_tour
    - calendar
    - resource
    - fetchmail
    - utm
    - contacts
    - digest
    - portal
    - http_routing
    - event
    - event_sale
    - sale_management
    - sale
    - payment
    - account
    - product
    - decimal_precision
    - uom
    - analytic
    - sale_crm
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (4)
XML IDNameModelTypeStatus
crm_case_form_view_oppor Add button to create event quotation crm.lead button Inherits sale_crm.crm_case_form_view_oppor
crm_lead_event_sale_wizard_view_form Wizard to generate event quotation from event opportunity crm.lead.event.sale.wizard form New
view_event_type_report_graph Add reservations to event category graph event.type.report graph Inherits crm_event.view_event_type_report_graph
view_event_type_report_pivot Add reservations to event category pivot event.type.report pivot Inherits crm_event.view_event_type_report_pivot
Models touched (2)

New fields (7)
  • event_id Many2one → event.event
    comodel_name='event.event' context='\n {\n "default_event_type_id": event_type_id,\n }\n ' domain='\n [\n ("event_type_id", "=", event_type_id),\n ("date_end", ">=", datetime.date.today().strftime("%Y-%m-%d")),\n ("state", "!=", "cancel"),\n "|",\n ("seats_availability", "=", "unlimited"),\n ("seats_available", ">=", seats_wanted),\n ]\n ' index=True ondelete='cascade' string='Event'
  • event_ticket_id Many2one → event.event.ticket
    comodel_name='event.event.ticket' context='\n {\n "default_event_id": event_id,\n }\n ' domain='\n [\n ("event_id", "=", event_id),\n "|",\n ("deadline", "=", False),\n ("deadline", ">=", datetime.date.today().strftime("%Y-%m-%d")),\n "|",\n ("seats_availability", "=", "unlimited"),\n ("seats_available", ">=", seats_wanted),\n ]\n ' index=True ondelete='cascade' string='Ticket'
  • event_type_id Many2one
    readonly=True related='opportunity_id.event_type_id'
  • mode Selection
    help='How to create the event quotation?' required=True selection=[('register', 'Register in scheduled event'), ('reserve', 'Reserve upcoming event')]
  • opportunity_id Many2one → crm.lead
    comodel_name='crm.lead' index=True ondelete='cascade' readonly=True required=True string='Opportunity'
  • product_id Many2one → product.product
    comodel_name='product.product' context='\n {\n "default_event_reservation_ok": True,\n "default_event_reservation_type_id": event_type_id,\n }\n ' domain='\n [\n ("event_reservation_ok", "=", True),\n ("event_reservation_type_id", "=", event_type_id),\n ]\n ' index=True ondelete='cascade' string='Product'
  • seats_wanted Integer
    readonly=True related='opportunity_id.seats_wanted'
Public methods (1)
  • action_generate(self)
    Create an event reservation sales order.

New fields (1)
  • seats_reservation_total Integer
    readonly=True string='Reserved seats'
Public methods (0)

No public methods.