| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/19.0/event |
| VERSION | |
| VERSION | 1.9 |
| CATEGORY | |
| CATEGORY | Marketing/Events |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo S.A. |
| MAINTAINERS | |
| MAINTAINERS | Odoo S.A. |
| COMMITTERS | |
| COMMITTERS | Raphael Collet, Odoo Translation Bot, Thibault Delavallée, Xavier Morel, Nicolas Martinelli, Aaron Bohy, Jeremy Kersten, Damien Bouvy, qsm-odoo, Julien Castiaux, Adrien Dieudonné, Tiffany Chang (tic), Gorash, Mathieu Duckerts-Antoine, William Braeckman, luvi, Renaud Thiry, Julien Banken, Louis Wicket (wil), Victor Piryns (pivi), amdi-odoo, Levi Siuzdak (sile), Maruan Aguerdouh (magm), Dylan Kiss (dyki), Antoine (ande), Louis Travaux, omra-odoo, lase@odoo.com, Jérémy Hennecart (jeh), Julien Carion (juca), adsh-odoo, nihp-odoo, Max Whale, Shaan Thakkar (THSH), yagp-odoo, abdelrahmanfawzy, khsr-odoo, Michaël Mattiello, Pierre Pulinckx, Bastien PIERRE, Krzysztof Magusiak (krma), defl, mojem, josm-odoo, Augustin (duau), adip-odoo, Yagnik ✗ (yagp), Karna, assh-odoo, saurabh, alan-odoo, Farah (ahmfa), ELCO, chpa-odoo, Claire Nguyen (clan), Romain ROSANO (rros) |
| WEBSITE | |
| WEBSITE | https://www.odoo.com/app/events |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 01:51:43 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - barcodes - web - base - base_setup - bus - web_tour - html_editor - phone_validation - portal - http_routing - auth_signup - utm |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | Organization and management of Events. ====================================== The event module allows you to efficiently organize events and all related tasks: planning, registration tracking, attendances, etc. Key Features ------------ * Manage your Events and Registrations * Use emails to automatically confirm and send acknowledgments for any event registration |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
attendee_list |
attendee_list | ir.ui.view | qweb | New |
event_default_descripton |
Event default description | ir.ui.view | qweb | New |
event_event_attendee_list |
event_event_attendee_list | ir.ui.view | qweb | New |
event_event_report_template_badge |
event_event_report_template_badge | ir.ui.view | qweb | New |
event_event_report_template_full_page_ticket |
event_event_report_template_full_page_ticket | ir.ui.view | qweb | New |
event_event_ticket_form_view |
event.event.ticket.view.form | event.event.ticket | form | New |
event_event_ticket_view_form_from_event |
event.event.ticket.view.form.from.event | event.event.ticket | form | New |
event_event_ticket_view_kanban_from_event |
event.event.ticket.view.kanban.from.event | event.event.ticket | kanban | New |
event_event_ticket_view_tree |
event.event.ticket.view.list | event.event.ticket | xpath | Inherits event_event_ticket_view_tree_from_event |
event_event_ticket_view_tree_from_event |
event.event.ticket.view.list.from.event | event.event.ticket | list | New |
event_event_view_activity |
event.event.view.activity | event.event | activity | New |
event_event_view_form_quick_create |
event.event.form.quick_create | event.event | form | New |
event_question_view_form |
event.question.view.form | event.question | form | New |
event_question_view_list |
event.question.view.list | event.question | list | New |
event_question_view_list_add |
event.question.view.list.add | event.question | xpath | Inherits event.event_question_view_list |
event_question_view_search |
event.question.view.search | event.question | search | New |
event_registration_answer_view_graph |
event.registration.answer.view.graph | event.registration.answer | graph | New |
event_registration_answer_view_pivot |
event.registration.answer.view.pivot | event.registration.answer | pivot | New |
event_registration_answer_view_search |
event.registration.answer.view.search | event.registration.answer | search | New |
event_registration_answer_view_tree |
event.registration.answer.view.list | event.registration.answer | list | New |
event_registration_attendee_list |
event_registration_attendee_list | ir.ui.view | qweb | New |
event_registration_report_template_badge |
event_registration_report_template_badge | ir.ui.view | qweb | New |
event_registration_report_template_full_page_ticket |
event_registration_report_template_full_page_ticket | ir.ui.view | qweb | New |
event_registration_report_template_responsive_html_ticket |
event_registration_report_template_responsive_html_ticket | ir.ui.view | qweb | New |
event_registration_view_kanban |
event.registration.kanban | event.registration | kanban | New |
event_registration_view_search_event_specific |
event.registration.view.search.event.specific | event.registration | xpath | Inherits view_registration_search |
event_report_full_page_ticket_layout |
event_report_full_page_ticket_layout | ir.ui.view | qweb | New |
event_report_template_a6_badge |
event_report_template_a6_badge | ir.ui.view | qweb | New |
event_report_template_badge_card |
event_report_template_badge_card | ir.ui.view | qweb | New |
event_report_template_foldable_badge |
event_report_template_foldable_badge | ir.ui.view | qweb | New |
event_report_template_formatted_event_address |
event_report_template_formatted_event_address | ir.ui.view | qweb | New |
event_report_template_four_per_sheet_badge |
event_report_template_four_per_sheet_badge | ir.ui.view | qweb | New |
event_report_template_full_page_ticket |
event_report_template_full_page_ticket | ir.ui.view | qweb | New |
event_stage_view_form |
event.stage.view.form | event.stage | form | New |
event_stage_view_tree |
event.stage.view.list | event.stage | list | New |
event_tag_category_view_form |
event.tag.category.view.form | event.tag.category | form | New |
event_tag_category_view_tree |
event.tag.category.view.list | event.tag.category | list | New |
event_tag_view_form |
event.tag.view.form | event.tag | form | New |
event_tag_view_tree |
event.tag.view.list | event.tag | list | New |
event_type_ticket_view_form |
event.type.ticket.view.form | event.type.ticket | xpath | Inherits event_type_ticket_view_form_from_type |
event_type_ticket_view_form_from_type |
event.type.ticket.view.form.from.type | event.type.ticket | form | New |
event_type_ticket_view_tree |
event.type.ticket.view.list | event.type.ticket | xpath | Inherits event_type_ticket_view_tree_from_type |
event_type_ticket_view_tree_from_type |
event.type.ticket.view.list.from.type | event.type.ticket | list | New |
event_type_view_search |
event.type.search | event.type | search | New |
res_config_settings_view_form |
res.config.settings.view.form.inherit.event | res.config.settings | xpath | Inherits mail.res_config_settings_view_form |
res_partner_view_tree |
view.res.partner.form.event.inherited | res.partner | div | Inherits base.view_partner_form |
view_event_calendar |
event.event.calendar | event.event | calendar | New |
view_event_form |
event.event.form | event.event | form | New |
view_event_kanban |
event.event.kanban | event.event | kanban | New |
view_event_mail_form |
event.mail.form | event.mail | form | New |
view_event_mail_tree |
event.mail.list | event.mail | list | New |
view_event_registration_calendar |
event.registration.calendar | event.registration | calendar | New |
view_event_registration_form |
event.registration.form | event.registration | form | New |
view_event_registration_graph |
event.registration.graph | event.registration | graph | New |
view_event_registration_pivot |
event.registration.pivot | event.registration | pivot | New |
view_event_registration_tree |
event.registration.list | event.registration | list | New |
view_event_search |
event.event.search | event.event | search | New |
view_event_slot_calendar |
event.slot.calendar | event.slot | calendar | New |
view_event_slot_form |
event.slot.form | event.slot | form | New |
view_event_slot_multi_create_form |
event.slot.form | event.slot | form | New |
view_event_slot_tree |
event.slot.list | event.slot | list | New |
view_event_tree |
event.event.list | event.event | list | New |
view_event_type_form |
event.type.form | event.type | form | New |
view_event_type_tree |
event.type.list | event.type | list | New |
view_registration_search |
event.registration.search | event.registration | search | New |
active
Boolean
default=True
address_id
Many2one → res.partner
check_company=True
default=<expr>
string='Venue'
tracking=True
args: 'res.partner'
address_inline
Char
compute='_compute_address_inline'
compute_sudo=True
string='Venue (formatted for one line uses)'
address_search
Many2one → res.partner
compute='_compute_address_search'
search='_search_address_search'
string='Address'
args: 'res.partner'
badge_format
Selection
default='A6'
required=True
selection=[('A4_french_fold', 'A4 foldable'), ('A6', 'A6'), ('four_per_sheet', '4 per sheet')]
string='Badge Dimension'
badge_image
Image
max_height=1024
max_width=1024
args: 'Badge Background'
company_id
Many2one → res.company
change_default=True
default=<expr>
required=False
string='Company'
args: 'res.company'
country_id
Many2one → res.country
readonly=False
related='address_id.country_id'
store=True
args: 'res.country', 'Country'
date_begin
Datetime
help='When the event is scheduled to take place (expressed in your local timezone on the form view).'
required=True
string='Start Date'
tracking=True
date_end
Datetime
required=True
string='End Date'
tracking=True
date_tz
Selection
compute='_compute_date_tz'
help='Indicates the timezone in which the event dates/times will be displayed on the website.'
precompute=True
readonly=False
required=True
store=True
string='Display Timezone'
args: _tz_get
description
Html
default=_default_description
sanitize_attributes=False
sanitize_form=False
string='Description'
translate=html_translate
event_mail_ids
One2many → event.mail
compute='_compute_event_mail_ids'
copy=True
readonly=False
store=True
string='Mail Schedule'
args: 'event.mail', 'event_id'
event_registrations_open
Boolean
compute='_compute_event_registrations_open'
compute_sudo=True
help='Registrations are open if:\n- the event is not ended or not cancelled\n- there are seats available on event\n- the tickets are sellable (if ticketing is used)'
args: 'Registration open'
event_registrations_sold_out
Boolean
compute='_compute_event_registrations_sold_out'
compute_sudo=True
help='The event is sold out if no more seats are available on event. If ticketing is used and all tickets are sold out, the event will be sold out.'
args: 'Sold Out'
event_registrations_started
Boolean
compute='_compute_event_registrations_started'
help='registrations have started if the current datetime is after the earliest starting date of tickets.'
args: 'Registrations started'
event_share_url
Char
compute='_compute_event_share_url'
string='Event Share URL'
event_slot_count
Integer
compute='_compute_event_slot_count'
args: 'Slots Count'
event_slot_ids
One2many → event.slot
copy=True
args: 'event.slot', 'event_id', 'Slots'
event_ticket_ids
One2many → event.event.ticket
compute='_compute_event_ticket_ids'
copy=True
precompute=True
readonly=False
store=True
string='Event Ticket'
args: 'event.event.ticket', 'event_id'
event_type_id
Many2one → event.type
help='Choose a template to auto-fill tickets, communications, descriptions and other fields.'
ondelete='set null'
string='Template'
args: 'event.type'
event_url
Char
compute='_compute_event_url'
help='Link where the online event will take place.'
readonly=False
store=True
string='Online Event URL'
general_question_ids
Many2many → event.question
domain=[('once_per_order', '=', True)]
string='General Questions'
args: 'event.question', 'event_event_event_question_rel'
is_finished
Boolean
compute='_compute_is_finished'
search='_search_is_finished'
is_multi_slots
Boolean
copy=True
help='Allow multiple time slots. The communications, the maximum number of attendees and the maximum number of tickets registrations are defined for each time slot instead of the whole event.'
args: 'Is Multi Slots'
is_one_day
Boolean
compute='_compute_field_is_one_day'
is_ongoing
Boolean
compute='_compute_is_ongoing'
search='_search_is_ongoing'
args: 'Is Ongoing'
kanban_state
Selection
compute='_compute_kanban_state'
copy=False
default='normal'
readonly=False
store=True
tracking=True
args: [('normal', 'In Progress'), ('done', 'Ready for Next Stage'), ('blocked', 'Blocked'), ('cancel', 'Cancelled')]
lang
Selection
help='All the communication emails sent to attendees will be translated in this language.'
string='Language'
args: _lang_get
name
Char
required=True
string='Event'
translate=True
note
Html
compute='_compute_note'
readonly=False
store=True
string='Note'
organizer_id
Many2one → res.partner
check_company=True
default=<expr>
string='Organizer'
tracking=True
args: 'res.partner'
question_ids
Many2many → event.question
compute='_compute_question_ids'
precompute=True
readonly=False
store=True
string='Questions'
args: 'event.question', 'event_event_event_question_rel'
registration_ids
One2many → event.registration
string='Attendees'
args: 'event.registration', 'event_id'
registration_properties_definition
PropertiesDefinition
seats_available
Integer
compute='_compute_seats'
readonly=True
store=False
string='Available Seats'
seats_limited
Boolean
compute='_compute_seats_limited'
precompute=True
readonly=False
required=True
store=True
args: 'Limit Attendees'
seats_max
Integer
compute='_compute_seats_max'
help='For each event you can define a maximum registration of seats(number of attendees), above this number the registrations are not accepted. If the event has multiple slots, this maximum number is applied per slot.'
readonly=False
store=True
string='Maximum Attendees'
seats_reserved
Integer
compute='_compute_seats'
readonly=True
store=False
string='Number of Registrations'
seats_taken
Integer
compute='_compute_seats'
readonly=True
store=False
string='Number of Taken Seats'
seats_used
Integer
compute='_compute_seats'
readonly=True
store=False
string='Number of Attendees'
specific_question_ids
Many2many → event.question
domain=[('once_per_order', '=', False)]
string='Specific Questions'
args: 'event.question', 'event_event_event_question_rel'
stage_id
Many2one → event.stage
copy=False
default=_get_default_stage_id
group_expand='_read_group_expand_full'
ondelete='restrict'
tracking=True
args: 'event.stage'
start_sale_datetime
Datetime
compute='_compute_start_sale_date'
help='If ticketing is used, contains the earliest starting sale date of tickets.'
args: 'Start sale date'
tag_ids
Many2many → event.tag
compute='_compute_tag_ids'
readonly=False
store=True
string='Tags'
args: 'event.tag'
ticket_instructions
Html
compute='_compute_ticket_instructions'
help='This information will be printed on your tickets.'
readonly=False
store=True
translate=True
args: 'Ticket Instructions'
use_barcode
Boolean
compute='_compute_use_barcode'
user_id
Many2one → res.users
default=<expr>
string='Responsible'
tracking=True
args: 'res.users'
action_open_slot_calendar(self)
action_set_done(self)
copy_data(self, default=None)
default_get(self, fields)
get_kiosk_url(self)
color
Char
default='#875A7B'
args: 'Color'
company_id
Many2one → res.company
related='event_id.company_id'
args: 'res.company'
end_sale_datetime
Datetime
string='Registration End'
event_id
Many2one → event.event
index=True
ondelete='cascade'
required=True
string='Event'
args: 'event.event'
event_type_id
Many2one
ondelete='set null'
required=False
is_expired
Boolean
compute='_compute_is_expired'
string='Is Expired'
is_launched
Boolean
compute='_compute_is_launched'
string='Are sales launched'
is_sold_out
Boolean
compute='_compute_is_sold_out'
help='Whether seats are not available for this ticket.'
args: 'Sold Out'
limit_max_per_order
Integer
default=0
help='Maximum of this product per order.\nSet to 0 to ignore this rule'
string='Limit per Order'
registration_ids
One2many → event.registration
string='Registrations'
args: 'event.registration', 'event_ticket_id'
sale_available
Boolean
compute='_compute_sale_available'
compute_sudo=True
help='Whether it is possible to sell these tickets'
string='Is Available'
seats_available
Integer
compute='_compute_seats'
store=False
string='Available Seats'
seats_reserved
Integer
compute='_compute_seats'
store=False
string='Reserved Seats'
seats_taken
Integer
compute='_compute_seats'
store=False
string='Taken Seats'
seats_used
Integer
compute='_compute_seats'
store=False
string='Used Seats'
start_sale_datetime
Datetime
string='Registration Start'
default_get(self, fields)
error_datetime
Datetime
event_id
Many2one → event.event
index=True
ondelete='cascade'
required=True
string='Event'
args: 'event.event'
interval_nbr
Integer
default=1
args: 'Interval'
interval_type
Selection
default='before_event'
help='Indicates when the communication is sent. If the event has multiple slots, the interval is related to each time slot instead of the whole event.'
required=True
string='Trigger '
args: [('after_sub', 'After each registration'), ('before_event', 'Before the event starts'), ('after_event_start', 'After the event started'), ('after_event', 'After the event ended'), ('before_event_end', 'Before the event ends')]
interval_unit
Selection
default='hours'
required=True
string='Unit'
args: [('now', 'Immediately'), ('hours', 'Hours'), ('days', 'Days'), ('weeks', 'Weeks'), ('months', 'Months')]
last_registration_id
Many2one → event.registration
mail_count_done
Integer
copy=False
readonly=True
args: '# Sent'
mail_done
Boolean
copy=False
readonly=True
args: 'Sent'
mail_registration_ids
One2many → event.mail.registration
help='Communication related to event registrations'
args: 'event.mail.registration', 'scheduler_id'
mail_slot_ids
One2many → event.mail.slot
help='Slot-based communication'
args: 'event.mail.slot', 'scheduler_id'
mail_state
Selection
compute='_compute_mail_state'
string='Global communication Status'
args: [('running', 'Running'), ('scheduled', 'Scheduled'), ('sent', 'Sent'), ('error', 'Error'), ('cancelled', 'Cancelled')]
notification_type
Selection
compute='_compute_notification_type'
string='Send'
args: [('mail', 'Mail')]
scheduled_date
Datetime
compute='_compute_scheduled_date'
store=True
args: 'Schedule Date'
sequence
Integer
template_ref
Reference
ondelete={'mail.template': 'cascade'}
required=True
selection=[('mail.template', 'Mail')]
string='Template'
execute(self)
run(self, autocommit=False)
schedule_communications(self, autocommit=False)
mail_sent
Boolean
registration_id
Many2one → event.registration
index=True
ondelete='cascade'
required=True
args: 'event.registration', 'Attendee'
scheduled_date
Datetime
compute='_compute_scheduled_date'
store=True
args: 'Scheduled Time'
scheduler_id
Many2one → event.mail
index=True
ondelete='cascade'
required=True
args: 'event.mail', 'Mail Scheduler'
execute(self)
event_slot_id
Many2one → event.slot
ondelete='cascade'
required=True
args: 'event.slot', 'Slot'
last_registration_id
Many2one → event.registration
mail_count_done
Integer
copy=False
readonly=True
args: '# Sent'
mail_done
Boolean
copy=False
readonly=True
args: 'Sent'
scheduled_date
Datetime
compute='_compute_scheduled_date'
store=True
args: 'Schedule Date'
scheduler_id
Many2one → event.mail
index=True
ondelete='cascade'
required=True
args: 'event.mail', 'Mail Scheduler'
No public methods.
active
Boolean
default=True
args: 'Active'
answer_ids
One2many → event.question.answer
copy=True
args: 'event.question.answer', 'question_id', 'Answers'
event_count
Integer
compute='_compute_event_count'
args: '# Events'
event_ids
Many2many → event.event
copy=False
string='Events'
args: 'event.event'
event_type_ids
Many2many → event.type
copy=False
string='Event Types'
args: 'event.type'
is_default
Boolean
help='Include by default in new events.'
args: 'Default question'
is_mandatory_answer
Boolean
is_reusable
Boolean
compute='_compute_is_reusable'
default=True
help='Allow this question to be selected and reused for any future event. Always true for default questions.'
store=True
args: 'Is Reusable'
once_per_order
Boolean
help="Check this for order-level questions (e.g., 'Company Name') where the answer is the same for everyone."
args: 'Ask once per order'
question_type
Selection
default='simple_choice'
required=True
string='Question Type'
args: [('simple_choice', 'Selection'), ('text_box', 'Text Input'), ('name', 'Name'), ('email', 'Email'), ('phone', 'Phone'), ('company_name', 'Company')]
sequence
Integer
default=10
title
Char
required=True
translate=True
action_event_view(self)
action_view_question_answers(self)
write(self, vals)
name
Char
required=True
translate=True
args: 'Answer'
question_id
Many2one → event.question
index=True
ondelete='cascade'
required=True
args: 'event.question'
sequence
Integer
default=10
No public methods.
active
Boolean
default=True
barcode
Char
copy=False
default=<expr>
readonly=True
string='Barcode'
company_id
Many2one → res.company
readonly=False
related='event_id.company_id'
store=True
string='Company'
args: 'res.company'
company_name
Char
compute='_compute_company_name'
readonly=False
store=True
string='Company Name'
tracking=5
date_closed
Datetime
compute='_compute_date_closed'
readonly=False
store=True
string='Attended Date'
email
Char
compute='_compute_email'
readonly=False
store=True
string='Email'
tracking=3
event_begin_date
Datetime
compute='_compute_event_begin_date'
search='_search_event_begin_date'
args: 'Event Start Date'
event_date_range
Char
compute='_compute_date_range'
args: 'Date Range'
event_end_date
Datetime
compute='_compute_event_end_date'
search='_search_event_end_date'
args: 'Event End Date'
event_id
Many2one → event.event
index=True
required=True
string='Event'
tracking=True
args: 'event.event'
event_organizer_id
Many2one
readonly=True
related='event_id.organizer_id'
string='Event Organizer'
event_slot_id
Many2one → event.slot
domain="[('event_id', '=', event_id)]"
index='btree_not_null'
ondelete='restrict'
string='Slot'
tracking=True
args: 'event.slot'
event_ticket_id
Many2one → event.event.ticket
index='btree_not_null'
ondelete='restrict'
string='Ticket Type'
tracking=True
args: 'event.event.ticket'
event_user_id
Many2one
readonly=True
related='event_id.user_id'
string='Event Responsible'
is_multi_slots
Boolean
related='event_id.is_multi_slots'
string='Is Event Multi Slots'
mail_registration_ids
One2many → event.mail.registration
readonly=True
string='Scheduler Emails'
args: 'event.mail.registration', 'registration_id'
name
Char
compute='_compute_name'
index='trigram'
readonly=False
store=True
string='Attendee Name'
tracking=2
partner_id
Many2one → res.partner
index='btree_not_null'
string='Booked by'
tracking=1
args: 'res.partner'
phone
Char
compute='_compute_phone'
readonly=False
store=True
string='Phone'
tracking=4
registration_answer_choice_ids
One2many → event.registration.answer
domain=[('question_type', '=', 'simple_choice')]
string='Attendee Selection Answers'
args: 'event.registration.answer', 'registration_id'
registration_answer_ids
One2many → event.registration.answer
string='Attendee Answers'
args: 'event.registration.answer', 'registration_id'
registration_properties
Properties
copy=True
definition='event_id.registration_properties_definition'
args: 'Properties'
state
Selection
copy=False
default='open'
help='Unconfirmed: registrations in a pending state waiting for an action (specific case, notably with sale status)\nRegistered: registrations considered taken by a client\nAttended: registrations for which the attendee attended the event\nCancelled: registrations cancelled manually'
readonly=True
string='Status'
tracking=6
args: [('draft', 'Unconfirmed'), ('open', 'Registered'), ('done', 'Attended'), ('cancel', 'Cancelled')]
utm_campaign_id
Many2one → utm.campaign
index=True
ondelete='set null'
args: 'utm.campaign', 'Campaign'
utm_medium_id
Many2one → utm.medium
index=True
ondelete='set null'
args: 'utm.medium', 'Medium'
utm_source_id
Many2one → utm.source
index=True
ondelete='set null'
args: 'utm.source', 'Source'
action_cancel(self)
action_confirm(self)
action_send_badge_email(self)
action_set_done(self)
action_set_draft(self)
create(self, vals_list)
default_get(self, fields)
register_attendee(self, barcode, event_id)
write(self, vals)
event_id
Many2one → event.event
related='registration_id.event_id'
args: 'event.event'
partner_id
Many2one → res.partner
related='registration_id.partner_id'
args: 'res.partner'
question_id
Many2one → event.question
domain="[('event_ids', 'in', event_id)]"
ondelete='restrict'
required=True
args: 'event.question'
question_type
Selection
related='question_id.question_type'
registration_id
Many2one → event.registration
index=True
ondelete='cascade'
required=True
args: 'event.registration'
value_answer_id
Many2one → event.question.answer
string='Suggested answer'
args: 'event.question.answer'
value_text_box
Text
No public methods.
color
Integer
default=0
args: 'Color'
date
Date
required=True
args: 'Date'
date_tz
Selection
related='event_id.date_tz'
end_datetime
Datetime
compute='_compute_datetimes'
store=True
args: 'End Datetime'
end_hour
Float
help='Expressed in the event timezone.'
required=True
args: 'Ending Hour'
event_id
Many2one → event.event
index=True
ondelete='cascade'
required=True
args: 'event.event', 'Event'
is_sold_out
Boolean
compute='_compute_is_sold_out'
help='Whether seats are sold out for this slot.'
args: 'Sold Out'
registration_ids
One2many → event.registration
string='Attendees'
args: 'event.registration', 'event_slot_id'
seats_available
Integer
compute='_compute_seats'
readonly=True
store=False
string='Available Seats'
seats_reserved
Integer
compute='_compute_seats'
readonly=True
store=False
string='Number of Registrations'
seats_taken
Integer
compute='_compute_seats'
readonly=True
store=False
string='Number of Taken Seats'
seats_used
Integer
compute='_compute_seats'
readonly=True
store=False
string='Number of Attendees'
start_datetime
Datetime
compute='_compute_datetimes'
store=True
args: 'Start Datetime'
start_hour
Float
help='Expressed in the event timezone.'
required=True
args: 'Starting Hour'
No public methods.
description
Text
string='Stage description'
translate=True
fold
Boolean
default=False
string='Folded in Kanban'
name
Char
required=True
string='Stage Name'
translate=True
pipe_end
Boolean
default=False
help='Events will automatically be moved into this stage when they are finished. The event moved into this stage will automatically be set as green.'
string='End Stage'
sequence
Integer
default=1
args: 'Sequence'
No public methods.
category_id
Many2one → event.tag.category
index=True
ondelete='cascade'
required=True
string='Category'
args: 'event.tag.category'
category_sequence
Integer
related='category_id.sequence'
store=True
string='Category Sequence'
color
Integer
default=<expr>
help='Tag color. No color means no display in kanban or front-end, to distinguish internal tags from public categorization tags.'
string='Color Index'
name
Char
required=True
translate=True
args: 'Name'
sequence
Integer
default=0
args: 'Sequence'
No public methods.
name
Char
required=True
translate=True
args: 'Name'
sequence
Integer
default=_default_sequence
args: 'Sequence'
tag_ids
One2many → event.tag
string='Tags'
args: 'event.tag', 'category_id'
No public methods.
default_timezone
Selection
default=<expr>
string='Timezone'
args: _tz_get
event_type_mail_ids
One2many → event.type.mail
default=_default_event_mail_type_ids
string='Mail Schedule'
args: 'event.type.mail', 'event_type_id'
event_type_ticket_ids
One2many → event.type.ticket
string='Tickets'
args: 'event.type.ticket', 'event_type_id'
has_seats_limitation
Boolean
name
Char
required=True
translate=True
args: 'Event Template'
note
Html
string='Note'
question_ids
Many2many → event.question
copy=True
default=_default_question_ids
string='Questions'
args: 'event.question'
seats_max
Integer
compute='_compute_seats_max'
help='It will select this default maximum value when you choose this event'
readonly=False
store=True
args: 'Maximum Registrations'
sequence
Integer
default=10
tag_ids
Many2many → event.tag
string='Tags'
args: 'event.tag'
ticket_instructions
Html
help='This information will be printed on your tickets.'
translate=True
args: 'Ticket Instructions'
No public methods.
event_type_id
Many2one → event.type
ondelete='cascade'
required=True
string='Event Type'
args: 'event.type'
interval_nbr
Integer
default=1
args: 'Interval'
interval_type
Selection
default='before_event'
required=True
string='Trigger'
args: [('after_sub', 'After each registration'), ('before_event', 'Before the event starts'), ('after_event_start', 'After the event started'), ('after_event', 'After the event ended'), ('before_event_end', 'Before the event ends')]
interval_unit
Selection
default='hours'
required=True
string='Unit'
args: [('now', 'Immediately'), ('hours', 'Hours'), ('days', 'Days'), ('weeks', 'Weeks'), ('months', 'Months')]
notification_type
Selection
compute='_compute_notification_type'
string='Send'
args: [('mail', 'Mail')]
template_ref
Reference
ondelete={'mail.template': 'cascade'}
required=True
selection=[('mail.template', 'Mail')]
string='Template'
No public methods.
description
Text
help='A description of the ticket that you want to communicate to your customers.'
translate=True
args: 'Description'
event_type_id
Many2one → event.type
ondelete='cascade'
required=True
string='Event Category'
args: 'event.type'
name
Char
default=<expr>
required=True
string='Name'
translate=True
seats_limited
Boolean
compute='_compute_seats_limited'
readonly=True
store=True
string='Limit Attendees'
seats_max
Integer
help='Define the number of available tickets. If you have too many registrations you will not be able to sell tickets anymore. Set 0 to ignore this rule set as unlimited.'
string='Maximum Attendees'
sequence
Integer
default=10
args: 'Sequence'
No public methods.
No new fields.
Public methods (1)unlink(self)
barcode_nomenclature_id
Many2one → barcode.nomenclature
readonly=False
related='company_id.nomenclature_id'
args: 'barcode.nomenclature'
google_maps_static_api_key
Char
compute='_compute_maps_static_api_key'
config_parameter='google_maps.signed_static_api_key'
readonly=False
store=True
args: 'Google Maps API key'
google_maps_static_api_secret
Char
compute='_compute_maps_static_api_secret'
config_parameter='google_maps.signed_static_api_secret'
readonly=False
store=True
args: 'Google Maps API secret'
module_event_booth
Boolean
module_event_sale
Boolean
module_pos_event
Boolean
module_website_event_exhibitor
Boolean
module_website_event_sale
Boolean
module_website_event_track
Boolean
module_website_event_track_live
Boolean
module_website_event_track_quiz
Boolean
use_event_barcode
Boolean
config_parameter='event.use_event_barcode'
help='Enable or Disable Event Barcode functionality.'
string='Use Event Barcode'
use_google_maps_static_api
Boolean
default=_default_use_google_maps_static_api
args: 'Google Maps static API'
create(self, vals_list)
write(self, vals)
event_count
Integer
compute='_compute_event_count'
groups='event.group_event_registration_desk'
args: '# Events'
static_map_url
Char
compute='_compute_static_map_url'
static_map_url_is_valid
Boolean
compute='_compute_static_map_url_is_valid'
action_event_view(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/18.0/event |
| VERSION | |
| VERSION | 1.9 |
| CATEGORY | |
| CATEGORY | Marketing/Events |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Raphael Collet, Odoo Translation Bot, Martin Trigaux, Thibault Delavallée, Xavier ALT, Christophe Simonis, Xavier Morel, Joren Van Onder, Nicolas Martinelli, Aaron Bohy, Jeremy Kersten, Damien Bouvy, Yannick Tivisse, qsm-odoo, Odoo Online, Jorge Pinna Puissant, Xavier-Do, svs-odoo, Nasreddin Boulif (bon), Prakash Prajapati, Tiffany Chang (tic), Rémy Voet (ryv), Gorash, Mathieu Duckerts-Antoine, luvi, Renaud Thiry, Julien Banken, David Monnom (moda), Louis Wicket (wil), Julien (jula), miad-odoo, amdi-odoo, Levi Siuzdak (sile), Maruan Aguerdouh (magm), Dylan Kiss (dyki), Antoine (ande), Mayurrajsinh Rathod, Xavier Bol (xbo), Noe Antoine, omra-odoo, Andrzej(pian), dane@odoo.com, lase@odoo.com, Maryam Kia, reka-odoo, Jérémy Hennecart (jeh), vava-odoo, jobl, Julien Carion (juca), adsh-odoo, nihp-odoo, sami odoo, Louis (wil), Max Whale, Shaan Thakkar (THSH), Clément Cardot, guce, Pierre Pulinckx (PIPU), khsr-odoo, Khushi, Pierre Pulinckx (pipu), Bastien PIERRE, kusi-odoo, Krzysztof Magusiak (krma), bikh-odoo, defl, josm-odoo, alan-odoo, Farah (ahmfa) |
| WEBSITE | |
| WEBSITE | https://www.odoo.com/app/events |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 01:25:57 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - barcodes - web - base - base_setup - bus - web_tour - html_editor - phone_validation - portal - web_editor - http_routing - auth_signup - utm |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | Organization and management of Events. ====================================== The event module allows you to efficiently organize events and all related tasks: planning, registration tracking, attendances, etc. Key Features ------------ * Manage your Events and Registrations * Use emails to automatically confirm and send acknowledgments for any event registration |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
attendee_list |
attendee_list | ir.ui.view | qweb | New |
event_default_descripton |
Event default description | ir.ui.view | qweb | New |
event_event_attendee_list |
event_event_attendee_list | ir.ui.view | qweb | New |
event_event_report_template_badge |
event_event_report_template_badge | ir.ui.view | qweb | New |
event_event_report_template_full_page_ticket |
event_event_report_template_full_page_ticket | ir.ui.view | qweb | New |
event_event_ticket_form_view |
event.event.ticket.view.form | event.event.ticket | form | New |
event_event_ticket_view_form_from_event |
event.event.ticket.view.form.from.event | event.event.ticket | form | New |
event_event_ticket_view_kanban_from_event |
event.event.ticket.view.kanban.from.event | event.event.ticket | kanban | New |
event_event_ticket_view_tree |
event.event.ticket.view.list | event.event.ticket | xpath | Inherits event_event_ticket_view_tree_from_event |
event_event_ticket_view_tree_from_event |
event.event.ticket.view.list.from.event | event.event.ticket | list | New |
event_event_view_activity |
event.event.view.activity | event.event | activity | New |
event_event_view_form_quick_create |
event.event.form.quick_create | event.event | form | New |
event_question_view_form |
event.question.view.form | event.question | form | New |
event_registration_answer_view_graph |
event.registration.answer.view.graph | event.registration.answer | graph | New |
event_registration_answer_view_pivot |
event.registration.answer.view.pivot | event.registration.answer | pivot | New |
event_registration_answer_view_search |
event.registration.answer.view.search | event.registration.answer | search | New |
event_registration_answer_view_tree |
event.registration.answer.view.list | event.registration.answer | list | New |
event_registration_attendee_list |
event_registration_attendee_list | ir.ui.view | qweb | New |
event_registration_report_template_badge |
event_registration_report_template_badge | ir.ui.view | qweb | New |
event_registration_report_template_full_page_ticket |
event_registration_report_template_full_page_ticket | ir.ui.view | qweb | New |
event_registration_report_template_responsive_html_ticket |
event_registration_report_template_responsive_html_ticket | ir.ui.view | qweb | New |
event_registration_view_kanban |
event.registration.kanban | event.registration | kanban | New |
event_registration_view_search_event_specific |
event.registration.view.search.event.specific | event.registration | xpath | Inherits view_registration_search |
event_report_full_page_ticket_layout |
event_report_full_page_ticket_layout | ir.ui.view | qweb | New |
event_report_template_a6_badge |
event_report_template_a6_badge | ir.ui.view | qweb | New |
event_report_template_badge_card |
event_report_template_badge_card | ir.ui.view | qweb | New |
event_report_template_esc_label_96x134_badge |
event_report_template_esc_label_96x134_badge | ir.ui.view | qweb | New |
event_report_template_esc_label_96x82_badge |
event_report_template_esc_label_96x82_badge | ir.ui.view | qweb | New |
event_report_template_foldable_badge |
event_report_template_foldable_badge | ir.ui.view | qweb | New |
event_report_template_formatted_event_address |
event_report_template_formatted_event_address | ir.ui.view | qweb | New |
event_report_template_four_per_sheet_badge |
event_report_template_four_per_sheet_badge | ir.ui.view | qweb | New |
event_report_template_full_page_ticket |
event_report_template_full_page_ticket | ir.ui.view | qweb | New |
event_stage_view_form |
event.stage.view.form | event.stage | form | New |
event_stage_view_tree |
event.stage.view.list | event.stage | list | New |
event_tag_category_view_form |
event.tag.category.view.form | event.tag.category | form | New |
event_tag_category_view_tree |
event.tag.category.view.list | event.tag.category | list | New |
event_tag_view_form |
event.tag.view.form | event.tag | form | New |
event_tag_view_tree |
event.tag.view.list | event.tag | list | New |
event_type_ticket_view_form |
event.type.ticket.view.form | event.type.ticket | xpath | Inherits event_type_ticket_view_form_from_type |
event_type_ticket_view_form_from_type |
event.type.ticket.view.form.from.type | event.type.ticket | form | New |
event_type_ticket_view_tree |
event.type.ticket.view.list | event.type.ticket | xpath | Inherits event_type_ticket_view_tree_from_type |
event_type_ticket_view_tree_from_type |
event.type.ticket.view.list.from.type | event.type.ticket | list | New |
event_type_view_search |
event.type.search | event.type | search | New |
res_config_settings_view_form |
res.config.settings.view.form.inherit.event | res.config.settings | xpath | Inherits mail.res_config_settings_view_form |
res_partner_view_tree |
view.res.partner.form.event.inherited | res.partner | div | Inherits base.view_partner_form |
view_event_calendar |
event.event.calendar | event.event | calendar | New |
view_event_form |
event.event.form | event.event | form | New |
view_event_kanban |
event.event.kanban | event.event | kanban | New |
view_event_mail_form |
event.mail.form | event.mail | form | New |
view_event_mail_tree |
event.mail.list | event.mail | list | New |
view_event_registration_calendar |
event.registration.calendar | event.registration | calendar | New |
view_event_registration_form |
event.registration.form | event.registration | form | New |
view_event_registration_graph |
event.registration.graph | event.registration | graph | New |
view_event_registration_pivot |
event.registration.pivot | event.registration | pivot | New |
view_event_registration_tree |
event.registration.list | event.registration | list | New |
view_event_search |
event.event.search | event.event | search | New |
view_event_tree |
event.event.list | event.event | list | New |
view_event_type_form |
event.type.form | event.type | form | New |
view_event_type_tree |
event.type.list | event.type | list | New |
view_registration_search |
event.registration.search | event.registration | search | New |
active
Boolean
default=True
address_id
Many2one → res.partner
check_company=True
default=<expr>
string='Venue'
tracking=True
args: 'res.partner'
address_inline
Char
compute='_compute_address_inline'
compute_sudo=True
string='Venue (formatted for one line uses)'
address_search
Many2one → res.partner
compute='_compute_address_search'
search='_search_address_search'
string='Address'
args: 'res.partner'
badge_format
Selection
default='A6'
required=True
selection=[('A4_french_fold', 'A4 foldable'), ('A6', 'A6'), ('four_per_sheet', '4 per sheet'), ('96x82', '96x82mm (Badge Printer)'), ('96x134', '96x134mm (Badge Printer)')]
string='Badge Dimension'
badge_image
Image
max_height=1024
max_width=1024
args: 'Badge Background'
company_id
Many2one → res.company
change_default=True
default=<expr>
required=False
string='Company'
args: 'res.company'
country_id
Many2one → res.country
readonly=False
related='address_id.country_id'
store=True
args: 'res.country', 'Country'
date_begin
Datetime
help='When the event is scheduled to take place (expressed in your local timezone on the form view).'
required=True
string='Start Date'
tracking=True
date_begin_located
Char
compute='_compute_date_begin_tz'
string='Start Date Located'
date_end
Datetime
required=True
string='End Date'
tracking=True
date_end_located
Char
compute='_compute_date_end_tz'
string='End Date Located'
date_tz
Selection
compute='_compute_date_tz'
help='Indicates the timezone in which the event dates/times will be displayed on the website.'
precompute=True
readonly=False
required=True
store=True
string='Display Timezone'
args: _tz_get
description
Html
default=_default_description
sanitize_attributes=False
sanitize_form=False
string='Description'
translate=html_translate
event_mail_ids
One2many → event.mail
compute='_compute_event_mail_ids'
copy=True
readonly=False
store=True
string='Mail Schedule'
args: 'event.mail', 'event_id'
event_registrations_open
Boolean
compute='_compute_event_registrations_open'
compute_sudo=True
help='Registrations are open if:\n- the event is not ended\n- there are seats available on event\n- the tickets are sellable (if ticketing is used)'
args: 'Registration open'
event_registrations_sold_out
Boolean
compute='_compute_event_registrations_sold_out'
compute_sudo=True
help='The event is sold out if no more seats are available on event. If ticketing is used and all tickets are sold out, the event will be sold out.'
args: 'Sold Out'
event_registrations_started
Boolean
compute='_compute_event_registrations_started'
help='registrations have started if the current datetime is after the earliest starting date of tickets.'
args: 'Registrations started'
event_ticket_ids
One2many → event.event.ticket
compute='_compute_event_ticket_ids'
copy=True
readonly=False
store=True
string='Event Ticket'
args: 'event.event.ticket', 'event_id'
event_type_id
Many2one → event.type
help='Choose a template to auto-fill tickets, communications, descriptions and other fields.'
ondelete='set null'
string='Template'
args: 'event.type'
general_question_ids
One2many → event.question
domain=[('once_per_order', '=', True)]
args: 'event.question', 'event_id', 'General Questions'
is_finished
Boolean
compute='_compute_is_finished'
search='_search_is_finished'
is_one_day
Boolean
compute='_compute_field_is_one_day'
is_ongoing
Boolean
compute='_compute_is_ongoing'
search='_search_is_ongoing'
args: 'Is Ongoing'
kanban_state
Selection
copy=False
default='normal'
args: [('normal', 'In Progress'), ('done', 'Done'), ('blocked', 'Blocked')]
kanban_state_label
Char
compute='_compute_kanban_state_label'
store=True
string='Kanban State Label'
tracking=True
lang
Selection
help='All the communication emails sent to attendees will be translated in this language.'
string='Language'
args: _lang_get
legend_blocked
Char
readonly=True
related='stage_id.legend_blocked'
string='Kanban Blocked Explanation'
legend_done
Char
readonly=True
related='stage_id.legend_done'
string='Kanban Valid Explanation'
legend_normal
Char
readonly=True
related='stage_id.legend_normal'
string='Kanban Ongoing Explanation'
name
Char
required=True
string='Event'
translate=True
note
Html
compute='_compute_note'
readonly=False
store=True
string='Note'
organizer_id
Many2one → res.partner
check_company=True
default=<expr>
string='Organizer'
tracking=True
args: 'res.partner'
question_ids
One2many → event.question
compute='_compute_question_ids'
copy=True
readonly=False
store=True
args: 'event.question', 'event_id', 'Questions'
registration_ids
One2many → event.registration
string='Attendees'
args: 'event.registration', 'event_id'
registration_properties_definition
PropertiesDefinition
seats_available
Integer
compute='_compute_seats'
readonly=True
store=False
string='Available Seats'
seats_limited
Boolean
compute='_compute_seats_limited'
precompute=True
readonly=False
required=True
store=True
args: 'Limit Attendees'
seats_max
Integer
compute='_compute_seats_max'
help='For each event you can define a maximum registration of seats(number of attendees), above this numbers the registrations are not accepted.'
readonly=False
store=True
string='Maximum Attendees'
seats_reserved
Integer
compute='_compute_seats'
readonly=True
store=False
string='Number of Registrations'
seats_taken
Integer
compute='_compute_seats'
readonly=True
store=False
string='Number of Taken Seats'
seats_used
Integer
compute='_compute_seats'
readonly=True
store=False
string='Number of Attendees'
specific_question_ids
One2many → event.question
domain=[('once_per_order', '=', False)]
args: 'event.question', 'event_id', 'Specific Questions'
stage_id
Many2one → event.stage
copy=False
default=_get_default_stage_id
group_expand='_read_group_expand_full'
ondelete='restrict'
tracking=True
args: 'event.stage'
start_sale_datetime
Datetime
compute='_compute_start_sale_date'
help='If ticketing is used, contains the earliest starting sale date of tickets.'
args: 'Start sale date'
tag_ids
Many2many → event.tag
compute='_compute_tag_ids'
readonly=False
store=True
string='Tags'
args: 'event.tag'
ticket_instructions
Html
compute='_compute_ticket_instructions'
help='This information will be printed on your tickets.'
readonly=False
store=True
translate=True
args: 'Ticket Instructions'
use_barcode
Boolean
compute='_compute_use_barcode'
user_id
Many2one → res.users
default=<expr>
string='Responsible'
tracking=True
args: 'res.users'
action_set_done(self)
copy_data(self, default=None)
create(self, vals_list)
default_get(self, fields_list)
get_kiosk_url(self)
mail_attendees(self, template_id, force_send=False, filter_func=<expr>)
write(self, vals)
color
Char
default='#875A7B'
args: 'Color'
company_id
Many2one → res.company
related='event_id.company_id'
args: 'res.company'
end_sale_datetime
Datetime
string='Registration End'
event_id
Many2one → event.event
ondelete='cascade'
required=True
string='Event'
args: 'event.event'
event_type_id
Many2one
ondelete='set null'
required=False
is_expired
Boolean
compute='_compute_is_expired'
string='Is Expired'
is_launched
Boolean
compute='_compute_is_launched'
string='Are sales launched'
is_sold_out
Boolean
compute='_compute_is_sold_out'
help='Whether seats are not available for this ticket.'
args: 'Sold Out'
registration_ids
One2many → event.registration
string='Registrations'
args: 'event.registration', 'event_ticket_id'
sale_available
Boolean
compute='_compute_sale_available'
compute_sudo=True
help='Whether it is possible to sell these tickets'
string='Is Available'
seats_available
Integer
compute='_compute_seats'
store=False
string='Available Seats'
seats_reserved
Integer
compute='_compute_seats'
store=False
string='Reserved Seats'
seats_taken
Integer
compute='_compute_seats'
store=False
string='Taken Seats'
seats_used
Integer
compute='_compute_seats'
store=False
string='Used Seats'
start_sale_datetime
Datetime
string='Registration Start'
default_get(self, fields)
event_id
Many2one → event.event
ondelete='cascade'
required=True
string='Event'
args: 'event.event'
interval_nbr
Integer
default=1
args: 'Interval'
interval_type
Selection
default='before_event'
required=True
string='Trigger '
args: [('after_sub', 'After each registration'), ('before_event', 'Before the event'), ('after_event', 'After the event')]
interval_unit
Selection
default='hours'
required=True
string='Unit'
args: [('now', 'Immediately'), ('hours', 'Hours'), ('days', 'Days'), ('weeks', 'Weeks'), ('months', 'Months')]
last_registration_id
Many2one → event.registration
mail_count_done
Integer
copy=False
readonly=True
args: '# Sent'
mail_done
Boolean
copy=False
readonly=True
args: 'Sent'
mail_registration_ids
One2many → event.mail.registration
help='Communication related to event registrations'
args: 'event.mail.registration', 'scheduler_id'
mail_state
Selection
compute='_compute_mail_state'
string='Global communication Status'
args: [('running', 'Running'), ('scheduled', 'Scheduled'), ('sent', 'Sent')]
notification_type
Selection
compute='_compute_notification_type'
string='Send'
args: [('mail', 'Mail')]
scheduled_date
Datetime
compute='_compute_scheduled_date'
store=True
args: 'Schedule Date'
sequence
Integer
template_ref
Reference
ondelete={'mail.template': 'cascade'}
required=True
selection=[('mail.template', 'Mail')]
string='Template'
execute(self)
run(self, autocommit=False)
schedule_communications(self, autocommit=False)
mail_sent
Boolean
registration_id
Many2one → event.registration
ondelete='cascade'
required=True
args: 'event.registration', 'Attendee'
scheduled_date
Datetime
compute='_compute_scheduled_date'
store=True
args: 'Scheduled Time'
scheduler_id
Many2one → event.mail
ondelete='cascade'
required=True
args: 'event.mail', 'Mail Scheduler'
execute(self)
answer_ids
One2many → event.question.answer
copy=True
args: 'event.question.answer', 'question_id', 'Answers'
event_id
Many2one → event.event
ondelete='cascade'
args: 'event.event', 'Event'
event_type_id
Many2one → event.type
ondelete='cascade'
args: 'event.type', 'Event Type'
is_mandatory_answer
Boolean
once_per_order
Boolean
help='If True, this question will be asked only once and its value will be propagated to every attendees.If not it will be asked for every attendee of a reservation.'
args: 'Ask once per order'
question_type
Selection
default='simple_choice'
required=True
string='Question Type'
args: [('simple_choice', 'Selection'), ('text_box', 'Text Input'), ('name', 'Name'), ('email', 'Email'), ('phone', 'Phone'), ('company_name', 'Company')]
sequence
Integer
default=10
title
Char
required=True
translate=True
action_view_question_answers(self)
write(self, vals)
name
Char
required=True
translate=True
args: 'Answer'
question_id
Many2one → event.question
ondelete='cascade'
required=True
args: 'event.question'
sequence
Integer
default=10
No public methods.
active
Boolean
default=True
barcode
Char
copy=False
default=<expr>
readonly=True
string='Barcode'
company_id
Many2one → res.company
readonly=False
related='event_id.company_id'
store=True
string='Company'
args: 'res.company'
company_name
Char
compute='_compute_company_name'
readonly=False
store=True
string='Company Name'
tracking=5
date_closed
Datetime
compute='_compute_date_closed'
readonly=False
store=True
string='Attended Date'
email
Char
compute='_compute_email'
readonly=False
store=True
string='Email'
tracking=3
event_begin_date
Datetime
readonly=True
related='event_id.date_begin'
string='Event Start Date'
event_date_range
Char
compute='_compute_date_range'
args: 'Date Range'
event_end_date
Datetime
readonly=True
related='event_id.date_end'
string='Event End Date'
event_id
Many2one → event.event
required=True
string='Event'
args: 'event.event'
event_organizer_id
Many2one
readonly=True
related='event_id.organizer_id'
string='Event Organizer'
event_ticket_id
Many2one → event.event.ticket
ondelete='restrict'
string='Ticket Type'
args: 'event.event.ticket'
event_user_id
Many2one
readonly=True
related='event_id.user_id'
string='Event Responsible'
mail_registration_ids
One2many → event.mail.registration
readonly=True
string='Scheduler Emails'
args: 'event.mail.registration', 'registration_id'
name
Char
compute='_compute_name'
index='trigram'
readonly=False
store=True
string='Attendee Name'
tracking=2
partner_id
Many2one → res.partner
string='Booked by'
tracking=1
args: 'res.partner'
phone
Char
compute='_compute_phone'
readonly=False
store=True
string='Phone'
tracking=4
registration_answer_choice_ids
One2many → event.registration.answer
domain=[('question_type', '=', 'simple_choice')]
string='Attendee Selection Answers'
args: 'event.registration.answer', 'registration_id'
registration_answer_ids
One2many → event.registration.answer
string='Attendee Answers'
args: 'event.registration.answer', 'registration_id'
registration_properties
Properties
copy=True
definition='event_id.registration_properties_definition'
args: 'Properties'
state
Selection
copy=False
default='open'
help='Unconfirmed: registrations in a pending state waiting for an action (specific case, notably with sale status)\nRegistered: registrations considered taken by a client\nAttended: registrations for which the attendee attended the event\nCancelled: registrations cancelled manually'
readonly=True
string='Status'
tracking=6
args: [('draft', 'Unconfirmed'), ('open', 'Registered'), ('done', 'Attended'), ('cancel', 'Cancelled')]
utm_campaign_id
Many2one → utm.campaign
index=True
ondelete='set null'
args: 'utm.campaign', 'Campaign'
utm_medium_id
Many2one → utm.medium
index=True
ondelete='set null'
args: 'utm.medium', 'Medium'
utm_source_id
Many2one → utm.source
index=True
ondelete='set null'
args: 'utm.source', 'Source'
action_cancel(self)
action_confirm(self)
action_send_badge_email(self)
action_set_done(self)
action_set_draft(self)
create(self, vals_list)
default_get(self, fields)
register_attendee(self, barcode, event_id)
toggle_active(self)
write(self, vals)
event_id
Many2one → event.event
related='registration_id.event_id'
args: 'event.event'
partner_id
Many2one → res.partner
related='registration_id.partner_id'
args: 'res.partner'
question_id
Many2one → event.question
domain="[('event_id', '=', event_id)]"
ondelete='restrict'
required=True
args: 'event.question'
question_type
Selection
related='question_id.question_type'
registration_id
Many2one → event.registration
ondelete='cascade'
required=True
args: 'event.registration'
value_answer_id
Many2one → event.question.answer
string='Suggested answer'
args: 'event.question.answer'
value_text_box
Text
No public methods.
description
Text
string='Stage description'
translate=True
fold
Boolean
default=False
string='Folded in Kanban'
legend_blocked
Char
default=<expr>
help='Override the default value displayed for the blocked state for kanban selection.'
prefetch='legend'
required=True
translate=True
args: 'Red Kanban Label'
legend_done
Char
default=<expr>
help='Override the default value displayed for the done state for kanban selection.'
prefetch='legend'
required=True
translate=True
args: 'Green Kanban Label'
legend_normal
Char
default=<expr>
help='Override the default value displayed for the normal state for kanban selection.'
prefetch='legend'
required=True
translate=True
args: 'Grey Kanban Label'
name
Char
required=True
string='Stage Name'
translate=True
pipe_end
Boolean
default=False
help='Events will automatically be moved into this stage when they are finished. The event moved into this stage will automatically be set as green.'
string='End Stage'
sequence
Integer
default=1
args: 'Sequence'
No public methods.
category_id
Many2one → event.tag.category
ondelete='cascade'
required=True
string='Category'
args: 'event.tag.category'
category_sequence
Integer
related='category_id.sequence'
store=True
string='Category Sequence'
color
Integer
default=<expr>
help='Tag color. No color means no display in kanban or front-end, to distinguish internal tags from public categorization tags.'
string='Color Index'
name
Char
required=True
translate=True
args: 'Name'
sequence
Integer
default=0
args: 'Sequence'
No public methods.
name
Char
required=True
translate=True
args: 'Name'
sequence
Integer
default=_default_sequence
args: 'Sequence'
tag_ids
One2many → event.tag
string='Tags'
args: 'event.tag', 'category_id'
No public methods.
default_timezone
Selection
default=<expr>
string='Timezone'
args: _tz_get
event_type_mail_ids
One2many → event.type.mail
default=_default_event_mail_type_ids
string='Mail Schedule'
args: 'event.type.mail', 'event_type_id'
event_type_ticket_ids
One2many → event.type.ticket
string='Tickets'
args: 'event.type.ticket', 'event_type_id'
has_seats_limitation
Boolean
name
Char
required=True
translate=True
args: 'Event Template'
note
Html
string='Note'
question_ids
One2many → event.question
copy=True
default=_default_question_ids
string='Questions'
args: 'event.question', 'event_type_id'
seats_max
Integer
compute='_compute_seats_max'
help='It will select this default maximum value when you choose this event'
readonly=False
store=True
args: 'Maximum Registrations'
sequence
Integer
default=10
tag_ids
Many2many → event.tag
string='Tags'
args: 'event.tag'
ticket_instructions
Html
help='This information will be printed on your tickets.'
translate=True
args: 'Ticket Instructions'
No public methods.
event_type_id
Many2one → event.type
ondelete='cascade'
required=True
string='Event Type'
args: 'event.type'
interval_nbr
Integer
default=1
args: 'Interval'
interval_type
Selection
default='before_event'
required=True
string='Trigger'
args: [('after_sub', 'After each registration'), ('before_event', 'Before the event'), ('after_event', 'After the event')]
interval_unit
Selection
default='hours'
required=True
string='Unit'
args: [('now', 'Immediately'), ('hours', 'Hours'), ('days', 'Days'), ('weeks', 'Weeks'), ('months', 'Months')]
notification_type
Selection
compute='_compute_notification_type'
string='Send'
args: [('mail', 'Mail')]
template_ref
Reference
ondelete={'mail.template': 'cascade'}
required=True
selection=[('mail.template', 'Mail')]
string='Template'
No public methods.
description
Text
help='A description of the ticket that you want to communicate to your customers.'
translate=True
args: 'Description'
event_type_id
Many2one → event.type
ondelete='cascade'
required=True
string='Event Category'
args: 'event.type'
name
Char
default=<expr>
required=True
string='Name'
translate=True
seats_limited
Boolean
compute='_compute_seats_limited'
readonly=True
store=True
string='Limit Attendees'
seats_max
Integer
help='Define the number of available tickets. If you have too many registrations you will not be able to sell tickets anymore. Set 0 to ignore this rule set as unlimited.'
string='Maximum Attendees'
sequence
Integer
default=10
args: 'Sequence'
No public methods.
No new fields.
Public methods (1)unlink(self)
barcode_nomenclature_id
Many2one → barcode.nomenclature
readonly=False
related='company_id.nomenclature_id'
args: 'barcode.nomenclature'
google_maps_static_api_key
Char
compute='_compute_maps_static_api_key'
config_parameter='google_maps.signed_static_api_key'
readonly=False
store=True
args: 'Google Maps API key'
google_maps_static_api_secret
Char
compute='_compute_maps_static_api_secret'
config_parameter='google_maps.signed_static_api_secret'
readonly=False
store=True
args: 'Google Maps API secret'
module_event_booth
Boolean
module_event_sale
Boolean
module_pos_event
Boolean
module_website_event_exhibitor
Boolean
module_website_event_meet
Boolean
module_website_event_sale
Boolean
module_website_event_track
Boolean
module_website_event_track_live
Boolean
module_website_event_track_quiz
Boolean
use_event_barcode
Boolean
config_parameter='event.use_event_barcode'
help='Enable or Disable Event Barcode functionality.'
string='Use Event Barcode'
use_google_maps_static_api
Boolean
default=_default_use_google_maps_static_api
args: 'Google Maps static API'
create(self, vals_list)
write(self, vals)
event_count
Integer
compute='_compute_event_count'
groups='event.group_event_registration_desk'
args: '# Events'
static_map_url
Char
compute='_compute_static_map_url'
static_map_url_is_valid
Boolean
compute='_compute_static_map_url_is_valid'
action_event_view(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/17.0/event |
| VERSION | |
| VERSION | 1.8 |
| CATEGORY | |
| CATEGORY | Marketing/Events |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Raphael Collet, Odoo Translation Bot, Martin Trigaux, Thibault Delavallée, Xavier ALT, Christophe Simonis, Xavier Morel, Joren Van Onder, qdp-odoo, Géry Debongnie, Aaron Bohy, Damien Bouvy, Yannick Tivisse, qsm-odoo, Odoo Online, Jorge Pinna Puissant, Aurélien Warnon, Xavier-Do, Victor Feyens, Joseph Caburnay, Julien Mougenot, Samuel Degueldre, Nasreddin Boulif (bon), Prakash Prajapati, Tiffany Chang (tic), Rémy Voet (ryv), Gorash, Pierre Paridans, abd-msyukyu-odoo, Patrick Hoste, Renaud Thiry, Julien Banken, Thomas Lefebvre (thle), Andro Gvivradze, Louis Wicket (wil), althaf shaik, Julien (jula), Mahamadasif Ansari, miad-odoo, amdi-odoo, Pierre-Yves Dufays, Levi Siuzdak (sile), Maruan Aguerdouh (magm), Dylan Kiss (dyki), Hansun (hale), Bruno Boi, Antoine (ande), Michael (mcm), Mayurrajsinh Rathod, Adrien Schoffeniels, Xavier Bol (xbo), Brieuc-brd, Ivan Rasputin, Nguyễn Đại Dương, Noe Antoine, Andrzej(pian), dane@odoo.com, lase@odoo.com, reka-odoo, Jérémy Hennecart (jeh), jobl, Julien Carion (juca), adsh-odoo, Louis (wil), Shaan Thakkar (THSH), Elisabeth Dickinson, Pierre Pulinckx (pipu), Bastien PIERRE, Sahil Patel |
| WEBSITE | |
| WEBSITE | https://www.odoo.com/app/events |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 01:02:08 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - barcodes - web - base - base_setup - bus - web_tour - phone_validation - portal - web_editor - http_routing - auth_signup - utm |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | Organization and management of Events. ====================================== The event module allows you to efficiently organize events and all related tasks: planning, registration tracking, attendances, etc. Key Features ------------ * Manage your Events and Registrations * Use emails to automatically confirm and send acknowledgments for any event registration |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
attendee_list |
attendee_list | ir.ui.view | qweb | New |
event_default_descripton |
Event default description | ir.ui.view | qweb | New |
event_event_attendee_list |
event_event_attendee_list | ir.ui.view | qweb | New |
event_event_report_template_badge |
event_event_report_template_badge | ir.ui.view | qweb | New |
event_event_report_template_full_page_ticket |
event_event_report_template_full_page_ticket | ir.ui.view | qweb | New |
event_event_ticket_form_view |
event.event.ticket.view.form | event.event.ticket | form | New |
event_event_ticket_view_form_from_event |
event.event.ticket.view.form.from.event | event.event.ticket | form | New |
event_event_ticket_view_kanban_from_event |
event.event.ticket.view.kanban.from.event | event.event.ticket | kanban | New |
event_event_ticket_view_tree |
event.event.ticket.view.tree | event.event.ticket | xpath | Inherits event_event_ticket_view_tree_from_event |
event_event_ticket_view_tree_from_event |
event.event.ticket.view.tree.from.event | event.event.ticket | tree | New |
event_event_view_activity |
event.event.view.activity | event.event | activity | New |
event_event_view_form_quick_create |
event.event.form.quick_create | event.event | form | New |
event_registration_attendee_list |
event_registration_attendee_list | ir.ui.view | qweb | New |
event_registration_report_template_badge |
event_registration_report_template_badge | ir.ui.view | qweb | New |
event_registration_report_template_full_page_ticket |
event_registration_report_template_full_page_ticket | ir.ui.view | qweb | New |
event_registration_report_template_responsive_html_ticket |
event_registration_report_template_responsive_html_ticket | ir.ui.view | qweb | New |
event_registration_view_kanban |
event.registration.kanban | event.registration | kanban | New |
event_registration_view_search_event_specific |
event.registration.view.search.event.specific | event.registration | xpath | Inherits view_registration_search |
event_report_full_page_ticket_layout |
event_report_full_page_ticket_layout | ir.ui.view | qweb | New |
event_report_template_a6_badge |
event_report_template_a6_badge | ir.ui.view | qweb | New |
event_report_template_badge_card |
event_report_template_badge_card | ir.ui.view | qweb | New |
event_report_template_foldable_badge |
event_report_template_foldable_badge | ir.ui.view | qweb | New |
event_report_template_formatted_event_address |
event_report_template_formatted_event_address | ir.ui.view | qweb | New |
event_report_template_four_per_sheet_badge |
event_report_template_four_per_sheet_badge | ir.ui.view | qweb | New |
event_report_template_full_page_ticket |
event_report_template_full_page_ticket | ir.ui.view | qweb | New |
event_stage_view_form |
event.stage.view.form | event.stage | form | New |
event_stage_view_tree |
event.stage.view.tree | event.stage | tree | New |
event_tag_category_view_form |
event.tag.category.view.form | event.tag.category | form | New |
event_tag_category_view_tree |
event.tag.category.view.tree | event.tag.category | tree | New |
event_tag_view_form |
event.tag.view.form | event.tag | form | New |
event_tag_view_tree |
event.tag.view.tree | event.tag | tree | New |
event_type_ticket_view_form |
event.type.ticket.view.form | event.type.ticket | xpath | Inherits event_type_ticket_view_form_from_type |
event_type_ticket_view_form_from_type |
event.type.ticket.view.form.from.type | event.type.ticket | form | New |
event_type_ticket_view_tree |
event.type.ticket.view.tree | event.type.ticket | xpath | Inherits event_type_ticket_view_tree_from_type |
event_type_ticket_view_tree_from_type |
event.type.ticket.view.tree.from.type | event.type.ticket | tree | New |
event_type_view_search |
event.type.search | event.type | search | New |
res_config_settings_view_form |
res.config.settings.view.form.inherit.event | res.config.settings | xpath | Inherits mail.res_config_settings_view_form |
res_partner_view_tree |
view.res.partner.form.event.inherited | res.partner | div | Inherits base.view_partner_form |
view_event_calendar |
event.event.calendar | event.event | calendar | New |
view_event_form |
event.event.form | event.event | form | New |
view_event_kanban |
event.event.kanban | event.event | kanban | New |
view_event_mail_form |
event.mail.form | event.mail | form | New |
view_event_mail_tree |
event.mail.tree | event.mail | tree | New |
view_event_registration_calendar |
event.registration.calendar | event.registration | calendar | New |
view_event_registration_form |
event.registration.form | event.registration | form | New |
view_event_registration_graph |
event.registration.graph | event.registration | graph | New |
view_event_registration_pivot |
event.registration.pivot | event.registration | pivot | New |
view_event_registration_tree |
event.registration.tree | event.registration | tree | New |
view_event_search |
event.event.search | event.event | search | New |
view_event_tree |
event.event.tree | event.event | tree | New |
view_event_type_form |
event.type.form | event.type | form | New |
view_event_type_tree |
event.type.tree | event.type | tree | New |
view_registration_search |
event.registration.search | event.registration | search | New |
active
Boolean
default=True
address_id
Many2one → res.partner
check_company=True
default=<expr>
string='Venue'
tracking=True
args: 'res.partner'
address_inline
Char
compute='_compute_address_inline'
compute_sudo=True
string='Venue (formatted for one line uses)'
address_search
Many2one → res.partner
compute='_compute_address_search'
search='_search_address_search'
string='Address'
args: 'res.partner'
badge_format
Selection
default='A6'
required=True
selection=[('A4_french_fold', 'A4 foldable'), ('A6', 'A6'), ('four_per_sheet', '4 per sheet')]
string='Badge Dimension'
badge_image
Image
max_height=1024
max_width=1024
args: 'Badge Background'
company_id
Many2one → res.company
change_default=True
default=<expr>
required=False
string='Company'
args: 'res.company'
country_id
Many2one → res.country
readonly=False
related='address_id.country_id'
store=True
args: 'res.country', 'Country'
date_begin
Datetime
help='When the event is scheduled to take place (expressed in your local timezone on the form view).'
required=True
string='Start Date'
tracking=True
date_begin_located
Char
compute='_compute_date_begin_tz'
string='Start Date Located'
date_end
Datetime
required=True
string='End Date'
tracking=True
date_end_located
Char
compute='_compute_date_end_tz'
string='End Date Located'
date_tz
Selection
compute='_compute_date_tz'
help='Indicates the timezone in which the event dates/times will be displayed on the website.'
precompute=True
readonly=False
required=True
store=True
string='Display Timezone'
args: _tz_get
description
Html
default=_default_description
sanitize_attributes=False
sanitize_form=False
string='Description'
translate=html_translate
event_mail_ids
One2many → event.mail
compute='_compute_event_mail_ids'
copy=True
readonly=False
store=True
string='Mail Schedule'
args: 'event.mail', 'event_id'
event_registrations_open
Boolean
compute='_compute_event_registrations_open'
compute_sudo=True
help='Registrations are open if:\n- the event is not ended\n- there are seats available on event\n- the tickets are sellable (if ticketing is used)'
args: 'Registration open'
event_registrations_sold_out
Boolean
compute='_compute_event_registrations_sold_out'
compute_sudo=True
help='The event is sold out if no more seats are available on event. If ticketing is used and all tickets are sold out, the event will be sold out.'
args: 'Sold Out'
event_registrations_started
Boolean
compute='_compute_event_registrations_started'
help='registrations have started if the current datetime is after the earliest starting date of tickets.'
args: 'Registrations started'
event_ticket_ids
One2many → event.event.ticket
compute='_compute_event_ticket_ids'
copy=True
readonly=False
store=True
string='Event Ticket'
args: 'event.event.ticket', 'event_id'
event_type_id
Many2one → event.type
ondelete='set null'
string='Template'
args: 'event.type'
is_finished
Boolean
compute='_compute_is_finished'
search='_search_is_finished'
is_one_day
Boolean
compute='_compute_field_is_one_day'
is_ongoing
Boolean
compute='_compute_is_ongoing'
search='_search_is_ongoing'
args: 'Is Ongoing'
kanban_state
Selection
copy=False
default='normal'
args: [('normal', 'In Progress'), ('done', 'Done'), ('blocked', 'Blocked')]
kanban_state_label
Char
compute='_compute_kanban_state_label'
store=True
string='Kanban State Label'
tracking=True
lang
Selection
help='All the communication emails sent to attendees will be translated in this language.'
string='Language'
args: _lang_get
legend_blocked
Char
readonly=True
related='stage_id.legend_blocked'
string='Kanban Blocked Explanation'
legend_done
Char
readonly=True
related='stage_id.legend_done'
string='Kanban Valid Explanation'
legend_normal
Char
readonly=True
related='stage_id.legend_normal'
string='Kanban Ongoing Explanation'
name
Char
required=True
string='Event'
translate=True
note
Html
compute='_compute_note'
readonly=False
store=True
string='Note'
organizer_id
Many2one → res.partner
check_company=True
default=<expr>
string='Organizer'
tracking=True
args: 'res.partner'
registration_ids
One2many → event.registration
string='Attendees'
args: 'event.registration', 'event_id'
registration_properties_definition
PropertiesDefinition
seats_available
Integer
compute='_compute_seats'
readonly=True
store=False
string='Available Seats'
seats_limited
Boolean
compute='_compute_seats_limited'
precompute=True
readonly=False
required=True
store=True
args: 'Limit Attendees'
seats_max
Integer
compute='_compute_seats_max'
help='For each event you can define a maximum registration of seats(number of attendees), above this numbers the registrations are not accepted.'
readonly=False
store=True
string='Maximum Attendees'
seats_reserved
Integer
compute='_compute_seats'
readonly=True
store=False
string='Number of Registrations'
seats_taken
Integer
compute='_compute_seats'
readonly=True
store=False
string='Number of Taken Seats'
seats_used
Integer
compute='_compute_seats'
readonly=True
store=False
string='Number of Attendees'
stage_id
Many2one → event.stage
copy=False
default=_get_default_stage_id
group_expand='_read_group_stage_ids'
ondelete='restrict'
tracking=True
args: 'event.stage'
start_sale_datetime
Datetime
compute='_compute_start_sale_date'
help='If ticketing is used, contains the earliest starting sale date of tickets.'
args: 'Start sale date'
tag_ids
Many2many → event.tag
compute='_compute_tag_ids'
readonly=False
store=True
string='Tags'
args: 'event.tag'
ticket_instructions
Html
compute='_compute_ticket_instructions'
help='This information will be printed on your tickets.'
readonly=False
store=True
translate=True
args: 'Ticket Instructions'
use_barcode
Boolean
compute='_compute_use_barcode'
user_id
Many2one → res.users
default=<expr>
string='Responsible'
tracking=True
args: 'res.users'
action_set_done(self)
copy(self, default=None)
create(self, vals_list)
default_get(self, fields_list)
mail_attendees(self, template_id, force_send=False, filter_func=<expr>)
write(self, vals)
color
Char
default='#875A7B'
args: 'Color'
company_id
Many2one → res.company
related='event_id.company_id'
args: 'res.company'
end_sale_datetime
Datetime
string='Registration End'
event_id
Many2one → event.event
ondelete='cascade'
required=True
string='Event'
args: 'event.event'
event_type_id
Many2one
ondelete='set null'
required=False
is_expired
Boolean
compute='_compute_is_expired'
string='Is Expired'
is_launched
Boolean
compute='_compute_is_launched'
string='Are sales launched'
is_sold_out
Boolean
compute='_compute_is_sold_out'
help='Whether seats are not available for this ticket.'
args: 'Sold Out'
registration_ids
One2many → event.registration
string='Registrations'
args: 'event.registration', 'event_ticket_id'
sale_available
Boolean
compute='_compute_sale_available'
compute_sudo=True
help='Whether it is possible to sell these tickets'
string='Is Available'
seats_available
Integer
compute='_compute_seats'
store=False
string='Available Seats'
seats_reserved
Integer
compute='_compute_seats'
store=False
string='Reserved Seats'
seats_taken
Integer
compute='_compute_seats'
store=False
string='Taken Seats'
seats_used
Integer
compute='_compute_seats'
store=False
string='Used Seats'
start_sale_datetime
Datetime
string='Registration Start'
default_get(self, fields)
event_id
Many2one → event.event
ondelete='cascade'
required=True
string='Event'
args: 'event.event'
interval_nbr
Integer
default=1
args: 'Interval'
interval_type
Selection
default='before_event'
required=True
string='Trigger '
args: [('after_sub', 'After each registration'), ('before_event', 'Before the event'), ('after_event', 'After the event')]
interval_unit
Selection
default='hours'
required=True
string='Unit'
args: [('now', 'Immediately'), ('hours', 'Hours'), ('days', 'Days'), ('weeks', 'Weeks'), ('months', 'Months')]
mail_count_done
Integer
copy=False
readonly=True
args: '# Sent'
mail_done
Boolean
copy=False
readonly=True
args: 'Sent'
mail_registration_ids
One2many → event.mail.registration
help='Communication related to event registrations'
args: 'event.mail.registration', 'scheduler_id'
mail_state
Selection
compute='_compute_mail_state'
string='Global communication Status'
args: [('running', 'Running'), ('scheduled', 'Scheduled'), ('sent', 'Sent')]
notification_type
Selection
default='mail'
required=True
string='Send'
args: [('mail', 'Mail')]
scheduled_date
Datetime
compute='_compute_scheduled_date'
store=True
args: 'Schedule Date'
sequence
Integer
template_model_id
Many2one → ir.model
compute='_compute_template_model_id'
compute_sudo=True
string='Template Model'
args: 'ir.model'
template_ref
Reference
required=True
selection='_selection_template_model'
string='Template'
execute(self)
run(self, autocommit=False)
schedule_communications(self, autocommit=False)
set_template_ref_model(self)
mail_sent
Boolean
registration_id
Many2one → event.registration
ondelete='cascade'
required=True
args: 'event.registration', 'Attendee'
scheduled_date
Datetime
compute='_compute_scheduled_date'
store=True
args: 'Scheduled Time'
scheduler_id
Many2one → event.mail
ondelete='cascade'
required=True
args: 'event.mail', 'Mail Scheduler'
execute(self)
active
Boolean
default=True
barcode
Char
copy=False
default=<expr>
readonly=True
string='Barcode'
company_id
Many2one → res.company
readonly=False
related='event_id.company_id'
store=True
string='Company'
args: 'res.company'
company_name
Char
compute='_compute_company_name'
readonly=False
store=True
string='Company Name'
tracking=5
date_closed
Datetime
compute='_compute_date_closed'
readonly=False
store=True
string='Attended Date'
email
Char
compute='_compute_email'
readonly=False
store=True
string='Email'
tracking=3
event_begin_date
Datetime
readonly=True
related='event_id.date_begin'
string='Event Start Date'
event_end_date
Datetime
readonly=True
related='event_id.date_end'
string='Event End Date'
event_id
Many2one → event.event
required=True
string='Event'
args: 'event.event'
event_organizer_id
Many2one
readonly=True
related='event_id.organizer_id'
string='Event Organizer'
event_ticket_id
Many2one → event.event.ticket
ondelete='restrict'
string='Event Ticket'
args: 'event.event.ticket'
event_user_id
Many2one
readonly=True
related='event_id.user_id'
string='Event Responsible'
name
Char
compute='_compute_name'
index='trigram'
readonly=False
store=True
string='Attendee Name'
tracking=2
partner_id
Many2one → res.partner
string='Booked by'
tracking=1
args: 'res.partner'
phone
Char
compute='_compute_phone'
readonly=False
store=True
string='Phone'
tracking=4
registration_properties
Properties
copy=True
definition='event_id.registration_properties_definition'
args: 'Properties'
state
Selection
copy=False
default='open'
help='Unconfirmed: registrations in a pending state waiting for an action (specific case, notably with sale status)\nRegistered: registrations considered taken by a client\nAttended: registrations for which the attendee attended the event\nCancelled: registrations cancelled manually'
readonly=True
string='Status'
tracking=6
args: [('draft', 'Unconfirmed'), ('open', 'Registered'), ('done', 'Attended'), ('cancel', 'Cancelled')]
utm_campaign_id
Many2one → utm.campaign
index=True
ondelete='set null'
args: 'utm.campaign', 'Campaign'
utm_medium_id
Many2one → utm.medium
index=True
ondelete='set null'
args: 'utm.medium', 'Medium'
utm_source_id
Many2one → utm.source
index=True
ondelete='set null'
args: 'utm.source', 'Source'
action_cancel(self)
action_confirm(self)
action_send_badge_email(self)
action_set_done(self)
action_set_draft(self)
action_set_previous_state(self)
create(self, vals_list)
default_get(self, fields)
get_date_range_str(self, lang_code=False)
register_attendee(self, barcode, event_id)
toggle_active(self)
write(self, vals)
description
Text
string='Stage description'
translate=True
fold
Boolean
default=False
string='Folded in Kanban'
legend_blocked
Char
default=<expr>
help='Override the default value displayed for the blocked state for kanban selection.'
prefetch='legend'
required=True
translate=True
args: 'Red Kanban Label'
legend_done
Char
default=<expr>
help='Override the default value displayed for the done state for kanban selection.'
prefetch='legend'
required=True
translate=True
args: 'Green Kanban Label'
legend_normal
Char
default=<expr>
help='Override the default value displayed for the normal state for kanban selection.'
prefetch='legend'
required=True
translate=True
args: 'Grey Kanban Label'
name
Char
required=True
string='Stage Name'
translate=True
pipe_end
Boolean
default=False
help='Events will automatically be moved into this stage when they are finished. The event moved into this stage will automatically be set as green.'
string='End Stage'
sequence
Integer
default=1
args: 'Sequence'
No public methods.
category_id
Many2one → event.tag.category
ondelete='cascade'
required=True
string='Category'
args: 'event.tag.category'
category_sequence
Integer
related='category_id.sequence'
store=True
string='Category Sequence'
color
Integer
default=<expr>
help='Tag color. No color means no display in kanban or front-end, to distinguish internal tags from public categorization tags.'
string='Color Index'
name
Char
required=True
translate=True
args: 'Name'
sequence
Integer
default=0
args: 'Sequence'
No public methods.
name
Char
required=True
translate=True
args: 'Name'
sequence
Integer
default=_default_sequence
args: 'Sequence'
tag_ids
One2many → event.tag
string='Tags'
args: 'event.tag', 'category_id'
No public methods.
default_timezone
Selection
default=<expr>
string='Timezone'
args: _tz_get
event_type_mail_ids
One2many → event.type.mail
default=_default_event_mail_type_ids
string='Mail Schedule'
args: 'event.type.mail', 'event_type_id'
event_type_ticket_ids
One2many → event.type.ticket
string='Tickets'
args: 'event.type.ticket', 'event_type_id'
has_seats_limitation
Boolean
name
Char
required=True
translate=True
args: 'Event Template'
note
Html
string='Note'
seats_max
Integer
compute='_compute_seats_max'
help='It will select this default maximum value when you choose this event'
readonly=False
store=True
args: 'Maximum Registrations'
sequence
Integer
default=10
tag_ids
Many2many → event.tag
string='Tags'
args: 'event.tag'
ticket_instructions
Html
help='This information will be printed on your tickets.'
translate=True
args: 'Ticket Instructions'
No public methods.
event_type_id
Many2one → event.type
ondelete='cascade'
required=True
string='Event Type'
args: 'event.type'
interval_nbr
Integer
default=1
args: 'Interval'
interval_type
Selection
default='before_event'
required=True
string='Trigger'
args: [('after_sub', 'After each registration'), ('before_event', 'Before the event'), ('after_event', 'After the event')]
interval_unit
Selection
default='hours'
required=True
string='Unit'
args: [('now', 'Immediately'), ('hours', 'Hours'), ('days', 'Days'), ('weeks', 'Weeks'), ('months', 'Months')]
notification_type
Selection
default='mail'
required=True
string='Send'
args: [('mail', 'Mail')]
template_model_id
Many2one → ir.model
compute='_compute_template_model_id'
compute_sudo=True
string='Template Model'
args: 'ir.model'
template_ref
Reference
required=True
selection='_selection_template_model'
string='Template'
No public methods.
description
Text
help='A description of the ticket that you want to communicate to your customers.'
translate=True
args: 'Description'
event_type_id
Many2one → event.type
ondelete='cascade'
required=True
string='Event Category'
args: 'event.type'
name
Char
default=<expr>
required=True
string='Name'
translate=True
seats_limited
Boolean
compute='_compute_seats_limited'
readonly=True
store=True
string='Limit Attendees'
seats_max
Integer
help='Define the number of available tickets. If you have too many registrations you will not be able to sell tickets anymore. Set 0 to ignore this rule set as unlimited.'
string='Maximum Attendees'
sequence
Integer
default=10
args: 'Sequence'
No public methods.
No new fields.
Public methods (1)unlink(self)
barcode_nomenclature_id
Many2one → barcode.nomenclature
readonly=False
related='company_id.nomenclature_id'
args: 'barcode.nomenclature'
google_maps_static_api_key
Char
compute='_compute_maps_static_api_key'
config_parameter='google_maps.signed_static_api_key'
readonly=False
store=True
args: 'Google Maps API key'
google_maps_static_api_secret
Char
compute='_compute_maps_static_api_secret'
config_parameter='google_maps.signed_static_api_secret'
readonly=False
store=True
args: 'Google Maps API secret'
module_event_booth
Boolean
module_event_sale
Boolean
module_website_event_exhibitor
Boolean
module_website_event_meet
Boolean
module_website_event_sale
Boolean
module_website_event_track
Boolean
module_website_event_track_live
Boolean
module_website_event_track_quiz
Boolean
use_event_barcode
Boolean
config_parameter='event.use_event_barcode'
help='Enable or Disable Event Barcode functionality.'
string='Use Event Barcode'
use_google_maps_static_api
Boolean
default=_default_use_google_maps_static_api
args: 'Google Maps static API'
create(self, vals_list)
write(self, vals)
event_count
Integer
compute='_compute_event_count'
groups='event.group_event_registration_desk'
args: '# Events'
static_map_url
Char
compute='_compute_static_map_url'
static_map_url_is_valid
Boolean
compute='_compute_static_map_url_is_valid'
action_event_view(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/16.0/event |
| VERSION | |
| VERSION | 1.7 |
| CATEGORY | |
| CATEGORY | Marketing/Events |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Raphael Collet, Odoo Translation Bot, Martin Trigaux, Fabien Pinckaers, Thibault Delavallée, Denis Ledoux, Christophe Simonis, Aaron Bohy, Yannick Tivisse, qsm-odoo, Romain Derie, Christophe Monniez, Julien Castiaux, Aurélien Warnon, Xavier-Do, Romeo Fragomeli, Victor Feyens, Nasreddin Boulif (bon), Tiffany Chang (tic), Nathan Marotte (nama), Rémy Voet (ryv), Ivàn Todorovich, Gorash, Miquel Raïch, ijas ahammed, Florian Charlier, Patrick Hoste, Nicolas Bayet, Fabio Barbero, Renaud Thiry, Thomas Lefebvre (thle), Andro Gvivradze, Louis Wicket (wil), Julien (jula), Mahamadasif Ansari, miad-odoo, amdi-odoo, Pierre-Yves Dufays, Levi Siuzdak (sile), Maruan Aguerdouh (magm), Hansun (hale), Bruno Boi, Antoine (ande), Michael (mcm), Mayurrajsinh Rathod, Ivan Rasputin, Andrzej(pian), stefanorigano (SRI), lase@odoo.com, Jérémy Hennecart (jeh), jobl, umgu-odoo, stra |
| WEBSITE | |
| WEBSITE | https://www.odoo.com/app/events |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:40:50 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - base_setup - base - web - bus - web_tour - portal - web_editor - http_routing - auth_signup - utm |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | Organization and management of Events. ====================================== The event module allows you to efficiently organize events and all related tasks: planning, registration tracking, attendances, etc. Key Features ------------ * Manage your Events and Registrations * Use emails to automatically confirm and send acknowledgments for any event registration |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
event_default_descripton |
Event default description | ir.ui.view | qweb | New |
event_event_report_template_foldable_badge |
event_event_report_template_foldable_badge | ir.ui.view | qweb | New |
event_event_report_template_full_page_ticket |
event_event_report_template_full_page_ticket | ir.ui.view | qweb | New |
event_event_ticket_form_view |
event.event.ticket.view.form | event.event.ticket | form | New |
event_event_ticket_view_form_from_event |
event.event.ticket.view.form.from.event | event.event.ticket | form | New |
event_event_ticket_view_kanban_from_event |
event.event.ticket.view.kanban.from.event | event.event.ticket | kanban | New |
event_event_ticket_view_tree |
event.event.ticket.view.tree | event.event.ticket | xpath | Inherits event_event_ticket_view_tree_from_event |
event_event_ticket_view_tree_from_event |
event.event.ticket.view.tree.from.event | event.event.ticket | tree | New |
event_event_view_form_quick_create |
event.event.form.quick_create | event.event | form | New |
event_registration_report_template_foldable_badge |
event_registration_report_template_foldable_badge | ir.ui.view | qweb | New |
event_registration_report_template_full_page_ticket |
event_registration_report_template_full_page_ticket | ir.ui.view | qweb | New |
event_registration_view_kanban |
event.registration.kanban | event.registration | kanban | New |
event_registration_view_search_event_specific |
event.registration.view.search.event.specific | event.registration | xpath | Inherits view_registration_search |
event_report_full_page_ticket_layout |
event_report_full_page_ticket_layout | ir.ui.view | qweb | New |
event_report_template_foldable_badge |
event_report_template_foldable_badge | ir.ui.view | qweb | New |
event_report_template_formatted_event_address |
event_report_template_formatted_event_address | ir.ui.view | qweb | New |
event_report_template_full_page_ticket |
event_report_template_full_page_ticket | ir.ui.view | qweb | New |
event_stage_view_form |
event.stage.view.form | event.stage | form | New |
event_stage_view_tree |
event.stage.view.tree | event.stage | tree | New |
event_tag_category_view_form |
event.tag.category.view.form | event.tag.category | form | New |
event_tag_category_view_tree |
event.tag.category.view.tree | event.tag.category | tree | New |
event_tag_view_form |
event.tag.view.form | event.tag | form | New |
event_tag_view_tree |
event.tag.view.tree | event.tag | tree | New |
event_type_ticket_view_form |
event.type.ticket.view.form | event.type.ticket | xpath | Inherits event_type_ticket_view_form_from_type |
event_type_ticket_view_form_from_type |
event.type.ticket.view.form.from.type | event.type.ticket | form | New |
event_type_ticket_view_tree |
event.type.ticket.view.tree | event.type.ticket | xpath | Inherits event_type_ticket_view_tree_from_type |
event_type_ticket_view_tree_from_type |
event.type.ticket.view.tree.from.type | event.type.ticket | tree | New |
event_type_view_search |
event.type.search | event.type | search | New |
res_config_settings_view_form |
res.config.settings.view.form.inherit.event | res.config.settings | xpath | Inherits base.res_config_settings_view_form |
res_partner_view_tree |
view.res.partner.form.event.inherited | res.partner | div | Inherits base.view_partner_form |
view_event_calendar |
event.event.calendar | event.event | calendar | New |
view_event_form |
event.event.form | event.event | form | New |
view_event_kanban |
event.event.kanban | event.event | kanban | New |
view_event_mail_form |
event.mail.form | event.mail | form | New |
view_event_mail_tree |
event.mail.tree | event.mail | tree | New |
view_event_registration_calendar |
event.registration.calendar | event.registration | calendar | New |
view_event_registration_form |
event.registration.form | event.registration | form | New |
view_event_registration_graph |
event.registration.graph | event.registration | graph | New |
view_event_registration_pivot |
event.registration.pivot | event.registration | pivot | New |
view_event_registration_tree |
event.registration.tree | event.registration | tree | New |
view_event_search |
event.event.search | event.event | search | New |
view_event_tree |
event.event.tree | event.event | tree | New |
view_event_type_form |
event.type.form | event.type | form | New |
view_event_type_tree |
event.type.tree | event.type | tree | New |
view_registration_search |
event.registration.search | event.registration | search | New |
active
Boolean
default=True
address_id
Many2one → res.partner
default=<expr>
domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]"
string='Venue'
tracking=True
args: 'res.partner'
address_inline
Char
compute='_compute_address_inline'
compute_sudo=True
string='Venue (formatted for one line uses)'
address_search
Many2one → res.partner
compute='_compute_address_search'
search='_search_address_search'
string='Address'
args: 'res.partner'
auto_confirm
Boolean
compute='_compute_auto_confirm'
help='Autoconfirm Registrations. Registrations will automatically be confirmed upon creation.'
readonly=False
store=True
string='Autoconfirmation'
company_id
Many2one → res.company
change_default=True
default=<expr>
required=False
string='Company'
args: 'res.company'
country_id
Many2one → res.country
readonly=False
related='address_id.country_id'
store=True
args: 'res.country', 'Country'
date_begin
Datetime
help='When the event is scheduled to take place (expressed in your local timezone on the form view).'
required=True
string='Start Date'
tracking=True
date_begin_located
Char
compute='_compute_date_begin_tz'
string='Start Date Located'
date_end
Datetime
required=True
string='End Date'
tracking=True
date_end_located
Char
compute='_compute_date_end_tz'
string='End Date Located'
date_tz
Selection
compute='_compute_date_tz'
help='Indicates the timezone in which the event dates/times will be displayed on the website.'
precompute=True
readonly=False
required=True
store=True
string='Display Timezone'
args: _tz_get
description
Html
default=_default_description
sanitize_attributes=False
sanitize_form=False
string='Description'
translate=html_translate
event_mail_ids
One2many → event.mail
compute='_compute_event_mail_ids'
copy=True
readonly=False
store=True
string='Mail Schedule'
args: 'event.mail', 'event_id'
event_registrations_open
Boolean
compute='_compute_event_registrations_open'
compute_sudo=True
help='Registrations are open if:\n- the event is not ended\n- there are seats available on event\n- the tickets are sellable (if ticketing is used)'
args: 'Registration open'
event_registrations_sold_out
Boolean
compute='_compute_event_registrations_sold_out'
compute_sudo=True
help='The event is sold out if no more seats are available on event. If ticketing is used and all tickets are sold out, the event will be sold out.'
args: 'Sold Out'
event_registrations_started
Boolean
compute='_compute_event_registrations_started'
help='registrations have started if the current datetime is after the earliest starting date of tickets.'
args: 'Registrations started'
event_ticket_ids
One2many → event.event.ticket
compute='_compute_event_ticket_ids'
copy=True
readonly=False
store=True
string='Event Ticket'
args: 'event.event.ticket', 'event_id'
event_type_id
Many2one → event.type
ondelete='set null'
string='Template'
args: 'event.type'
is_finished
Boolean
compute='_compute_is_finished'
search='_search_is_finished'
is_one_day
Boolean
compute='_compute_field_is_one_day'
is_ongoing
Boolean
compute='_compute_is_ongoing'
search='_search_is_ongoing'
args: 'Is Ongoing'
kanban_state
Selection
copy=False
default='normal'
args: [('normal', 'In Progress'), ('done', 'Done'), ('blocked', 'Blocked')]
kanban_state_label
Char
compute='_compute_kanban_state_label'
store=True
string='Kanban State Label'
tracking=True
legend_blocked
Char
readonly=True
related='stage_id.legend_blocked'
string='Kanban Blocked Explanation'
legend_done
Char
readonly=True
related='stage_id.legend_done'
string='Kanban Valid Explanation'
legend_normal
Char
readonly=True
related='stage_id.legend_normal'
string='Kanban Ongoing Explanation'
name
Char
required=True
string='Event'
translate=True
note
Html
compute='_compute_note'
readonly=False
store=True
string='Note'
organizer_id
Many2one → res.partner
default=<expr>
domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]"
string='Organizer'
tracking=True
args: 'res.partner'
registration_ids
One2many → event.registration
string='Attendees'
args: 'event.registration', 'event_id'
seats_available
Integer
compute='_compute_seats'
readonly=True
store=False
string='Available Seats'
seats_expected
Integer
compute='_compute_seats'
readonly=True
store=False
string='Number of Expected Attendees'
seats_limited
Boolean
compute='_compute_seats_limited'
precompute=True
readonly=False
required=True
store=True
args: 'Limit Attendees'
seats_max
Integer
compute='_compute_seats_max'
help='For each event you can define a maximum registration of seats(number of attendees), above this numbers the registrations are not accepted.'
readonly=False
store=True
string='Maximum Attendees'
seats_reserved
Integer
compute='_compute_seats'
readonly=True
store=False
string='Number of Registrations'
seats_unconfirmed
Integer
compute='_compute_seats'
readonly=True
store=False
string='Unconfirmed Registrations'
seats_used
Integer
compute='_compute_seats'
readonly=True
store=False
string='Number of Attendees'
stage_id
Many2one → event.stage
copy=False
default=_get_default_stage_id
group_expand='_read_group_stage_ids'
ondelete='restrict'
tracking=True
args: 'event.stage'
start_sale_datetime
Datetime
compute='_compute_start_sale_date'
help='If ticketing is used, contains the earliest starting sale date of tickets.'
args: 'Start sale date'
tag_ids
Many2many → event.tag
compute='_compute_tag_ids'
readonly=False
store=True
string='Tags'
args: 'event.tag'
ticket_instructions
Html
compute='_compute_ticket_instructions'
help='This information will be printed on your tickets.'
readonly=False
store=True
translate=True
args: 'Ticket Instructions'
user_id
Many2one → res.users
default=<expr>
string='Responsible'
tracking=True
args: 'res.users'
action_set_done(self)
copy(self, default=None)
create(self, vals_list)
default_get(self, fields_list)
mail_attendees(self, template_id, force_send=False, filter_func=<expr>)
name_get(self)
write(self, vals)
company_id
Many2one → res.company
related='event_id.company_id'
args: 'res.company'
end_sale_datetime
Datetime
string='Registration End'
event_id
Many2one → event.event
ondelete='cascade'
required=True
string='Event'
args: 'event.event'
event_type_id
Many2one
ondelete='set null'
required=False
is_expired
Boolean
compute='_compute_is_expired'
string='Is Expired'
is_launched
Boolean
compute='_compute_is_launched'
string='Are sales launched'
is_sold_out
Boolean
compute='_compute_is_sold_out'
help='Whether seats are not available for this ticket.'
args: 'Sold Out'
registration_ids
One2many → event.registration
string='Registrations'
args: 'event.registration', 'event_ticket_id'
sale_available
Boolean
compute='_compute_sale_available'
compute_sudo=True
help='Whether it is possible to sell these tickets'
string='Is Available'
seats_available
Integer
compute='_compute_seats'
store=False
string='Available Seats'
seats_reserved
Integer
compute='_compute_seats'
store=False
string='Reserved Seats'
seats_unconfirmed
Integer
compute='_compute_seats'
store=False
string='Unconfirmed Seats'
seats_used
Integer
compute='_compute_seats'
store=False
string='Used Seats'
start_sale_datetime
Datetime
string='Registration Start'
default_get(self, fields)
name_get(self)
event_id
Many2one → event.event
ondelete='cascade'
required=True
string='Event'
args: 'event.event'
interval_nbr
Integer
default=1
args: 'Interval'
interval_type
Selection
default='before_event'
required=True
string='Trigger '
args: [('after_sub', 'After each registration'), ('before_event', 'Before the event'), ('after_event', 'After the event')]
interval_unit
Selection
default='hours'
required=True
string='Unit'
args: [('now', 'Immediately'), ('hours', 'Hours'), ('days', 'Days'), ('weeks', 'Weeks'), ('months', 'Months')]
mail_count_done
Integer
copy=False
readonly=True
args: '# Sent'
mail_done
Boolean
copy=False
readonly=True
args: 'Sent'
mail_registration_ids
One2many → event.mail.registration
help='Communication related to event registrations'
args: 'event.mail.registration', 'scheduler_id'
mail_state
Selection
compute='_compute_mail_state'
string='Global communication Status'
args: [('running', 'Running'), ('scheduled', 'Scheduled'), ('sent', 'Sent')]
notification_type
Selection
default='mail'
required=True
string='Send'
args: [('mail', 'Mail')]
scheduled_date
Datetime
compute='_compute_scheduled_date'
store=True
args: 'Schedule Date'
sequence
Integer
template_model_id
Many2one → ir.model
compute='_compute_template_model_id'
compute_sudo=True
string='Template Model'
args: 'ir.model'
template_ref
Reference
required=True
selection='_selection_template_model'
string='Template'
execute(self)
run(self, autocommit=False)
schedule_communications(self, autocommit=False)
set_template_ref_model(self)
mail_sent
Boolean
registration_id
Many2one → event.registration
ondelete='cascade'
required=True
args: 'event.registration', 'Attendee'
scheduled_date
Datetime
compute='_compute_scheduled_date'
store=True
args: 'Scheduled Time'
scheduler_id
Many2one → event.mail
ondelete='cascade'
required=True
args: 'event.mail', 'Mail Scheduler'
execute(self)
active
Boolean
default=True
company_id
Many2one → res.company
readonly=True
related='event_id.company_id'
states={'draft': [('readonly', False)]}
store=True
string='Company'
args: 'res.company'
date_closed
Datetime
compute='_compute_date_closed'
readonly=False
store=True
string='Attended Date'
email
Char
compute='_compute_email'
readonly=False
store=True
string='Email'
tracking=11
event_begin_date
Datetime
readonly=True
related='event_id.date_begin'
string='Event Start Date'
event_end_date
Datetime
readonly=True
related='event_id.date_end'
string='Event End Date'
event_id
Many2one → event.event
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Event'
args: 'event.event'
event_organizer_id
Many2one
readonly=True
related='event_id.organizer_id'
string='Event Organizer'
event_ticket_id
Many2one → event.event.ticket
ondelete='restrict'
readonly=True
states={'draft': [('readonly', False)]}
string='Event Ticket'
args: 'event.event.ticket'
event_user_id
Many2one
readonly=True
related='event_id.user_id'
string='Event Responsible'
mobile
Char
compute='_compute_mobile'
readonly=False
store=True
string='Mobile'
tracking=13
name
Char
compute='_compute_name'
index='trigram'
readonly=False
store=True
string='Attendee Name'
tracking=10
partner_id
Many2one → res.partner
string='Booked by'
tracking=1
args: 'res.partner'
phone
Char
compute='_compute_phone'
readonly=False
store=True
string='Phone'
tracking=12
state
Selection
copy=False
default='draft'
readonly=True
string='Status'
tracking=True
args: [('draft', 'Unconfirmed'), ('cancel', 'Cancelled'), ('open', 'Confirmed'), ('done', 'Attended')]
utm_campaign_id
Many2one → utm.campaign
index=True
ondelete='set null'
args: 'utm.campaign', 'Campaign'
utm_medium_id
Many2one → utm.medium
index=True
ondelete='set null'
args: 'utm.medium', 'Medium'
utm_source_id
Many2one → utm.source
index=True
ondelete='set null'
args: 'utm.source', 'Source'
action_cancel(self)
action_confirm(self)
action_send_badge_email(self)
action_set_done(self)
action_set_draft(self)
create(self, vals_list)
default_get(self, fields)
get_date_range_str(self, lang_code=False)
name_get(self)
toggle_active(self)
write(self, vals)
description
Text
string='Stage description'
translate=True
fold
Boolean
default=False
string='Folded in Kanban'
legend_blocked
Char
default=<expr>
help='Override the default value displayed for the blocked state for kanban selection.'
prefetch='legend'
required=True
translate=True
args: 'Red Kanban Label'
legend_done
Char
default=<expr>
help='Override the default value displayed for the done state for kanban selection.'
prefetch='legend'
required=True
translate=True
args: 'Green Kanban Label'
legend_normal
Char
default=<expr>
help='Override the default value displayed for the normal state for kanban selection.'
prefetch='legend'
required=True
translate=True
args: 'Grey Kanban Label'
name
Char
required=True
string='Stage Name'
translate=True
pipe_end
Boolean
default=False
help='Events will automatically be moved into this stage when they are finished. The event moved into this stage will automatically be set as green.'
string='End Stage'
sequence
Integer
default=1
args: 'Sequence'
No public methods.
category_id
Many2one → event.tag.category
ondelete='cascade'
required=True
string='Category'
args: 'event.tag.category'
category_sequence
Integer
related='category_id.sequence'
store=True
string='Category Sequence'
color
Integer
default=<expr>
help='Tag color. No color means no display in kanban or front-end, to distinguish internal tags from public categorization tags.'
string='Color Index'
name
Char
required=True
translate=True
args: 'Name'
sequence
Integer
default=0
args: 'Sequence'
No public methods.
name
Char
required=True
translate=True
args: 'Name'
sequence
Integer
default=_default_sequence
args: 'Sequence'
tag_ids
One2many → event.tag
string='Tags'
args: 'event.tag', 'category_id'
No public methods.
auto_confirm
Boolean
default=True
help='Events and registrations will automatically be confirmed upon creation, easing the flow for simple events.'
args: 'Automatically Confirm Registrations'
default_timezone
Selection
default=<expr>
string='Timezone'
args: _tz_get
event_type_mail_ids
One2many → event.type.mail
default=_default_event_mail_type_ids
string='Mail Schedule'
args: 'event.type.mail', 'event_type_id'
event_type_ticket_ids
One2many → event.type.ticket
string='Tickets'
args: 'event.type.ticket', 'event_type_id'
has_seats_limitation
Boolean
name
Char
required=True
translate=True
args: 'Event Template'
note
Html
string='Note'
seats_max
Integer
compute='_compute_seats_max'
help='It will select this default maximum value when you choose this event'
readonly=False
store=True
args: 'Maximum Registrations'
sequence
Integer
tag_ids
Many2many → event.tag
string='Tags'
args: 'event.tag'
ticket_instructions
Html
help='This information will be printed on your tickets.'
translate=True
args: 'Ticket Instructions'
No public methods.
event_type_id
Many2one → event.type
ondelete='cascade'
required=True
string='Event Type'
args: 'event.type'
interval_nbr
Integer
default=1
args: 'Interval'
interval_type
Selection
default='before_event'
required=True
string='Trigger'
args: [('after_sub', 'After each registration'), ('before_event', 'Before the event'), ('after_event', 'After the event')]
interval_unit
Selection
default='hours'
required=True
string='Unit'
args: [('now', 'Immediately'), ('hours', 'Hours'), ('days', 'Days'), ('weeks', 'Weeks'), ('months', 'Months')]
notification_type
Selection
default='mail'
required=True
string='Send'
args: [('mail', 'Mail')]
template_model_id
Many2one → ir.model
compute='_compute_template_model_id'
compute_sudo=True
string='Template Model'
args: 'ir.model'
template_ref
Reference
required=True
selection='_selection_template_model'
string='Template'
No public methods.
description
Text
help='A description of the ticket that you want to communicate to your customers.'
translate=True
args: 'Description'
event_type_id
Many2one → event.type
ondelete='cascade'
required=True
string='Event Category'
args: 'event.type'
name
Char
default=<expr>
required=True
string='Name'
translate=True
seats_limited
Boolean
compute='_compute_seats_limited'
readonly=True
store=True
string='Limit Attendees'
seats_max
Integer
help='Define the number of available tickets. If you have too many registrations you will not be able to sell tickets anymore. Set 0 to ignore this rule set as unlimited.'
string='Maximum Attendees'
No public methods.
No new fields.
Public methods (1)unlink(self)
module_event_barcode
Boolean
module_event_booth
Boolean
module_event_sale
Boolean
module_website_event_exhibitor
Boolean
module_website_event_meet
Boolean
module_website_event_questions
Boolean
module_website_event_sale
Boolean
module_website_event_track
Boolean
module_website_event_track_live
Boolean
module_website_event_track_quiz
Boolean
No public methods.
event_count
Integer
compute='_compute_event_count'
groups='event.group_event_registration_desk'
args: '# Events'
action_event_view(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/15.0/event |
| VERSION | |
| VERSION | 1.6 |
| CATEGORY | |
| CATEGORY | Marketing/Events |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Raphael Collet, Odoo Translation Bot, Martin Trigaux, Thibault Delavallée, Christophe Simonis, Xavier Morel, Mohammed Shekha, Nicolas Lempereur, Aaron Bohy, Yannick Tivisse, Dharmraj Jhala, Romain Derie, Adrien Dieudonne, Christophe Monniez, Aurélien Warnon, Xavier-Do, Paul Morelle, Nasreddin (bon), Julien Mougenot, std-odoo, Nathan Marotte (nama), IEL, Ivàn Todorovich, Mathieu Duckerts-Antoine, nounoubensebia, Patrick Hoste, Nicolas Bayet, Michael Mattiello (mcm), dht-odoo, Fabio Barbero, Renaud Thiry, Thomas Lefebvre (thle), David, Julien (jula), miad-odoo, Munaf Khan, Saurabh Choraria, Hansun (hale), Antoine (ande), Mayurrajsinh Rathod, Leonardo Pavan Rocha, Andrzej(pian), Damien (abd), MAHAMADASIF ANSARI, jobl |
| WEBSITE | |
| WEBSITE | https://www.odoo.com/app/events |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:25:28 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - base_setup - base - web - bus - web_tour - portal - web_editor - http_routing - auth_signup - utm |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | Organization and management of Events. ====================================== The event module allows you to efficiently organize events and all related tasks: planning, registration tracking, attendances, etc. Key Features ------------ * Manage your Events and Registrations * Use emails to automatically confirm and send acknowledgments for any event registration |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
event_default_descripton |
Event default description | ir.ui.view | qweb | New |
event_event_report_template_foldable_badge |
event_event_report_template_foldable_badge | ir.ui.view | qweb | New |
event_event_report_template_full_page_ticket |
event_event_report_template_full_page_ticket | ir.ui.view | qweb | New |
event_event_ticket_form_view |
event.event.ticket.view.form | event.event.ticket | form | New |
event_event_ticket_view_form_from_event |
event.event.ticket.view.form.from.event | event.event.ticket | form | New |
event_event_ticket_view_kanban_from_event |
event.event.ticket.view.kanban.from.event | event.event.ticket | kanban | New |
event_event_ticket_view_tree |
event.event.ticket.view.tree | event.event.ticket | xpath | Inherits event_event_ticket_view_tree_from_event |
event_event_ticket_view_tree_from_event |
event.event.ticket.view.tree.from.event | event.event.ticket | tree | New |
event_event_view_form_quick_create |
event.event.form.quick_create | event.event | form | New |
event_event_view_graph |
event.event.view.graph | event.event | graph | New |
event_event_view_pivot |
event.event.view.pivot | event.event | pivot | New |
event_registration_report_template_foldable_badge |
event_registration_report_template_foldable_badge | ir.ui.view | qweb | New |
event_registration_report_template_full_page_ticket |
event_registration_report_template_full_page_ticket | ir.ui.view | qweb | New |
event_registration_view_kanban |
event.registration.kanban | event.registration | kanban | New |
event_report_full_page_ticket_layout |
event_report_full_page_ticket_layout | ir.ui.view | qweb | New |
event_report_template_foldable_badge |
event_report_template_foldable_badge | ir.ui.view | qweb | New |
event_report_template_formatted_event_address |
event_report_template_formatted_event_address | ir.ui.view | qweb | New |
event_report_template_full_page_ticket |
event_report_template_full_page_ticket | ir.ui.view | qweb | New |
event_stage_view_form |
event.stage.view.form | event.stage | form | New |
event_stage_view_tree |
event.stage.view.tree | event.stage | tree | New |
event_tag_category_view_form |
event.tag.category.view.form | event.tag.category | form | New |
event_tag_category_view_tree |
event.tag.category.view.tree | event.tag.category | tree | New |
event_tag_view_form |
event.tag.view.form | event.tag | form | New |
event_tag_view_tree |
event.tag.view.tree | event.tag | tree | New |
event_type_ticket_view_form |
event.type.ticket.view.form | event.type.ticket | xpath | Inherits event_type_ticket_view_form_from_type |
event_type_ticket_view_form_from_type |
event.type.ticket.view.form.from.type | event.type.ticket | form | New |
event_type_ticket_view_tree |
event.type.ticket.view.tree | event.type.ticket | xpath | Inherits event_type_ticket_view_tree_from_type |
event_type_ticket_view_tree_from_type |
event.type.ticket.view.tree.from.type | event.type.ticket | tree | New |
event_type_view_search |
event.type.search | event.type | search | New |
res_config_settings_view_form |
res.config.settings.view.form.inherit.event | res.config.settings | xpath | Inherits base.res_config_settings_view_form |
res_partner_view_tree |
view.res.partner.form.event.inherited | res.partner | div | Inherits base.view_partner_form |
view_event_calendar |
event.event.calendar | event.event | calendar | New |
view_event_form |
event.event.form | event.event | form | New |
view_event_kanban |
event.event.kanban | event.event | kanban | New |
view_event_mail_form |
event.mail.form | event.mail | form | New |
view_event_mail_tree |
event.mail.tree | event.mail | tree | New |
view_event_registration_calendar |
event.registration.calendar | event.registration | calendar | New |
view_event_registration_form |
event.registration.form | event.registration | form | New |
view_event_registration_graph |
event.registration.graph | event.registration | graph | New |
view_event_registration_pivot |
event.registration.pivot | event.registration | pivot | New |
view_event_registration_tree |
event.registration.tree | event.registration | tree | New |
view_event_search |
event.event.search | event.event | search | New |
view_event_tree |
event.event.tree | event.event | tree | New |
view_event_type_form |
event.type.form | event.type | form | New |
view_event_type_tree |
event.type.tree | event.type | tree | New |
view_registration_search |
event.registration.search | event.registration | search | New |
active
Boolean
default=True
address_id
Many2one → res.partner
default=<expr>
domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]"
string='Venue'
tracking=True
args: 'res.partner'
auto_confirm
Boolean
compute='_compute_auto_confirm'
help='Autoconfirm Registrations. Registrations will automatically be confirmed upon creation.'
readonly=False
store=True
string='Autoconfirmation'
company_id
Many2one → res.company
change_default=True
default=<expr>
required=False
string='Company'
args: 'res.company'
country_id
Many2one → res.country
readonly=False
related='address_id.country_id'
store=True
args: 'res.country', 'Country'
date_begin
Datetime
required=True
string='Start Date'
tracking=True
date_begin_located
Char
compute='_compute_date_begin_tz'
string='Start Date Located'
date_end
Datetime
required=True
string='End Date'
tracking=True
date_end_located
Char
compute='_compute_date_end_tz'
string='End Date Located'
date_tz
Selection
compute='_compute_date_tz'
readonly=False
required=True
store=True
string='Timezone'
args: _tz_get
description
Html
default=_default_description
sanitize_attributes=False
sanitize_form=False
string='Description'
translate=html_translate
event_mail_ids
One2many → event.mail
compute='_compute_event_mail_ids'
copy=True
readonly=False
store=True
string='Mail Schedule'
args: 'event.mail', 'event_id'
event_registrations_open
Boolean
compute='_compute_event_registrations_open'
compute_sudo=True
help='Registrations are open if:\n- the event is not ended\n- there are seats available on event\n- the tickets are sellable (if ticketing is used)'
args: 'Registration open'
event_registrations_sold_out
Boolean
compute='_compute_event_registrations_sold_out'
compute_sudo=True
help='The event is sold out if no more seats are available on event. If ticketing is used and all tickets are sold out, the event will be sold out.'
args: 'Sold Out'
event_registrations_started
Boolean
compute='_compute_event_registrations_started'
help='registrations have started if the current datetime is after the earliest starting date of tickets.'
args: 'Registrations started'
event_ticket_ids
One2many → event.event.ticket
compute='_compute_event_ticket_ids'
copy=True
readonly=False
store=True
string='Event Ticket'
args: 'event.event.ticket', 'event_id'
event_type_id
Many2one → event.type
ondelete='set null'
string='Template'
args: 'event.type'
is_finished
Boolean
compute='_compute_is_finished'
search='_search_is_finished'
is_one_day
Boolean
compute='_compute_field_is_one_day'
is_ongoing
Boolean
compute='_compute_is_ongoing'
search='_search_is_ongoing'
args: 'Is Ongoing'
kanban_state
Selection
copy=False
default='normal'
args: [('normal', 'In Progress'), ('done', 'Done'), ('blocked', 'Blocked')]
kanban_state_label
Char
compute='_compute_kanban_state_label'
store=True
string='Kanban State Label'
tracking=True
legend_blocked
Char
readonly=True
related='stage_id.legend_blocked'
string='Kanban Blocked Explanation'
legend_done
Char
readonly=True
related='stage_id.legend_done'
string='Kanban Valid Explanation'
legend_normal
Char
readonly=True
related='stage_id.legend_normal'
string='Kanban Ongoing Explanation'
name
Char
required=True
string='Event'
translate=True
note
Html
compute='_compute_note'
readonly=False
store=True
string='Note'
organizer_id
Many2one → res.partner
default=<expr>
domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]"
string='Organizer'
tracking=True
args: 'res.partner'
registration_ids
One2many → event.registration
string='Attendees'
args: 'event.registration', 'event_id'
seats_available
Integer
compute='_compute_seats'
readonly=True
store=True
string='Available Seats'
seats_expected
Integer
compute='_compute_seats_expected'
compute_sudo=True
readonly=True
string='Number of Expected Attendees'
seats_limited
Boolean
compute='_compute_seats_limited'
readonly=False
required=True
store=True
args: 'Maximum Attendees'
seats_max
Integer
compute='_compute_seats_max'
help='For each event you can define a maximum registration of seats(number of attendees), above this numbers the registrations are not accepted.'
readonly=False
store=True
string='Maximum Attendees Number'
seats_reserved
Integer
compute='_compute_seats'
readonly=True
store=True
string='Reserved Seats'
seats_unconfirmed
Integer
compute='_compute_seats'
readonly=True
store=True
string='Unconfirmed Seat Reservations'
seats_used
Integer
compute='_compute_seats'
readonly=True
store=True
string='Number of Participants'
stage_id
Many2one → event.stage
copy=False
default=_get_default_stage_id
group_expand='_read_group_stage_ids'
ondelete='restrict'
tracking=True
args: 'event.stage'
start_sale_datetime
Datetime
compute='_compute_start_sale_date'
help='If ticketing is used, contains the earliest starting sale date of tickets.'
args: 'Start sale date'
tag_ids
Many2many → event.tag
compute='_compute_tag_ids'
readonly=False
store=True
string='Tags'
args: 'event.tag'
ticket_instructions
Html
compute='_compute_ticket_instructions'
help='This information will be printed on your tickets.'
readonly=False
store=True
translate=True
args: 'Ticket Instructions'
user_id
Many2one → res.users
default=<expr>
string='Responsible'
tracking=True
args: 'res.users'
action_set_done(self)
copy(self, default=None)
create(self, vals_list)
mail_attendees(self, template_id, force_send=False, filter_func=<expr>)
write(self, vals)
company_id
Many2one → res.company
related='event_id.company_id'
args: 'res.company'
end_sale_datetime
Datetime
string='Registration End'
event_id
Many2one → event.event
ondelete='cascade'
required=True
string='Event'
args: 'event.event'
event_type_id
Many2one
ondelete='set null'
required=False
is_expired
Boolean
compute='_compute_is_expired'
string='Is Expired'
registration_ids
One2many → event.registration
string='Registrations'
args: 'event.registration', 'event_ticket_id'
sale_available
Boolean
compute='_compute_sale_available'
compute_sudo=True
string='Is Available'
seats_available
Integer
compute='_compute_seats'
store=True
string='Available Seats'
seats_reserved
Integer
compute='_compute_seats'
store=True
string='Reserved Seats'
seats_unconfirmed
Integer
compute='_compute_seats'
store=True
string='Unconfirmed Seats'
seats_used
Integer
compute='_compute_seats'
store=True
string='Used Seats'
start_sale_datetime
Datetime
string='Registration Start'
default_get(self, fields)
is_launched(self)
event_id
Many2one → event.event
ondelete='cascade'
required=True
string='Event'
args: 'event.event'
interval_nbr
Integer
default=1
args: 'Interval'
interval_type
Selection
default='before_event'
required=True
string='Trigger '
args: [('after_sub', 'After each registration'), ('before_event', 'Before the event'), ('after_event', 'After the event')]
interval_unit
Selection
default='hours'
required=True
string='Unit'
args: [('now', 'Immediately'), ('hours', 'Hours'), ('days', 'Days'), ('weeks', 'Weeks'), ('months', 'Months')]
mail_count_done
Integer
copy=False
readonly=True
args: '# Sent'
mail_done
Boolean
copy=False
readonly=True
args: 'Sent'
mail_registration_ids
One2many → event.mail.registration
help='Communication related to event registrations'
args: 'event.mail.registration', 'scheduler_id'
mail_state
Selection
compute='_compute_mail_state'
string='Global communication Status'
args: [('running', 'Running'), ('scheduled', 'Scheduled'), ('sent', 'Sent')]
notification_type
Selection
default='mail'
required=True
string='Send'
args: [('mail', 'Mail')]
scheduled_date
Datetime
compute='_compute_scheduled_date'
store=True
args: 'Schedule Date'
sequence
Integer
template_model_id
Many2one → ir.model
compute='_compute_template_model_id'
compute_sudo=True
string='Template Model'
args: 'ir.model'
template_ref
Reference
required=True
selection='_selection_template_model'
string='Template'
execute(self)
run(self, autocommit=False)
schedule_communications(self, autocommit=False)
set_template_ref_model(self)
mail_sent
Boolean
registration_id
Many2one → event.registration
ondelete='cascade'
required=True
args: 'event.registration', 'Attendee'
scheduled_date
Datetime
compute='_compute_scheduled_date'
store=True
args: 'Scheduled Time'
scheduler_id
Many2one → event.mail
ondelete='cascade'
required=True
args: 'event.mail', 'Mail Scheduler'
execute(self)
active
Boolean
default=True
company_id
Many2one → res.company
readonly=True
related='event_id.company_id'
states={'draft': [('readonly', False)]}
store=True
string='Company'
args: 'res.company'
date_closed
Datetime
compute='_compute_date_closed'
readonly=False
store=True
string='Attended Date'
date_open
Datetime
default=<expr>
readonly=True
string='Registration Date'
email
Char
compute='_compute_email'
readonly=False
store=True
string='Email'
tracking=11
event_begin_date
Datetime
readonly=True
related='event_id.date_begin'
string='Event Start Date'
event_end_date
Datetime
readonly=True
related='event_id.date_end'
string='Event End Date'
event_id
Many2one → event.event
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Event'
args: 'event.event'
event_ticket_id
Many2one → event.event.ticket
ondelete='restrict'
readonly=True
states={'draft': [('readonly', False)]}
string='Event Ticket'
args: 'event.event.ticket'
mobile
Char
compute='_compute_mobile'
readonly=False
store=True
string='Mobile'
tracking=13
name
Char
compute='_compute_name'
index=True
readonly=False
store=True
string='Attendee Name'
tracking=10
partner_id
Many2one → res.partner
states={'done': [('readonly', True)]}
string='Booked by'
args: 'res.partner'
phone
Char
compute='_compute_phone'
readonly=False
store=True
string='Phone'
tracking=12
state
Selection
copy=False
default='draft'
readonly=True
string='Status'
tracking=True
args: [('draft', 'Unconfirmed'), ('cancel', 'Cancelled'), ('open', 'Confirmed'), ('done', 'Attended')]
utm_campaign_id
Many2one → utm.campaign
index=True
ondelete='set null'
args: 'utm.campaign', 'Campaign'
utm_medium_id
Many2one → utm.medium
index=True
ondelete='set null'
args: 'utm.medium', 'Medium'
utm_source_id
Many2one → utm.source
index=True
ondelete='set null'
args: 'utm.source', 'Source'
action_cancel(self)
action_confirm(self)
action_send_badge_email(self)
action_set_done(self)
action_set_draft(self)
create(self, vals_list)
default_get(self, fields)
get_date_range_str(self)
name_get(self)
write(self, vals)
description
Text
string='Stage description'
translate=True
fold
Boolean
default=False
string='Folded in Kanban'
legend_blocked
Char
default=<expr>
help='Override the default value displayed for the blocked state for kanban selection.'
required=True
translate=True
args: 'Red Kanban Label'
legend_done
Char
default=<expr>
help='Override the default value displayed for the done state for kanban selection.'
required=True
translate=True
args: 'Green Kanban Label'
legend_normal
Char
default=<expr>
help='Override the default value displayed for the normal state for kanban selection.'
required=True
translate=True
args: 'Grey Kanban Label'
name
Char
required=True
string='Stage Name'
translate=True
pipe_end
Boolean
default=False
help='Events will automatically be moved into this stage when they are finished. The event moved into this stage will automatically be set as green.'
string='End Stage'
sequence
Integer
default=1
args: 'Sequence'
No public methods.
category_id
Many2one → event.tag.category
ondelete='cascade'
required=True
string='Category'
args: 'event.tag.category'
color
Integer
default=<expr>
help='Tag color. No color means no display in kanban or front-end, to distinguish internal tags from public categorization tags.'
string='Color Index'
name
Char
required=True
translate=True
args: 'Name'
sequence
Integer
default=0
args: 'Sequence'
No public methods.
name
Char
required=True
translate=True
args: 'Name'
sequence
Integer
default=0
args: 'Sequence'
tag_ids
One2many → event.tag
string='Tags'
args: 'event.tag', 'category_id'
No public methods.
auto_confirm
Boolean
default=True
help='Events and registrations will automatically be confirmed upon creation, easing the flow for simple events.'
args: 'Automatically Confirm Registrations'
default_timezone
Selection
default=<expr>
string='Timezone'
args: _tz_get
event_type_mail_ids
One2many → event.type.mail
default=_default_event_mail_type_ids
string='Mail Schedule'
args: 'event.type.mail', 'event_type_id'
event_type_ticket_ids
One2many → event.type.ticket
string='Tickets'
args: 'event.type.ticket', 'event_type_id'
has_seats_limitation
Boolean
name
Char
required=True
translate=True
args: 'Event Template'
note
Html
string='Note'
seats_max
Integer
compute='_compute_default_registration'
help='It will select this default maximum value when you choose this event'
readonly=False
store=True
args: 'Maximum Registrations'
sequence
Integer
tag_ids
Many2many → event.tag
string='Tags'
args: 'event.tag'
ticket_instructions
Html
help='This information will be printed on your tickets.'
translate=True
args: 'Ticket Instructions'
No public methods.
event_type_id
Many2one → event.type
ondelete='cascade'
required=True
string='Event Type'
args: 'event.type'
interval_nbr
Integer
default=1
args: 'Interval'
interval_type
Selection
default='before_event'
required=True
string='Trigger'
args: [('after_sub', 'After each registration'), ('before_event', 'Before the event'), ('after_event', 'After the event')]
interval_unit
Selection
default='hours'
required=True
string='Unit'
args: [('now', 'Immediately'), ('hours', 'Hours'), ('days', 'Days'), ('weeks', 'Weeks'), ('months', 'Months')]
notification_type
Selection
default='mail'
required=True
string='Send'
args: [('mail', 'Mail')]
template_model_id
Many2one → ir.model
compute='_compute_template_model_id'
compute_sudo=True
string='Template Model'
args: 'ir.model'
template_ref
Reference
required=True
selection='_selection_template_model'
string='Template'
No public methods.
description
Text
help='A description of the ticket that you want to communicate to your customers.'
translate=True
args: 'Description'
event_type_id
Many2one → event.type
ondelete='cascade'
required=True
string='Event Category'
args: 'event.type'
name
Char
default=<expr>
required=True
string='Name'
translate=True
seats_limited
Boolean
compute='_compute_seats_limited'
readonly=True
store=True
string='Seats Limit'
seats_max
Integer
help='Define the number of available tickets. If you have too many registrations you will not be able to sell tickets anymore. Set 0 to ignore this rule set as unlimited.'
string='Maximum Seats'
No public methods.
No new fields.
Public methods (1)unlink(self)
module_event_barcode
Boolean
module_event_booth
Boolean
module_event_sale
Boolean
module_website_event_exhibitor
Boolean
module_website_event_meet
Boolean
module_website_event_questions
Boolean
module_website_event_sale
Boolean
module_website_event_track
Boolean
module_website_event_track_live
Boolean
module_website_event_track_quiz
Boolean
No public methods.
event_count
Integer
compute='_compute_event_count'
groups='event.group_event_registration_desk'
help='Number of events the partner has participated.'
args: '# Events'
action_event_view(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/14.0/event |
| VERSION | |
| VERSION | 1.3 |
| CATEGORY | |
| CATEGORY | Marketing/Events |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Raphael Collet, Odoo Translation Bot, Martin Trigaux, Olivier Dony, Thibault Delavallée, Christophe Simonis, Xavier Morel, Mohammed Shekha, Nicolas Martinelli, Nicolas Lempereur, Aaron Bohy, Barad Mahendra, Yannick Tivisse, qsm-odoo, Romain Derie, Aurélien Warnon, Xavier-Do, Victor Feyens, Paul Morelle, Sébastien Theys, Nasreddin (bon), fw-bot, Debauche Stéphane, std-odoo, Nathan Marotte (nama), IEL, fja-odoo, Mathieu Duckerts-Antoine, Kevin Baptiste, qmo-odoo, Patrick Hoste, Fabio Barbero, Louis Wicket (wil), miad-odoo, Krupal Oza, Munaf Khan, Mayurrajsinh Rathod |
| WEBSITE | |
| WEBSITE | https://www.odoo.com/page/events |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:14:29 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - base_setup - base - web - bus - web_tour - portal - web_editor - http_routing - auth_signup - utm |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | Organization and management of Events. ====================================== The event module allows you to efficiently organize events and all related tasks: planning, registration tracking, attendances, etc. Key Features ------------ * Manage your Events and Registrations * Use emails to automatically confirm and send acknowledgments for any event registration |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
assets_backend |
event assets | ir.ui.view | qweb | Inherits web.assets_backend |
assets_common |
Event Assets Common | ir.ui.view | qweb | Inherits web.assets_common |
event_default_descripton |
Event default description | ir.ui.view | qweb | New |
event_event_report_template_badge |
event_event_report_template_badge | ir.ui.view | qweb | New |
event_event_ticket_form_view |
event.event.ticket.view.form | event.event.ticket | form | New |
event_event_ticket_view_form_from_event |
event.event.ticket.view.form.from.event | event.event.ticket | form | New |
event_event_ticket_view_kanban_from_event |
event.event.ticket.view.kanban.from.event | event.event.ticket | kanban | New |
event_event_ticket_view_tree |
event.event.ticket.view.tree | event.event.ticket | xpath | Inherits event_event_ticket_view_tree_from_event |
event_event_ticket_view_tree_from_event |
event.event.ticket.view.tree.from.event | event.event.ticket | tree | New |
event_event_view_form_quick_create |
event.event.form.quick_create | event.event | form | New |
event_event_view_graph |
event.event.view.graph | event.event | graph | New |
event_event_view_pivot |
event.event.view.pivot | event.event | pivot | New |
event_registration_report_template_badge |
event_registration_report_template_badge | ir.ui.view | qweb | New |
event_registration_view_kanban |
event.registration.kanban | event.registration | kanban | New |
event_stage_view_form |
event.stage.view.form | event.stage | form | New |
event_stage_view_tree |
event.stage.view.tree | event.stage | tree | New |
event_tag_category_view_form |
event.tag.category.view.form | event.tag.category | form | New |
event_tag_category_view_tree |
event.tag.category.view.tree | event.tag.category | tree | New |
event_tag_view_form |
event.tag.view.form | event.tag | form | New |
event_tag_view_tree |
event.tag.view.tree | event.tag | tree | New |
event_type_ticket_view_form |
event.type.ticket.view.form | event.type.ticket | xpath | Inherits event_type_ticket_view_form_from_type |
event_type_ticket_view_form_from_type |
event.type.ticket.view.form.from.type | event.type.ticket | form | New |
event_type_ticket_view_tree |
event.type.ticket.view.tree | event.type.ticket | xpath | Inherits event_type_ticket_view_tree_from_type |
event_type_ticket_view_tree_from_type |
event.type.ticket.view.tree.from.type | event.type.ticket | tree | New |
event_type_view_search |
event.type.search | event.type | search | New |
res_config_settings_view_form |
res.config.settings.view.form.inherit.event | res.config.settings | xpath | Inherits base.res_config_settings_view_form |
res_partner_view_tree |
view.res.partner.form.event.inherited | res.partner | div | Inherits base.view_partner_form |
view_event_calendar |
event.event.calendar | event.event | calendar | New |
view_event_form |
event.event.form | event.event | form | New |
view_event_kanban |
event.event.kanban | event.event | kanban | New |
view_event_mail_form |
event.mail.form | event.mail | form | New |
view_event_mail_tree |
event.mail.tree | event.mail | tree | New |
view_event_registration_calendar |
event.registration.calendar | event.registration | calendar | New |
view_event_registration_form |
event.registration.form | event.registration | form | New |
view_event_registration_graph |
event.registration.graph | event.registration | graph | New |
view_event_registration_pivot |
event.registration.pivot | event.registration | pivot | New |
view_event_registration_tree |
event.registration.tree | event.registration | tree | New |
view_event_search |
event.event.search | event.event | search | New |
view_event_tree |
event.event.tree | event.event | tree | New |
view_event_type_form |
event.type.form | event.type | form | New |
view_event_type_tree |
event.type.tree | event.type | tree | New |
view_registration_search |
event.registration.search | event.registration | search | New |
active
Boolean
default=True
address_id
Many2one → res.partner
default=<expr>
domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]"
string='Venue'
tracking=True
args: 'res.partner'
auto_confirm
Boolean
compute='_compute_auto_confirm'
help='Autoconfirm Registrations. Registrations will automatically be confirmed upon creation.'
readonly=False
store=True
string='Autoconfirmation'
badge_back
Html
string='Badge Back'
badge_front
Html
string='Badge Front'
badge_innerleft
Html
string='Badge Inner Left'
badge_innerright
Html
string='Badge Inner Right'
company_id
Many2one → res.company
change_default=True
default=<expr>
required=False
string='Company'
args: 'res.company'
country_id
Many2one → res.country
readonly=False
related='address_id.country_id'
store=True
args: 'res.country', 'Country'
date_begin
Datetime
required=True
string='Start Date'
tracking=True
date_begin_located
Char
compute='_compute_date_begin_tz'
string='Start Date Located'
date_end
Datetime
required=True
string='End Date'
tracking=True
date_end_located
Char
compute='_compute_date_end_tz'
string='End Date Located'
date_tz
Selection
compute='_compute_date_tz'
readonly=False
required=True
store=True
string='Timezone'
args: _tz_get
description
Html
default=_default_description
sanitize_attributes=False
sanitize_form=False
string='Description'
translate=html_translate
event_logo
Html
string='Event Logo'
event_mail_ids
One2many → event.mail
compute='_compute_event_mail_ids'
copy=True
readonly=False
store=True
string='Mail Schedule'
args: 'event.mail', 'event_id'
event_registrations_open
Boolean
compute='_compute_event_registrations_open'
compute_sudo=True
help='Registrations are open if:\n- the event is not ended\n- there are seats available on event\n- the tickets are sellable (if ticketing is used)'
args: 'Registration open'
event_registrations_sold_out
Boolean
compute='_compute_event_registrations_sold_out'
compute_sudo=True
help='The event is sold out if no more seats are available on event. If ticketing is used and all tickets are sold out, the event will be sold out.'
args: 'Sold Out'
event_ticket_ids
One2many → event.event.ticket
compute='_compute_event_ticket_ids'
copy=True
readonly=False
store=True
string='Event Ticket'
args: 'event.event.ticket', 'event_id'
event_type_id
Many2one → event.type
ondelete='set null'
string='Template'
args: 'event.type'
is_one_day
Boolean
compute='_compute_field_is_one_day'
is_ongoing
Boolean
compute='_compute_is_ongoing'
search='_search_is_ongoing'
args: 'Is Ongoing'
kanban_state
Selection
default='normal'
args: [('normal', 'In Progress'), ('done', 'Done'), ('blocked', 'Blocked')]
kanban_state_label
Char
compute='_compute_kanban_state_label'
store=True
string='Kanban State Label'
tracking=True
legend_blocked
Char
readonly=True
related='stage_id.legend_blocked'
string='Kanban Blocked Explanation'
legend_done
Char
readonly=True
related='stage_id.legend_done'
string='Kanban Valid Explanation'
legend_normal
Char
readonly=True
related='stage_id.legend_normal'
string='Kanban Ongoing Explanation'
name
Char
required=True
string='Event'
translate=True
note
Text
string='Note'
organizer_id
Many2one → res.partner
default=<expr>
domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]"
string='Organizer'
tracking=True
args: 'res.partner'
registration_ids
One2many → event.registration
string='Attendees'
args: 'event.registration', 'event_id'
seats_available
Integer
compute='_compute_seats'
readonly=True
store=True
string='Available Seats'
seats_expected
Integer
compute='_compute_seats_expected'
compute_sudo=True
readonly=True
string='Number of Expected Attendees'
seats_limited
Boolean
compute='_compute_seats_limited'
readonly=False
required=True
store=True
args: 'Maximum Attendees'
seats_max
Integer
compute='_compute_seats_max'
help='For each event you can define a maximum registration of seats(number of attendees), above this numbers the registrations are not accepted.'
readonly=False
store=True
string='Maximum Attendees Number'
seats_reserved
Integer
compute='_compute_seats'
readonly=True
store=True
string='Reserved Seats'
seats_unconfirmed
Integer
compute='_compute_seats'
readonly=True
store=True
string='Unconfirmed Seat Reservations'
seats_used
Integer
compute='_compute_seats'
readonly=True
store=True
string='Number of Participants'
stage_id
Many2one → event.stage
default=_get_default_stage_id
group_expand='_read_group_stage_ids'
ondelete='restrict'
tracking=True
args: 'event.stage'
start_sale_date
Date
compute='_compute_start_sale_date'
help='If ticketing is used, contains the earliest starting sale date of tickets.'
args: 'Start sale date'
tag_ids
Many2many → event.tag
compute='_compute_tag_ids'
readonly=False
store=True
string='Tags'
args: 'event.tag'
user_id
Many2one → res.users
default=<expr>
string='Responsible'
tracking=True
args: 'res.users'
action_set_done(self)
copy(self, default=None)
create(self, vals)
mail_attendees(self, template_id, force_send=False, filter_func=<expr>)
name_get(self)
write(self, vals)
company_id
Many2one → res.company
related='event_id.company_id'
args: 'res.company'
end_sale_date
Date
string='Registration End'
event_id
Many2one → event.event
ondelete='cascade'
required=True
string='Event'
args: 'event.event'
event_type_id
Many2one
ondelete='set null'
required=False
is_expired
Boolean
compute='_compute_is_expired'
string='Is Expired'
registration_ids
One2many → event.registration
string='Registrations'
args: 'event.registration', 'event_ticket_id'
sale_available
Boolean
compute='_compute_sale_available'
compute_sudo=True
string='Is Available'
seats_available
Integer
compute='_compute_seats'
store=True
string='Available Seats'
seats_reserved
Integer
compute='_compute_seats'
store=True
string='Reserved Seats'
seats_unconfirmed
Integer
compute='_compute_seats'
store=True
string='Unconfirmed Seats'
seats_used
Integer
compute='_compute_seats'
store=True
string='Used Seats'
start_sale_date
Date
string='Registration Start'
default_get(self, fields)
is_launched(self)
done
Boolean
compute='_compute_done'
store=True
args: 'Sent'
event_id
Many2one → event.event
ondelete='cascade'
required=True
string='Event'
args: 'event.event'
interval_nbr
Integer
default=1
args: 'Interval'
interval_type
Selection
default='before_event'
required=True
string='Trigger '
args: [('after_sub', 'After each registration'), ('before_event', 'Before the event'), ('after_event', 'After the event')]
interval_unit
Selection
default='hours'
required=True
string='Unit'
args: [('now', 'Immediately'), ('hours', 'Hours'), ('days', 'Days'), ('weeks', 'Weeks'), ('months', 'Months')]
mail_registration_ids
One2many → event.mail.registration
mail_sent
Boolean
copy=False
args: 'Mail Sent on Event'
notification_type
Selection
default='mail'
required=True
string='Send'
args: [('mail', 'Mail')]
scheduled_date
Datetime
compute='_compute_scheduled_date'
store=True
args: 'Scheduled Sent Mail'
sequence
Integer
template_id
Many2one → mail.template
domain=[('model', '=', 'event.registration')]
help='This field contains the template of the mail that will be automatically sent'
ondelete='restrict'
string='Email Template'
args: 'mail.template'
execute(self)
run(self, autocommit=False)
mail_sent
Boolean
registration_id
Many2one → event.registration
ondelete='cascade'
required=True
args: 'event.registration', 'Attendee'
scheduled_date
Datetime
compute='_compute_scheduled_date'
store=True
args: 'Scheduled Time'
scheduler_id
Many2one → event.mail
ondelete='cascade'
required=True
args: 'event.mail', 'Mail Scheduler'
execute(self)
company_id
Many2one → res.company
readonly=True
related='event_id.company_id'
states={'draft': [('readonly', False)]}
store=True
string='Company'
args: 'res.company'
date_closed
Datetime
compute='_compute_date_closed'
readonly=False
store=True
string='Attended Date'
date_open
Datetime
default=<expr>
readonly=True
string='Registration Date'
email
Char
compute='_compute_email'
readonly=False
store=True
string='Email'
tracking=11
event_begin_date
Datetime
readonly=True
related='event_id.date_begin'
string='Event Start Date'
event_end_date
Datetime
readonly=True
related='event_id.date_end'
string='Event End Date'
event_id
Many2one → event.event
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Event'
args: 'event.event'
event_ticket_id
Many2one → event.event.ticket
ondelete='restrict'
readonly=True
states={'draft': [('readonly', False)]}
string='Event Ticket'
args: 'event.event.ticket'
mobile
Char
compute='_compute_mobile'
readonly=False
store=True
string='Mobile'
tracking=13
name
Char
compute='_compute_name'
index=True
readonly=False
store=True
string='Attendee Name'
tracking=10
partner_id
Many2one → res.partner
states={'done': [('readonly', True)]}
string='Booked by'
args: 'res.partner'
phone
Char
compute='_compute_phone'
readonly=False
store=True
string='Phone'
tracking=12
state
Selection
copy=False
default='draft'
readonly=True
string='Status'
tracking=True
args: [('draft', 'Unconfirmed'), ('cancel', 'Cancelled'), ('open', 'Confirmed'), ('done', 'Attended')]
utm_campaign_id
Many2one → utm.campaign
index=True
ondelete='set null'
args: 'utm.campaign', 'Campaign'
utm_medium_id
Many2one → utm.medium
index=True
ondelete='set null'
args: 'utm.medium', 'Medium'
utm_source_id
Many2one → utm.source
index=True
ondelete='set null'
args: 'utm.source', 'Source'
action_cancel(self)
action_confirm(self)
action_send_badge_email(self)
action_set_done(self)
action_set_draft(self)
create(self, vals_list)
get_date_range_str(self)
name_get(self)
write(self, vals)
description
Text
string='Stage description'
translate=True
fold
Boolean
default=False
string='Folded in Kanban'
legend_blocked
Char
default=<expr>
help='Override the default value displayed for the blocked state for kanban selection.'
required=True
translate=True
args: 'Red Kanban Label'
legend_done
Char
default=<expr>
help='Override the default value displayed for the done state for kanban selection.'
required=True
translate=True
args: 'Green Kanban Label'
legend_normal
Char
default=<expr>
help='Override the default value displayed for the normal state for kanban selection.'
required=True
translate=True
args: 'Grey Kanban Label'
name
Char
required=True
string='Stage Name'
translate=True
pipe_end
Boolean
default=False
help='Events will automatically be moved into this stage when they are finished. The event moved into this stage will automatically be set as green.'
string='End Stage'
sequence
Integer
default=1
args: 'Sequence'
No public methods.
category_id
Many2one → event.tag.category
ondelete='cascade'
required=True
string='Category'
args: 'event.tag.category'
color
Integer
default=<expr>
help='Tag color. No color means no display in kanban or front-end, to distinguish internal tags from public categorization tags.'
string='Color Index'
name
Char
required=True
translate=True
args: 'Name'
sequence
Integer
default=0
args: 'Sequence'
name_get(self)
name
Char
required=True
translate=True
args: 'Name'
sequence
Integer
default=0
args: 'Sequence'
tag_ids
One2many → event.tag
string='Tags'
args: 'event.tag', 'category_id'
No public methods.
auto_confirm
Boolean
default=True
help='Events and registrations will automatically be confirmed upon creation, easing the flow for simple events.'
args: 'Automatically Confirm Registrations'
default_timezone
Selection
default=<expr>
string='Timezone'
args: _tz_get
event_type_mail_ids
One2many → event.type.mail
compute='_compute_event_type_mail_ids'
readonly=False
store=True
string='Mail Schedule'
args: 'event.type.mail', 'event_type_id'
event_type_ticket_ids
One2many → event.type.ticket
compute='_compute_event_type_ticket_ids'
readonly=False
store=True
string='Tickets'
args: 'event.type.ticket', 'event_type_id'
has_seats_limitation
Boolean
name
Char
required=True
translate=True
args: 'Event Template'
seats_max
Integer
compute='_compute_default_registration'
help='It will select this default maximum value when you choose this event'
readonly=False
store=True
args: 'Maximum Registrations'
sequence
Integer
tag_ids
Many2many → event.tag
string='Tags'
args: 'event.tag'
use_mail_schedule
Boolean
default=True
args: 'Automatically Send Emails'
use_ticket
Boolean
use_timezone
Boolean
No public methods.
event_type_id
Many2one → event.type
ondelete='cascade'
required=True
string='Event Type'
args: 'event.type'
interval_nbr
Integer
default=1
args: 'Interval'
interval_type
Selection
default='before_event'
required=True
string='Trigger'
args: [('after_sub', 'After each registration'), ('before_event', 'Before the event'), ('after_event', 'After the event')]
interval_unit
Selection
default='hours'
required=True
string='Unit'
args: [('now', 'Immediately'), ('hours', 'Hours'), ('days', 'Days'), ('weeks', 'Weeks'), ('months', 'Months')]
notification_type
Selection
default='mail'
required=True
string='Send'
args: [('mail', 'Mail')]
template_id
Many2one → mail.template
domain=[('model', '=', 'event.registration')]
help='This field contains the template of the mail that will be automatically sent'
ondelete='restrict'
string='Email Template'
args: 'mail.template'
No public methods.
description
Text
help='A description of the ticket that you want to communicate to your customers.'
translate=True
args: 'Description'
event_type_id
Many2one → event.type
ondelete='cascade'
required=True
string='Event Category'
args: 'event.type'
name
Char
default=<expr>
required=True
string='Name'
translate=True
seats_limited
Boolean
compute='_compute_seats_limited'
readonly=True
store=True
string='Seats Limit'
seats_max
Integer
help='Define the number of available tickets. If you have too many registrations you will not be able to sell tickets anymore. Set 0 to ignore this rule set as unlimited.'
string='Maximum Seats'
No public methods.
module_event_barcode
Boolean
module_event_sale
Boolean
module_website_event_meet
Boolean
module_website_event_questions
Boolean
module_website_event_sale
Boolean
module_website_event_track
Boolean
module_website_event_track_exhibitor
Boolean
module_website_event_track_live
Boolean
module_website_event_track_quiz
Boolean
No public methods.
event_count
Integer
compute='_compute_event_count'
groups='event.group_event_user'
help='Number of events the partner has participated.'
args: '# Events'
action_event_view(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/13.0/event |
| VERSION | |
| VERSION | 1.0 |
| CATEGORY | |
| CATEGORY | Marketing/Events |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Raphael Collet, Odoo Translation Bot, Martin Trigaux, Thibault Delavallée, Denis Ledoux, Christophe Simonis, Xavier Morel, Nicolas Martinelli, Nicolas Lempereur, Jeremy Kersten, GitHub, Lucas Perais (lpe), Yannick Tivisse, qsm-odoo, Martin Geubelle, Dharmraj Jhala, Odoo Online, Jigar Patel, jem-odoo, Adrien Dieudonne, RomainLibert, Jorge Pinna Puissant, Jairo Llopis, Alexandre Kühn, Adrian Torres, XavierDo, Xavier-Do, Paul Morelle, Sébastien Theys, Nasreddin (bon), Vincent Schippefilt, fw-bot, std-odoo, Kinjal Mehta, Ivan Yelizariev, IEL, jbm-odoo, qmo-odoo, Andrea Ulliana, Fabio Barbero |
| WEBSITE | |
| WEBSITE | https://www.odoo.com/page/events |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:06:43 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - base_setup - base - web - bus - web_tour - portal - web_editor - http_routing - auth_signup |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | Organization and management of Events. ====================================== The event module allows you to efficiently organize events and all related tasks: planning, registration tracking, attendances, etc. Key Features ------------ * Manage your Events and Registrations * Use emails to automatically confirm and send acknowledgments for any event registration |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
assets_backend |
event assets | ir.ui.view | qweb | Inherits web.assets_backend |
event_event_report_template_badge |
event_event_report_template_badge | ir.ui.view | qweb | New |
event_event_view_pivot |
event.event.view.pivot | event.event | pivot | New |
event_registration_report_template_badge |
event_registration_report_template_badge | ir.ui.view | qweb | New |
event_registration_view_kanban |
event.registration.kanban | event.registration | kanban | New |
event_type_view_search |
event.type.search | event.type | search | New |
res_config_settings_view_form |
res.config.settings.view.form.inherit.event | res.config.settings | xpath | Inherits base.res_config_settings_view_form |
res_partner_view_tree |
view.res.partner.form.event.inherited | res.partner | div | Inherits base.view_partner_form |
view_event_calendar |
event.event.calendar | event.event | calendar | New |
view_event_confirm |
Event Confirmation | event.confirm | form | New |
view_event_form |
event.event.form | event.event | form | New |
view_event_kanban |
event.event.kanban | event.event | kanban | New |
view_event_mail_form |
event.mail.form | event.mail | form | New |
view_event_mail_tree |
event.mail.tree | event.mail | tree | New |
view_event_registration_calendar |
event.registration.calendar | event.registration | calendar | New |
view_event_registration_form |
event.registration.form | event.registration | form | New |
view_event_registration_graph |
event.registration.graph | event.registration | graph | New |
view_event_registration_pivot |
event.registration.pivot | event.registration | pivot | New |
view_event_registration_tree |
event.registration.tree | event.registration | tree | New |
view_event_search |
event.event.search | event.event | search | New |
view_event_tree |
event.event.tree | event.event | tree | New |
view_event_type_form |
event.type.form | event.type | form | New |
view_event_type_tree |
event.type.tree | event.type | tree | New |
view_registration_search |
event.registration.search | event.registration | search | New |
No new fields.
Public methods (1)confirm(self)
active
Boolean
default=True
address_id
Many2one → res.partner
default=<expr>
domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]"
readonly=False
states={'done': [('readonly', True)]}
string='Location'
tracking=True
args: 'res.partner'
auto_confirm
Boolean
string='Autoconfirm Registrations'
badge_back
Html
string='Badge Back'
badge_front
Html
string='Badge Front'
badge_innerleft
Html
string='Badge Inner Left'
badge_innerright
Html
string='Badge Inner Right'
color
Integer
company_id
Many2one → res.company
change_default=True
default=<expr>
readonly=False
required=False
states={'done': [('readonly', True)]}
string='Company'
args: 'res.company'
country_id
Many2one → res.country
readonly=False
related='address_id.country_id'
store=True
args: 'res.country', 'Country'
date_begin
Datetime
required=True
states={'done': [('readonly', True)]}
string='Start Date'
tracking=True
date_begin_located
Char
compute='_compute_date_begin_tz'
string='Start Date Located'
date_end
Datetime
required=True
states={'done': [('readonly', True)]}
string='End Date'
tracking=True
date_end_located
Char
compute='_compute_date_end_tz'
string='End Date Located'
date_tz
Selection
default=<expr>
required=True
string='Timezone'
args: '_tz_get'
description
Html
readonly=False
sanitize_attributes=False
states={'done': [('readonly', True)]}
string='Description'
translate=html_translate
event_logo
Html
string='Event Logo'
event_mail_ids
One2many → event.mail
copy=True
string='Mail Schedule'
args: 'event.mail', 'event_id'
event_type_id
Many2one → event.type
readonly=False
states={'done': [('readonly', True)]}
string='Category'
args: 'event.type'
is_one_day
Boolean
compute='_compute_field_is_one_day'
is_online
Boolean
name
Char
readonly=False
required=True
states={'done': [('readonly', True)]}
string='Event'
translate=True
organizer_id
Many2one → res.partner
default=<expr>
domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]"
string='Organizer'
tracking=True
args: 'res.partner'
registration_ids
One2many → event.registration
readonly=False
states={'done': [('readonly', True)]}
string='Attendees'
args: 'event.registration', 'event_id'
seats_availability
Selection
default='unlimited'
required=True
args: [('limited', 'Limited'), ('unlimited', 'Unlimited')], 'Maximum Attendees'
seats_available
Integer
compute='_compute_seats'
readonly=True
store=True
string='Available Seats'
seats_expected
Integer
compute='_compute_seats_expected'
compute_sudo=True
readonly=True
string='Number of Expected Attendees'
seats_max
Integer
help='For each event you can define a maximum registration of seats(number of attendees), above this numbers the registrations are not accepted.'
readonly=True
states={'draft': [('readonly', False)], 'confirm': [('readonly', False)]}
string='Maximum Attendees Number'
seats_min
Integer
help='For each event you can define a minimum reserved seats (number of attendees), if it does not reach the mentioned registrations the event can not be confirmed (keep 0 to ignore this rule)'
string='Minimum Attendees'
seats_reserved
Integer
compute='_compute_seats'
readonly=True
store=True
string='Reserved Seats'
seats_unconfirmed
Integer
compute='_compute_seats'
readonly=True
store=True
string='Unconfirmed Seat Reservations'
seats_used
Integer
compute='_compute_seats'
readonly=True
store=True
string='Number of Participants'
state
Selection
copy=False
default='draft'
help="If event is created, the status is 'Draft'. If event is confirmed for the particular dates the status is set to 'Confirmed'. If the event is over, the status is set to 'Done'. If event is cancelled the status is set to 'Cancelled'."
readonly=True
required=True
string='Status'
args: [('draft', 'Unconfirmed'), ('cancel', 'Cancelled'), ('confirm', 'Confirmed'), ('done', 'Done')]
twitter_hashtag
Char
user_id
Many2one → res.users
default=<expr>
readonly=False
states={'done': [('readonly', True)]}
string='Responsible'
tracking=True
args: 'res.users'
button_cancel(self)
button_confirm(self)
button_done(self)
button_draft(self)
copy(self, default=None)
create(self, vals)
mail_attendees(self, template_id, force_send=False, filter_func=<expr>)
name_get(self)
write(self, vals)
done
Boolean
compute='_compute_done'
store=True
args: 'Sent'
event_id
Many2one → event.event
ondelete='cascade'
required=True
string='Event'
args: 'event.event'
interval_nbr
Integer
default=1
args: 'Interval'
interval_type
Selection
default='before_event'
required=True
string='Trigger '
args: [('after_sub', 'After each registration'), ('before_event', 'Before the event'), ('after_event', 'After the event')]
interval_unit
Selection
default='hours'
required=True
string='Unit'
args: [('now', 'Immediately'), ('hours', 'Hours'), ('days', 'Days'), ('weeks', 'Weeks'), ('months', 'Months')]
mail_registration_ids
One2many → event.mail.registration
mail_sent
Boolean
copy=False
args: 'Mail Sent on Event'
notification_type
Selection
default='mail'
required=True
string='Send'
args: [('mail', 'Mail')]
scheduled_date
Datetime
compute='_compute_scheduled_date'
store=True
args: 'Scheduled Sent Mail'
sequence
Integer
template_id
Many2one → mail.template
domain=[('model', '=', 'event.registration')]
help='This field contains the template of the mail that will be automatically sent'
ondelete='restrict'
string='Email Template'
args: 'mail.template'
execute(self)
run(self, autocommit=False)
mail_sent
Boolean
registration_id
Many2one → event.registration
ondelete='cascade'
required=True
args: 'event.registration', 'Attendee'
scheduled_date
Datetime
compute='_compute_scheduled_date'
store=True
args: 'Scheduled Time'
scheduler_id
Many2one → event.mail
ondelete='cascade'
required=True
args: 'event.mail', 'Mail Scheduler'
execute(self)
company_id
Many2one → res.company
readonly=True
related='event_id.company_id'
states={'draft': [('readonly', False)]}
store=True
string='Company'
args: 'res.company'
date_closed
Datetime
readonly=True
string='Attended Date'
date_open
Datetime
default=<expr>
readonly=True
string='Registration Date'
email
Char
string='Email'
event_begin_date
Datetime
readonly=True
related='event_id.date_begin'
string='Event Start Date'
event_end_date
Datetime
readonly=True
related='event_id.date_end'
string='Event End Date'
event_id
Many2one → event.event
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Event'
args: 'event.event'
mobile
Char
string='Mobile'
name
Char
index=True
string='Attendee Name'
origin
Char
help='Reference of the document that created the registration, for example a sales order'
readonly=True
string='Source Document'
partner_id
Many2one → res.partner
states={'done': [('readonly', True)]}
string='Contact'
args: 'res.partner'
phone
Char
string='Phone'
state
Selection
copy=False
default='draft'
readonly=True
string='Status'
tracking=True
args: [('draft', 'Unconfirmed'), ('cancel', 'Cancelled'), ('open', 'Confirmed'), ('done', 'Attended')]
action_send_badge_email(self)
button_reg_cancel(self)
button_reg_close(self)
check_access_rights(self, operation, raise_exception=True)
confirm_registration(self)
create(self, vals)
do_draft(self)
get_date_range_str(self)
summary(self)
auto_confirm
Boolean
default=True
help='Events and registrations will automatically be confirmed upon creation, easing the flow for simple events.'
args: 'Automatically Confirm Registrations'
default_hashtag
Char
default_registration_max
Integer
default=0
help='It will select this default maximum value when you choose this event'
args: 'Maximum Registrations'
default_registration_min
Integer
default=0
help='It will select this default minimum value when you choose this event'
args: 'Minimum Registrations'
default_timezone
Selection
default=<expr>
string='Timezone'
args: '_tz_get'
event_type_mail_ids
One2many → event.type.mail
copy=False
default=<expr>
string='Mail Schedule'
args: 'event.type.mail', 'event_type_id'
has_seats_limitation
Boolean
default=False
args: 'Limited Seats'
is_online
Boolean
help='Online events like webinars do not require a specific location and are hosted online.'
args: 'Online Event'
name
Char
required=True
translate=True
args: 'Event Category'
sequence
Integer
use_hashtag
Boolean
use_mail_schedule
Boolean
default=True
args: 'Automatically Send Emails'
use_timezone
Boolean
No public methods.
event_type_id
Many2one → event.type
ondelete='cascade'
required=True
string='Event Type'
args: 'event.type'
interval_nbr
Integer
default=1
args: 'Interval'
interval_type
Selection
default='before_event'
required=True
string='Trigger'
args: [('after_sub', 'After each registration'), ('before_event', 'Before the event'), ('after_event', 'After the event')]
interval_unit
Selection
default='hours'
required=True
string='Unit'
args: [('now', 'Immediately'), ('hours', 'Hours'), ('days', 'Days'), ('weeks', 'Weeks'), ('months', 'Months')]
notification_type
Selection
default='mail'
required=True
string='Send'
args: [('mail', 'Mail')]
template_id
Many2one → mail.template
domain=[('model', '=', 'event.registration')]
help='This field contains the template of the mail that will be automatically sent'
ondelete='restrict'
string='Email Template'
args: 'mail.template'
No public methods.
module_event_barcode
Boolean
module_event_sale
Boolean
module_website_event_questions
Boolean
module_website_event_sale
Boolean
module_website_event_track
Boolean
No public methods.
event_count
Integer
compute='_compute_event_count'
help='Number of events the partner has participated.'
args: 'Events'
action_event_view(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/12.0/event |
| VERSION | |
| VERSION | 1.0 |
| CATEGORY | |
| CATEGORY | Marketing |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Raphael Collet, Odoo Translation Bot, Martin Trigaux, Olivier Dony, Thibault Delavallée, Christophe Simonis, Xavier Morel, Nicolas Martinelli, Nicolas Lempereur, Richard Mathot, qdp-odoo, Géry Debongnie, Jeremy Kersten, GitHub, Yannick Tivisse, Alexandre Kühn, qsm-odoo, Martin Geubelle, Julien (juc) Castiaux, Jairo Llopis, Adrian Torres, XavierDo, Priyanka Kakadiya, Xavier-Do, jerome hanke (jhk), Paul Morelle, Sébastien Theys, fw-bot, David Beguin, jbm-odoo |
| WEBSITE | |
| WEBSITE | https://www.odoo.com/page/events |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-05 23:57:01 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - base_setup - base - web - bus - web_tour |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | Organization and management of Events. ====================================== The event module allows you to efficiently organize events and all related tasks: planning, registration tracking, attendances, etc. Key Features ------------ * Manage your Events and Registrations * Use emails to automatically confirm and send acknowledgments for any event registration |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
assets_backend |
event assets | ir.ui.view | qweb | Inherits web.assets_backend |
event_event_report_template_badge |
event_event_report_template_badge | ir.ui.view | qweb | New |
event_event_view_pivot |
event.event.view.pivot | event.event | pivot | New |
event_registration_report_template_badge |
event_registration_report_template_badge | ir.ui.view | qweb | New |
event_type_view_search |
event.type.search | event.type | search | New |
res_config_settings_view_form |
res.config.settings.view.form.inherit.event | res.config.settings | xpath | Inherits base.res_config_settings_view_form |
res_partner_view_tree |
view.res.partner.form.event.inherited | res.partner | button | Inherits base.view_partner_form |
view_event_calendar |
event.event.calendar | event.event | calendar | New |
view_event_confirm |
Event Confirmation | event.confirm | form | New |
view_event_form |
event.event.form | event.event | form | New |
view_event_kanban |
event.event.kanban | event.event | kanban | New |
view_event_mail_form |
event.mail.form | event.mail | form | New |
view_event_mail_tree |
event.mail.tree | event.mail | tree | New |
view_event_registration_calendar |
event.registration.calendar | event.registration | calendar | New |
view_event_registration_form |
event.registration.form | event.registration | form | New |
view_event_registration_graph |
event.registration.graph | event.registration | graph | New |
view_event_registration_pivot |
event.registration.pivot | event.registration | pivot | New |
view_event_registration_tree |
event.registration.tree | event.registration | tree | New |
view_event_search |
event.event.search | event.event | search | New |
view_event_tree |
event.event.tree | event.event | tree | New |
view_event_type_form |
event.type.form | event.type | form | New |
view_event_type_tree |
event.type.tree | event.type | tree | New |
view_registration_search |
event.registration.search | event.registration | search | New |
No new fields.
Public methods (1)confirm(self)
active
Boolean
default=True
address_id
Many2one → res.partner
default=<expr>
readonly=False
states={'done': [('readonly', True)]}
string='Location'
track_visibility='onchange'
args: 'res.partner'
auto_confirm
Boolean
string='Autoconfirm Registrations'
badge_back
Html
string='Badge Back'
badge_front
Html
string='Badge Front'
badge_innerleft
Html
string='Badge Inner Left'
badge_innerright
Html
string='Badge Inner Right'
color
Integer
company_id
Many2one → res.company
change_default=True
default=<expr>
readonly=False
required=False
states={'done': [('readonly', True)]}
string='Company'
args: 'res.company'
country_id
Many2one → res.country
readonly=False
related='address_id.country_id'
store=True
args: 'res.country', 'Country'
date_begin
Datetime
required=True
states={'done': [('readonly', True)]}
string='Start Date'
track_visibility='onchange'
date_begin_located
Char
compute='_compute_date_begin_tz'
string='Start Date Located'
date_end
Datetime
required=True
states={'done': [('readonly', True)]}
string='End Date'
track_visibility='onchange'
date_end_located
Char
compute='_compute_date_end_tz'
string='End Date Located'
date_tz
Selection
default=<expr>
required=True
string='Timezone'
args: '_tz_get'
description
Html
oldname='note'
readonly=False
sanitize_attributes=False
states={'done': [('readonly', True)]}
string='Description'
translate=html_translate
event_logo
Html
string='Event Logo'
event_mail_ids
One2many → event.mail
copy=True
string='Mail Schedule'
args: 'event.mail', 'event_id'
event_type_id
Many2one → event.type
oldname='type'
readonly=False
states={'done': [('readonly', True)]}
string='Category'
args: 'event.type'
is_online
Boolean
name
Char
readonly=False
required=True
states={'done': [('readonly', True)]}
string='Event'
translate=True
organizer_id
Many2one → res.partner
default=<expr>
string='Organizer'
track_visibility='onchange'
args: 'res.partner'
registration_ids
One2many → event.registration
readonly=False
states={'done': [('readonly', True)]}
string='Attendees'
args: 'event.registration', 'event_id'
seats_availability
Selection
default='unlimited'
required=True
args: [('limited', 'Limited'), ('unlimited', 'Unlimited')], 'Maximum Attendees'
seats_available
Integer
compute='_compute_seats'
oldname='register_avail'
readonly=True
store=True
string='Available Seats'
seats_expected
Integer
compute='_compute_seats_expected'
readonly=True
string='Number of Expected Attendees'
seats_max
Integer
help='For each event you can define a maximum registration of seats(number of attendees), above this numbers the registrations are not accepted.'
oldname='register_max'
readonly=True
states={'draft': [('readonly', False)], 'confirm': [('readonly', False)]}
string='Maximum Attendees Number'
seats_min
Integer
help='For each event you can define a minimum reserved seats (number of attendees), if it does not reach the mentioned registrations the event can not be confirmed (keep 0 to ignore this rule)'
oldname='register_min'
string='Minimum Attendees'
seats_reserved
Integer
compute='_compute_seats'
oldname='register_current'
readonly=True
store=True
string='Reserved Seats'
seats_unconfirmed
Integer
compute='_compute_seats'
oldname='register_prospect'
readonly=True
store=True
string='Unconfirmed Seat Reservations'
seats_used
Integer
compute='_compute_seats'
oldname='register_attended'
readonly=True
store=True
string='Number of Participants'
state
Selection
copy=False
default='draft'
help="If event is created, the status is 'Draft'. If event is confirmed for the particular dates the status is set to 'Confirmed'. If the event is over, the status is set to 'Done'. If event is cancelled the status is set to 'Cancelled'."
readonly=True
required=True
string='Status'
args: [('draft', 'Unconfirmed'), ('cancel', 'Cancelled'), ('confirm', 'Confirmed'), ('done', 'Done')]
twitter_hashtag
Char
user_id
Many2one → res.users
default=<expr>
readonly=False
states={'done': [('readonly', True)]}
string='Responsible'
track_visibility='onchange'
args: 'res.users'
button_cancel(self)
button_confirm(self)
button_done(self)
button_draft(self)
copy(self, default=None)
create(self, vals)
mail_attendees(self, template_id, force_send=False, filter_func=<expr>)
name_get(self)
write(self, vals)
done
Boolean
compute='_compute_done'
store=True
args: 'Sent'
event_id
Many2one → event.event
ondelete='cascade'
required=True
string='Event'
args: 'event.event'
interval_nbr
Integer
default=1
args: 'Interval'
interval_type
Selection
default='before_event'
required=True
string='Trigger '
args: [('after_sub', 'After each registration'), ('before_event', 'Before the event'), ('after_event', 'After the event')]
interval_unit
Selection
default='hours'
required=True
string='Unit'
args: [('now', 'Immediately'), ('hours', 'Hour(s)'), ('days', 'Day(s)'), ('weeks', 'Week(s)'), ('months', 'Month(s)')]
mail_registration_ids
One2many → event.mail.registration
mail_sent
Boolean
copy=False
args: 'Mail Sent on Event'
scheduled_date
Datetime
compute='_compute_scheduled_date'
store=True
args: 'Scheduled Sent Mail'
sequence
Integer
template_id
Many2one → mail.template
domain=[('model', '=', 'event.registration')]
help='This field contains the template of the mail that will be automatically sent'
ondelete='restrict'
required=True
string='Email Template'
args: 'mail.template'
execute(self)
run(self, autocommit=False)
mail_sent
Boolean
registration_id
Many2one → event.registration
ondelete='cascade'
required=True
args: 'event.registration', 'Attendee'
scheduled_date
Datetime
compute='_compute_scheduled_date'
store=True
args: 'Scheduled Time'
scheduler_id
Many2one → event.mail
ondelete='cascade'
required=True
args: 'event.mail', 'Mail Scheduler'
execute(self)
company_id
Many2one → res.company
readonly=True
related='event_id.company_id'
states={'draft': [('readonly', False)]}
store=True
string='Company'
args: 'res.company'
date_closed
Datetime
readonly=True
string='Attended Date'
date_open
Datetime
default=<expr>
readonly=True
string='Registration Date'
email
Char
string='Email'
event_begin_date
Datetime
readonly=True
related='event_id.date_begin'
string='Event Start Date'
event_end_date
Datetime
readonly=True
related='event_id.date_end'
string='Event End Date'
event_id
Many2one → event.event
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Event'
args: 'event.event'
name
Char
index=True
string='Attendee Name'
origin
Char
help='Reference of the document that created the registration, for example a sales order'
readonly=True
string='Source Document'
partner_id
Many2one → res.partner
states={'done': [('readonly', True)]}
string='Contact'
args: 'res.partner'
phone
Char
string='Phone'
state
Selection
copy=False
default='draft'
readonly=True
string='Status'
track_visibility='onchange'
args: [('draft', 'Unconfirmed'), ('cancel', 'Cancelled'), ('open', 'Confirmed'), ('done', 'Attended')]
action_send_badge_email(self)
button_reg_cancel(self)
button_reg_close(self)
check_access_rights(self, operation, raise_exception=True)
confirm_registration(self)
create(self, vals)
do_draft(self)
get_date_range_str(self)
message_get_default_recipients(self)
message_get_suggested_recipients(self)
summary(self)
auto_confirm
Boolean
default=True
help='Events and registrations will automatically be confirmed upon creation, easing the flow for simple events.'
args: 'Automatically Confirm Registrations'
default_hashtag
Char
default_registration_max
Integer
default=0
help='It will select this default maximum value when you choose this event'
args: 'Maximum Registrations'
default_registration_min
Integer
default=0
help='It will select this default minimum value when you choose this event'
args: 'Minimum Registrations'
default_timezone
Selection
default=<expr>
string='Timezone'
args: '_tz_get'
event_type_mail_ids
One2many → event.type.mail
copy=False
default=_get_default_event_type_mail_ids
string='Mail Schedule'
args: 'event.type.mail', 'event_type_id'
has_seats_limitation
Boolean
default=False
args: 'Limited Seats'
is_online
Boolean
help='Online events like webinars do not require a specific location and are hosted online.'
args: 'Online Event'
name
Char
required=True
translate=True
args: 'Event Category'
use_hashtag
Boolean
use_mail_schedule
Boolean
default=True
args: 'Automatically Send Emails'
use_timezone
Boolean
No public methods.
event_type_id
Many2one → event.type
ondelete='cascade'
required=True
string='Event Type'
args: 'event.type'
interval_nbr
Integer
default=1
args: 'Interval'
interval_type
Selection
default='before_event'
required=True
string='Trigger'
args: [('after_sub', 'After each registration'), ('before_event', 'Before the event'), ('after_event', 'After the event')]
interval_unit
Selection
default='hours'
required=True
string='Unit'
args: [('now', 'Immediately'), ('hours', 'Hour(s)'), ('days', 'Day(s)'), ('weeks', 'Week(s)'), ('months', 'Month(s)')]
template_id
Many2one → mail.template
domain=[('model', '=', 'event.registration')]
help='This field contains the template of the mail that will be automatically sent'
ondelete='restrict'
required=True
string='Email Template'
args: 'mail.template'
No public methods.
module_event_barcode
Boolean
module_event_sale
Boolean
module_website_event_questions
Boolean
module_website_event_sale
Boolean
module_website_event_track
Boolean
No public methods.
event_count
Integer
compute='_compute_event_count'
help='Number of events the partner has participated.'
args: 'Events'
action_event_view(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/11.0/event |
| VERSION | |
| VERSION | 1.0 |
| CATEGORY | |
| CATEGORY | Marketing |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Odoo Translation Bot, Martin Trigaux, Fabien Pinckaers, Olivier Dony, Thibault Delavallée, Denis Ledoux, Christophe Simonis, Joren Van Onder, Goffin Simon, Nicolas Martinelli, Nicolas Lempereur, Jérome Maes, Richard Mathot, qdp-odoo, Aaron Bohy, Jeremy Kersten, GitHub, Lucas Perais (lpe), Olivier Colson, Yannick Tivisse, qsm-odoo, Odoo Online, Laurent Smet, RomainLibert, jvm-odoo |
| WEBSITE | |
| WEBSITE | https://www.odoo.com/page/events |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-05 23:53:43 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - base_setup - base - web - bus - web_tour |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | Organization and management of Events. ====================================== The event module allows you to efficiently organize events and all related tasks: planning, registration tracking, attendances, etc. Key Features ------------ * Manage your Events and Registrations * Use emails to automatically confirm and send acknowledgments for any event registration |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
assets_backend |
event assets | ir.ui.view | qweb | Inherits web.assets_backend |
event_event_report_template_badge |
event_event_report_template_badge | ir.ui.view | qweb | New |
event_event_view_pivot |
event.event.view.pivot | event.event | pivot | New |
event_registration_report_template_badge |
event_registration_report_template_badge | ir.ui.view | qweb | New |
res_config_settings_view_form |
res.config.settings.view.form.inherit.event | res.config.settings | xpath | Inherits base.res_config_settings_view_form |
res_partner_view_tree |
view.res.partner.form.event.inherited | res.partner | div | Inherits base.view_partner_form |
view_event_calendar |
event.event.calendar | event.event | calendar | New |
view_event_confirm |
Event Confirmation | event.confirm | form | New |
view_event_form |
event.event.form | event.event | form | New |
view_event_kanban |
event.event.kanban | event.event | kanban | New |
view_event_mail_form |
event.mail.form | event.mail | form | New |
view_event_mail_tree |
event.mail.tree | event.mail | tree | New |
view_event_registration_calendar |
event.registration.calendar | event.registration | calendar | New |
view_event_registration_form |
event.registration.form | event.registration | form | New |
view_event_registration_graph |
event.registration.graph | event.registration | graph | New |
view_event_registration_pivot |
event.registration.pivot | event.registration | pivot | New |
view_event_registration_tree |
event.registration.tree | event.registration | tree | New |
view_event_search |
event.event.search | event.event | search | New |
view_event_tree |
event.event.tree | event.event | tree | New |
view_event_type_form |
event.type.form | event.type | form | New |
view_event_type_tree |
event.type.tree | event.type | tree | New |
view_registration_search |
event.registration.search | event.registration | search | New |
No new fields.
Public methods (1)confirm(self)
active
Boolean
default=True
address_id
Many2one → res.partner
default=<expr>
readonly=False
states={'done': [('readonly', True)]}
string='Location'
track_visibility='onchange'
args: 'res.partner'
auto_confirm
Boolean
string='Autoconfirm Registrations'
badge_back
Html
string='Badge Back'
badge_front
Html
string='Badge Front'
badge_innerleft
Html
string='Badge Inner Left'
badge_innerright
Html
string='Badge Inner Right'
color
Integer
company_id
Many2one → res.company
change_default=True
default=<expr>
readonly=False
required=False
states={'done': [('readonly', True)]}
string='Company'
args: 'res.company'
country_id
Many2one → res.country
related='address_id.country_id'
store=True
args: 'res.country', 'Country'
date_begin
Datetime
required=True
states={'done': [('readonly', True)]}
string='Start Date'
track_visibility='onchange'
date_begin_located
Char
compute='_compute_date_begin_tz'
string='Start Date Located'
date_end
Datetime
required=True
states={'done': [('readonly', True)]}
string='End Date'
track_visibility='onchange'
date_end_located
Char
compute='_compute_date_end_tz'
string='End Date Located'
date_tz
Selection
default=<expr>
required=True
string='Timezone'
args: '_tz_get'
description
Html
oldname='note'
readonly=False
sanitize_attributes=False
states={'done': [('readonly', True)]}
string='Description'
translate=html_translate
event_logo
Html
string='Event Logo'
event_mail_ids
One2many → event.mail
copy=True
string='Mail Schedule'
args: 'event.mail', 'event_id'
event_type_id
Many2one → event.type
oldname='type'
readonly=False
states={'done': [('readonly', True)]}
string='Category'
args: 'event.type'
is_online
Boolean
name
Char
readonly=False
required=True
states={'done': [('readonly', True)]}
string='Event Name'
translate=True
organizer_id
Many2one → res.partner
default=<expr>
string='Organizer'
track_visibility='onchange'
args: 'res.partner'
registration_ids
One2many → event.registration
readonly=False
states={'done': [('readonly', True)]}
string='Attendees'
args: 'event.registration', 'event_id'
seats_availability
Selection
default='unlimited'
required=True
args: [('limited', 'Limited'), ('unlimited', 'Unlimited')], 'Maximum Attendees'
seats_available
Integer
compute='_compute_seats'
oldname='register_avail'
readonly=True
store=True
string='Available Seats'
seats_expected
Integer
compute='_compute_seats'
readonly=True
string='Number of Expected Attendees'
seats_max
Integer
help='For each event you can define a maximum registration of seats(number of attendees), above this numbers the registrations are not accepted.'
oldname='register_max'
readonly=True
states={'draft': [('readonly', False)], 'confirm': [('readonly', False)]}
string='Maximum Attendees Number'
seats_min
Integer
help='For each event you can define a minimum reserved seats (number of attendees), if it does not reach the mentioned registrations the event can not be confirmed (keep 0 to ignore this rule)'
oldname='register_min'
string='Minimum Attendees'
seats_reserved
Integer
compute='_compute_seats'
oldname='register_current'
readonly=True
store=True
string='Reserved Seats'
seats_unconfirmed
Integer
compute='_compute_seats'
oldname='register_prospect'
readonly=True
store=True
string='Unconfirmed Seat Reservations'
seats_used
Integer
compute='_compute_seats'
oldname='register_attended'
readonly=True
store=True
string='Number of Participants'
state
Selection
copy=False
default='draft'
help="If event is created, the status is 'Draft'. If event is confirmed for the particular dates the status is set to 'Confirmed'. If the event is over, the status is set to 'Done'. If event is cancelled the status is set to 'Cancelled'."
readonly=True
required=True
string='Status'
args: [('draft', 'Unconfirmed'), ('cancel', 'Cancelled'), ('confirm', 'Confirmed'), ('done', 'Done')]
twitter_hashtag
Char
user_id
Many2one → res.users
default=<expr>
readonly=False
states={'done': [('readonly', True)]}
string='Responsible'
track_visibility='onchange'
args: 'res.users'
button_cancel(self)
button_confirm(self)
button_done(self)
button_draft(self)
copy(self, default=None)
create(self, vals)
mail_attendees(self, template_id, force_send=False, filter_func=<expr>)
name_get(self)
write(self, vals)
done
Boolean
compute='_compute_done'
store=True
args: 'Sent'
event_id
Many2one → event.event
ondelete='cascade'
required=True
string='Event'
args: 'event.event'
interval_nbr
Integer
default=1
args: 'Interval'
interval_type
Selection
default='before_event'
required=True
string='Trigger '
args: [('after_sub', 'After each registration'), ('before_event', 'Before the event'), ('after_event', 'After the event')]
interval_unit
Selection
default='hours'
required=True
string='Unit'
args: [('now', 'Immediately'), ('hours', 'Hour(s)'), ('days', 'Day(s)'), ('weeks', 'Week(s)'), ('months', 'Month(s)')]
mail_registration_ids
One2many → event.mail.registration
mail_sent
Boolean
copy=False
args: 'Mail Sent on Event'
scheduled_date
Datetime
compute='_compute_scheduled_date'
store=True
args: 'Scheduled Sent Mail'
sequence
Integer
template_id
Many2one → mail.template
domain=[('model', '=', 'event.registration')]
help='This field contains the template of the mail that will be automatically sent'
ondelete='restrict'
required=True
string='Email Template'
args: 'mail.template'
execute(self)
run(self, autocommit=False)
mail_sent
Boolean
registration_id
Many2one → event.registration
ondelete='cascade'
required=True
args: 'event.registration', 'Attendee'
scheduled_date
Datetime
compute='_compute_scheduled_date'
store=True
args: 'Scheduled Time'
scheduler_id
Many2one → event.mail
ondelete='cascade'
required=True
args: 'event.mail', 'Mail Scheduler'
execute(self)
company_id
Many2one → res.company
readonly=True
related='event_id.company_id'
states={'draft': [('readonly', False)]}
store=True
string='Company'
args: 'res.company'
date_closed
Datetime
readonly=True
string='Attended Date'
date_open
Datetime
default=<expr>
readonly=True
string='Registration Date'
email
Char
string='Email'
event_begin_date
Datetime
readonly=True
related='event_id.date_begin'
string='Event Start Date'
event_end_date
Datetime
readonly=True
related='event_id.date_end'
string='Event End Date'
event_id
Many2one → event.event
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Event'
args: 'event.event'
name
Char
index=True
string='Attendee Name'
origin
Char
help='Reference of the document that created the registration, for example a sales order'
readonly=True
string='Source Document'
partner_id
Many2one → res.partner
states={'done': [('readonly', True)]}
string='Contact'
args: 'res.partner'
phone
Char
string='Phone'
state
Selection
copy=False
default='draft'
readonly=True
string='Status'
track_visibility='onchange'
args: [('draft', 'Unconfirmed'), ('cancel', 'Cancelled'), ('open', 'Confirmed'), ('done', 'Attended')]
action_send_badge_email(self)
button_reg_cancel(self)
button_reg_close(self)
check_access_rights(self, operation, raise_exception=True)
confirm_registration(self)
create(self, vals)
do_draft(self)
get_date_range_str(self)
message_get_default_recipients(self)
message_get_suggested_recipients(self)
summary(self)
auto_confirm
Boolean
default=True
help='Events and registrations will automatically be confirmed upon creation, easing the flow for simple events.'
args: 'Automatically Confirm Registrations'
default_hashtag
Char
default_registration_max
Integer
default=0
help='It will select this default maximum value when you choose this event'
args: 'Maximum Registrations'
default_registration_min
Integer
default=0
help='It will select this default minimum value when you choose this event'
args: 'Minimum Registrations'
default_timezone
Selection
default=<expr>
string='Timezone'
args: '_tz_get'
event_type_mail_ids
One2many → event.type.mail
copy=False
default=_get_default_event_type_mail_ids
string='Mail Schedule'
args: 'event.type.mail', 'event_type_id'
has_seats_limitation
Boolean
default=False
args: 'Limited Seats'
is_online
Boolean
help='Online events like webinars do not require a specific location and are hosted online.'
args: 'Online Event'
name
Char
required=True
translate=True
args: 'Event Category'
use_hashtag
Boolean
use_mail_schedule
Boolean
default=True
args: 'Automatically Send Emails'
use_timezone
Boolean
No public methods.
event_type_id
Many2one → event.type
ondelete='cascade'
required=True
string='Event Type'
args: 'event.type'
interval_nbr
Integer
default=1
args: 'Interval'
interval_type
Selection
default='before_event'
required=True
string='Trigger'
args: [('after_sub', 'After each registration'), ('before_event', 'Before the event'), ('after_event', 'After the event')]
interval_unit
Selection
default='hours'
required=True
string='Unit'
args: [('now', 'Immediately'), ('hours', 'Hour(s)'), ('days', 'Day(s)'), ('weeks', 'Week(s)'), ('months', 'Month(s)')]
template_id
Many2one → mail.template
domain=[('model', '=', 'event.registration')]
help='This field contains the template of the mail that will be automatically sent'
ondelete='restrict'
required=True
string='Email Template'
args: 'mail.template'
No public methods.
module_event_barcode
Boolean
module_event_sale
Boolean
module_website_event_questions
Boolean
module_website_event_sale
Boolean
module_website_event_track
Boolean
No public methods.
event_count
Integer
compute='_compute_event_count'
help='Number of events the partner has participated.'
args: 'Events'
action_event_view(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/10.0/event |
| VERSION | |
| VERSION | 1.0 |
| CATEGORY | |
| CATEGORY | Marketing |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Raphael Collet, Odoo Translation Bot, Christophe Matthieu, Martin Trigaux, Fabien Pinckaers, Olivier Dony, Thibault Delavallée, Denis Ledoux, Christophe Simonis, Nicolas Martinelli, Julien Legros, Richard Mathot, qdp-odoo, Aaron Bohy, Jeremy Kersten, Lucas Perais (lpe), Yannick Tivisse, qsm-odoo |
| WEBSITE | |
| WEBSITE | https://www.odoo.com/page/events |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-05 23:50:48 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - base_setup - base - web_kanban - web - bus - web_tour - report |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | Organization and management of Events. ====================================== The event module allows you to efficiently organize events and all related tasks: planning, registration tracking, attendances, etc. Key Features ------------ * Manage your Events and Registrations * Use emails to automatically confirm and send acknowledgments for any event registration |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
assets_backend |
event assets | ir.ui.view | qweb | Inherits web.assets_backend |
event_event_report_template_badge |
event_event_report_template_badge | ir.ui.view | qweb | New |
event_registration_report_template_badge |
event_registration_report_template_badge | ir.ui.view | qweb | New |
report_event_registration_graph |
report.event.registration.graph | report.event.registration | graph | New |
report_event_registration_pivot |
report.event.registration.pivot | report.event.registration | pivot | New |
view_event_calendar |
event.event.calendar | event.event | calendar | New |
view_event_configuration |
Configure Event | event.config.settings | form | New |
view_event_confirm |
Event Confirmation | event.confirm | form | New |
view_event_form |
event.event.form | event.event | form | New |
view_event_kanban |
event.event.kanban | event.event | kanban | New |
view_event_mail_form |
event.mail.form | event.mail | form | New |
view_event_mail_tree |
event.mail.tree | event.mail | tree | New |
view_event_registration_calendar |
event.registration.calendar | event.registration | calendar | New |
view_event_registration_form |
event.registration.form | event.registration | form | New |
view_event_registration_graph |
event.registration.graph | event.registration | graph | New |
view_event_registration_pivot |
event.registration.pivot | event.registration | pivot | New |
view_event_registration_tree |
event.registration.tree | event.registration | tree | New |
view_event_search |
event.event.search | event.event | search | New |
view_event_tree |
event.event.tree | event.event | tree | New |
view_event_type_form |
event.type.form | event.type | form | New |
view_event_type_tree |
event.type.tree | event.type | tree | New |
view_registration_search |
event.registration.search | event.registration | search | New |
view_report_event_registration_search |
report.event.registration.search | report.event.registration | search | New |
auto_confirmation
Selection
help='Unselect this option to manually manage draft event and draft registration'
args: [(1, 'No validation step on registration'), (0, 'Manually confirm every registration')], 'Auto Confirmation'
module_event_barcode
Boolean
help='Install the event_barcode module'
args: 'Scan badges to confirm attendances'
module_event_sale
Selection
help='Install the event_sale module'
args: [(0, 'All events are free'), (1, 'Allow selling tickets')], 'Tickets'
module_website_event_questions
Selection
help='Install the website_event_questions module'
args: [(0, 'No extra questions on registrations'), (1, 'Allow adding extra questions on registrations')], 'Registration Survey'
module_website_event_track
Selection
help='Install the module website_event_track'
args: [(0, 'No mini website per event'), (1, 'Allow tracks, agenda and dedicated menus/website per event')], 'Tracks and Agenda'
set_default_auto_confirmation(self)
No new fields.
Public methods (1)confirm(self)
active
Boolean
default=True
track_visibility='onchange'
address_id
Many2one → res.partner
default=<expr>
readonly=False
states={'done': [('readonly', True)]}
string='Location'
args: 'res.partner'
auto_confirm
Boolean
compute='_compute_auto_confirm'
string='Confirmation not required'
badge_back
Html
string='Badge Back'
badge_front
Html
string='Badge Front'
badge_innerleft
Html
string='Badge Inner Left'
badge_innerright
Html
string='Badge Inner Right'
color
Integer
company_id
Many2one → res.company
change_default=True
default=<expr>
readonly=False
required=False
states={'done': [('readonly', True)]}
string='Company'
args: 'res.company'
country_id
Many2one → res.country
related='address_id.country_id'
store=True
args: 'res.country', 'Country'
date_begin
Datetime
required=True
states={'done': [('readonly', True)]}
string='Start Date'
track_visibility='onchange'
date_begin_located
Datetime
compute='_compute_date_begin_tz'
string='Start Date Located'
date_end
Datetime
required=True
states={'done': [('readonly', True)]}
string='End Date'
track_visibility='onchange'
date_end_located
Datetime
compute='_compute_date_end_tz'
string='End Date Located'
date_tz
Selection
default=<expr>
required=True
string='Timezone'
args: '_tz_get'
description
Html
oldname='note'
readonly=False
sanitize_attributes=False
states={'done': [('readonly', True)]}
string='Description'
translate=html_translate
event_logo
Html
string='Event Logo'
event_mail_ids
One2many → event.mail
copy=True
default=<expr>
string='Mail Schedule'
args: 'event.mail', 'event_id'
event_type_id
Many2one → event.type
oldname='type'
readonly=False
states={'done': [('readonly', True)]}
string='Category'
args: 'event.type'
name
Char
readonly=False
required=True
states={'done': [('readonly', True)]}
string='Event Name'
translate=True
organizer_id
Many2one → res.partner
default=<expr>
string='Organizer'
args: 'res.partner'
registration_ids
One2many → event.registration
readonly=False
states={'done': [('readonly', True)]}
string='Attendees'
args: 'event.registration', 'event_id'
reply_to
Char
help="The email address of the organizer is likely to be put here, with the effect to be in the 'Reply-To' of the mails sent automatically at event or registrations confirmation. You can also put the email address of your mail gateway if you use one."
readonly=False
states={'done': [('readonly', True)]}
args: 'Reply-To Email'
seats_availability
Selection
default='unlimited'
required=True
args: [('limited', 'Limited'), ('unlimited', 'Unlimited')], 'Maximum Attendees'
seats_available
Integer
compute='_compute_seats'
oldname='register_avail'
readonly=True
store=True
string='Available Seats'
seats_expected
Integer
compute='_compute_seats'
readonly=True
string='Number of Expected Attendees'
seats_max
Integer
help='For each event you can define a maximum registration of seats(number of attendees), above this numbers the registrations are not accepted.'
oldname='register_max'
readonly=True
states={'draft': [('readonly', False)], 'confirm': [('readonly', False)]}
string='Maximum Attendees Number'
seats_min
Integer
help='For each event you can define a minimum reserved seats (number of attendees), if it does not reach the mentioned registrations the event can not be confirmed (keep 0 to ignore this rule)'
oldname='register_min'
string='Minimum Attendees'
seats_reserved
Integer
compute='_compute_seats'
oldname='register_current'
readonly=True
store=True
string='Reserved Seats'
seats_unconfirmed
Integer
compute='_compute_seats'
oldname='register_prospect'
readonly=True
store=True
string='Unconfirmed Seat Reservations'
seats_used
Integer
compute='_compute_seats'
oldname='register_attended'
readonly=True
store=True
string='Number of Participants'
state
Selection
copy=False
default='draft'
help="If event is created, the status is 'Draft'. If event is confirmed for the particular dates the status is set to 'Confirmed'. If the event is over, the status is set to 'Done'. If event is cancelled the status is set to 'Cancelled'."
readonly=True
required=True
string='Status'
args: [('draft', 'Unconfirmed'), ('cancel', 'Cancelled'), ('confirm', 'Confirmed'), ('done', 'Done')]
user_id
Many2one → res.users
default=<expr>
readonly=False
states={'done': [('readonly', True)]}
string='Responsible'
args: 'res.users'
action_event_registration_report(self)
button_cancel(self)
button_confirm(self)
button_done(self)
button_draft(self)
create(self, vals)
mail_attendees(self, template_id, force_send=False, filter_func=<expr>)
name_get(self)
write(self, vals)
done
Boolean
compute='_compute_done'
store=True
args: 'Sent'
event_id
Many2one → event.event
ondelete='cascade'
required=True
string='Event'
args: 'event.event'
interval_nbr
Integer
default=1
args: 'Interval'
interval_type
Selection
default='before_event'
required=True
string='When to Run '
args: [('after_sub', 'After each registration'), ('before_event', 'Before the event'), ('after_event', 'After the event')]
interval_unit
Selection
default='hours'
required=True
string='Unit'
args: [('now', 'Immediately'), ('hours', 'Hour(s)'), ('days', 'Day(s)'), ('weeks', 'Week(s)'), ('months', 'Month(s)')]
mail_registration_ids
One2many → event.mail.registration
mail_sent
Boolean
scheduled_date
Datetime
compute='_compute_scheduled_date'
store=True
args: 'Scheduled Sent Mail'
sequence
Integer
template_id
Many2one → mail.template
domain=[('model', '=', 'event.registration')]
help='This field contains the template of the mail that will be automatically sent'
ondelete='restrict'
required=True
string='Email to Send'
args: 'mail.template'
execute(self)
run(self, autocommit=False)
mail_sent
Boolean
registration_id
Many2one → event.registration
ondelete='cascade'
required=True
args: 'event.registration', 'Attendee'
scheduled_date
Datetime
compute='_compute_scheduled_date'
store=True
args: 'Scheduled Time'
scheduler_id
Many2one → event.mail
ondelete='cascade'
required=True
args: 'event.mail', 'Mail Scheduler'
execute(self)
company_id
Many2one → res.company
readonly=True
related='event_id.company_id'
states={'draft': [('readonly', False)]}
store=True
string='Company'
args: 'res.company'
date_closed
Datetime
readonly=True
string='Attended Date'
date_open
Datetime
default=<expr>
readonly=True
string='Registration Date'
email
Char
string='Email'
event_begin_date
Datetime
readonly=True
related='event_id.date_begin'
string='Event Start Date'
event_end_date
Datetime
readonly=True
related='event_id.date_end'
string='Event End Date'
event_id
Many2one → event.event
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Event'
args: 'event.event'
name
Char
index=True
string='Attendee Name'
origin
Char
help='Reference of the document that created the registration, for example a sale order'
readonly=True
string='Source Document'
partner_id
Many2one → res.partner
states={'done': [('readonly', True)]}
string='Contact'
args: 'res.partner'
phone
Char
string='Phone'
state
Selection
copy=False
default='draft'
readonly=True
string='Status'
track_visibility='onchange'
args: [('draft', 'Unconfirmed'), ('cancel', 'Cancelled'), ('open', 'Confirmed'), ('done', 'Attended')]
action_send_badge_email(self)
button_reg_cancel(self)
button_reg_close(self)
confirm_registration(self)
create(self, vals)
do_draft(self)
get_date_range_str(self)
message_get_suggested_recipients(self)
default_registration_max
Integer
default=0
help='It will select this default maximum value when you choose this event'
args: 'Default Maximum Registration'
default_registration_min
Integer
default=0
help='It will select this default minimum value when you choose this event'
args: 'Default Minimum Registration'
default_reply_to
Char
name
Char
required=True
translate=True
args: 'Event Type'
No public methods.
cancel_state
Integer
company_id
Many2one → res.company
readonly=True
args: 'res.company', 'Company'
confirm_state
Integer
create_date
Datetime
readonly=True
args: 'Creation Date'
draft_state
Integer
event_date
Datetime
readonly=True
args: 'Event Date'
event_id
Many2one → event.event
required=True
args: 'event.event', 'Event'
event_state
Selection
readonly=True
required=True
args: [('draft', 'Draft'), ('confirm', 'Confirmed'), ('done', 'Done'), ('cancel', 'Cancelled')], 'Event State'
event_type_id
Many2one → event.type
name_registration
Char
readonly=True
args: 'Participant / Contact Name'
nbevent
Integer
nbregistration
Integer
registration_state
Selection
readonly=True
required=True
args: [('draft', 'Draft'), ('confirm', 'Confirmed'), ('done', 'Attended'), ('cancel', 'Cancelled')], 'Registration State'
seats_max
Integer
user_id
Many2one → res.users
readonly=True
args: 'res.users', 'Event Responsible'
init(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/9.0/event |
| VERSION | |
| VERSION | 0.1 |
| CATEGORY | |
| CATEGORY | Marketing |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Raphael Collet, Odoo Translation Bot, Martin Trigaux, Fabien Pinckaers, Olivier Dony, Thibault Delavallée, Denis Ledoux, Fabien Meghazi, Christophe Simonis, David Monjoie, Nicolas Martinelli, Jérome Maes, Richard Mathot, Géry Debongnie, Aaron Bohy, Jeremy Kersten, Lucas Perais (lpe), Damien Bouvy, Julien De Coster, Yannick Tivisse, qsm-odoo, Martin Geubelle, RomainLibert, paa-odoo |
| WEBSITE | |
| WEBSITE | https://www.odoo.com/page/events |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-05 23:48:30 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - base_setup - base - web_kanban - web - bus - marketing - report - web_tip |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | Organization and management of Events. ====================================== The event module allows you to efficiently organise events and all related tasks: planification, registration tracking, attendances, etc. Key Features ------------ * Manage your Events and Registrations * Use emails to automatically confirm and send acknowledgements for any event registration |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
assets_backend |
event assets | ir.ui.view | qweb | Inherits web.assets_backend |
event_event_report_template_badge |
event_event_report_template_badge | ir.ui.view | qweb | New |
event_registration_report_template_badge |
event_registration_report_template_badge | ir.ui.view | qweb | New |
report_event_registration_graph |
report.event.registration.graph | report.event.registration | graph | New |
report_event_registration_pivot |
report.event.registration.pivot | report.event.registration | pivot | New |
view_event_calendar |
event.event.calendar | event.event | calendar | New |
view_event_configuration |
Configure Event | event.config.settings | form | New |
view_event_confirm |
Event Confirmation | event.confirm | form | New |
view_event_form |
event.event.form | event.event | form | New |
view_event_kanban |
event.event.kanban | event.event | kanban | New |
view_event_mail_form |
event.mail.form | event.mail | form | New |
view_event_mail_tree |
event.mail.tree | event.mail | tree | New |
view_event_registration_calendar |
event.registration.calendar | event.registration | calendar | New |
view_event_registration_form |
event.registration.form | event.registration | form | New |
view_event_registration_graph |
event.registration.graph | event.registration | graph | New |
view_event_registration_pivot |
event.registration.pivot | event.registration | pivot | New |
view_event_registration_tree |
event.registration.tree | event.registration | tree | New |
view_event_search |
event.event.search | event.event | search | New |
view_event_tree |
event.event.tree | event.event | tree | New |
view_event_type_form |
event.type.form | event.type | form | New |
view_event_type_tree |
event.type.tree | event.type | tree | New |
view_registration_search |
event.registration.search | event.registration | search | New |
view_report_event_registration_search |
report.event.registration.search | report.event.registration | search | New |
No new fields.
Public methods (1)set_default_auto_confirmation(self, cr, uid, ids, context=None)
No new fields.
Public methods (1)confirm(self)
active
Boolean
default=True
track_visibility='onchange'
address_id
Many2one → res.partner
default=<expr>
readonly=False
states={'done': [('readonly', True)]}
string='Location'
args: 'res.partner'
auto_confirm
Boolean
compute='_compute_auto_confirm'
string='Confirmation not required'
badge_back
Html
string='Badge Back'
badge_front
Html
string='Badge Front'
badge_innerleft
Html
string='Badge Innner Left'
badge_innerright
Html
string='Badge Inner Right'
color
Integer
company_id
Many2one → res.company
change_default=True
default=<expr>
readonly=False
required=False
states={'done': [('readonly', True)]}
string='Company'
args: 'res.company'
country_id
Many2one → res.country
related='address_id.country_id'
store=True
args: 'res.country', 'Country'
date_begin
Datetime
required=True
states={'done': [('readonly', True)]}
string='Start Date'
track_visibility='onchange'
date_begin_located
Datetime
compute='_compute_date_begin_tz'
string='Start Date Located'
date_end
Datetime
required=True
states={'done': [('readonly', True)]}
string='End Date'
track_visibility='onchange'
date_end_located
Datetime
compute='_compute_date_end_tz'
string='End Date Located'
date_tz
Selection
default=<expr>
string='Timezone'
args: '_tz_get'
description
Html
oldname='note'
readonly=False
states={'done': [('readonly', True)]}
string='Description'
translate=True
event_logo
Html
string='Event Logo'
event_mail_ids
One2many → event.mail
default=<expr>
string='Mail Schedule'
args: 'event.mail', 'event_id'
event_type_id
Many2one → event.type
oldname='type'
readonly=False
states={'done': [('readonly', True)]}
string='Category'
args: 'event.type'
name
Char
readonly=False
required=True
states={'done': [('readonly', True)]}
string='Event Name'
translate=True
organizer_id
Many2one → res.partner
default=<expr>
string='Organizer'
args: 'res.partner'
registration_ids
One2many → event.registration
readonly=False
states={'done': [('readonly', True)]}
string='Attendees'
args: 'event.registration', 'event_id'
reply_to
Char
help="The email address of the organizer is likely to be put here, with the effect to be in the 'Reply-To' of the mails sent automatically at event or registrations confirmation. You can also put the email address of your mail gateway if you use one."
readonly=False
states={'done': [('readonly', True)]}
args: 'Reply-To Email'
seats_availability
Selection
default='unlimited'
required=True
args: [('limited', 'Limited'), ('unlimited', 'Unlimited')], 'Maximum Attendees'
seats_available
Integer
compute='_compute_seats'
oldname='register_avail'
readonly=True
store=True
string='Maximum Attendees'
seats_expected
Integer
compute='_compute_seats'
readonly=True
string='Number of Expected Attendees'
seats_max
Integer
help='For each event you can define a maximum registration of seats(number of attendees), above this numbers the registrations are not accepted.'
oldname='register_max'
readonly=True
states={'draft': [('readonly', False)], 'confirm': [('readonly', False)]}
string='Maximum Attendees Number'
seats_min
Integer
help='For each event you can define a minimum reserved seats (number of attendees), if it does not reach the mentioned registrations the event can not be confirmed (keep 0 to ignore this rule)'
oldname='register_min'
string='Minimum Attendees'
seats_reserved
Integer
compute='_compute_seats'
oldname='register_current'
readonly=True
store=True
string='Reserved Seats'
seats_unconfirmed
Integer
compute='_compute_seats'
oldname='register_prospect'
readonly=True
store=True
string='Unconfirmed Seat Reservations'
seats_used
Integer
compute='_compute_seats'
oldname='register_attended'
readonly=True
store=True
string='Number of Participants'
state
Selection
copy=False
default='draft'
help="If event is created, the status is 'Draft'. If event is confirmed for the particular dates the status is set to 'Confirmed'. If the event is over, the status is set to 'Done'. If event is cancelled the status is set to 'Cancelled'."
readonly=True
required=True
string='Status'
args: [('draft', 'Unconfirmed'), ('cancel', 'Cancelled'), ('confirm', 'Confirmed'), ('done', 'Done')]
user_id
Many2one → res.users
default=<expr>
readonly=False
states={'done': [('readonly', True)]}
string='Responsible'
args: 'res.users'
action_event_registration_report(self)
button_cancel(self)
button_confirm(self)
button_done(self)
button_draft(self)
create(self, vals)
mail_attendees(self, template_id, force_send=False, filter_func=<expr>)
name_get(self)
write(self, vals)
done
Boolean
compute='_compute_done'
store=True
args: 'Sent'
event_id
Many2one → event.event
ondelete='cascade'
required=True
string='Event'
args: 'event.event'
interval_nbr
Integer
default=1
args: 'Interval'
interval_type
Selection
default='before_event'
required=True
string='When to Run '
args: [('after_sub', 'After each subscription'), ('before_event', 'Before the event'), ('after_event', 'After the event')]
interval_unit
Selection
default='hours'
required=True
string='Unit'
args: [('now', 'Immediately'), ('hours', 'Hour(s)'), ('days', 'Day(s)'), ('weeks', 'Week(s)'), ('months', 'Month(s)')]
mail_registration_ids
One2many → event.mail.registration
mail_sent
Boolean
scheduled_date
Datetime
compute='_compute_scheduled_date'
store=True
args: 'Scheduled Sent Mail'
sequence
Integer
template_id
Many2one → mail.template
domain=[('model', '=', 'event.registration')]
help='This field contains the template of the mail that will be automatically sent'
ondelete='restrict'
required=True
string='Email to Send'
args: 'mail.template'
execute(self)
run(self, autocommit=False)
mail_sent
Boolean
registration_id
Many2one → event.registration
ondelete='cascade'
required=True
args: 'event.registration', 'Attendee'
scheduled_date
Datetime
compute='_compute_scheduled_date'
store=True
args: 'Scheduled Time'
scheduler_id
Many2one → event.mail
ondelete='cascade'
required=True
args: 'event.mail', 'Mail Scheduler'
execute(self)
company_id
Many2one → res.company
readonly=True
related='event_id.company_id'
states={'draft': [('readonly', False)]}
store=True
string='Company'
args: 'res.company'
date_closed
Datetime
readonly=True
string='Attended Date'
date_open
Datetime
default=<expr>
readonly=True
string='Registration Date'
email
Char
string='Email'
event_begin_date
Datetime
readonly=True
related='event_id.date_begin'
string='Event Start Date'
event_end_date
Datetime
readonly=True
related='event_id.date_end'
string='Event End Date'
event_id
Many2one → event.event
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Event'
args: 'event.event'
name
Char
index=True
string='Attendee Name'
origin
Char
help='Reference of the document that created the registration, for example a sale order'
readonly=True
string='Source Document'
partner_id
Many2one → res.partner
states={'done': [('readonly', True)]}
string='Contact'
args: 'res.partner'
phone
Char
string='Phone'
state
Selection
copy=False
default='draft'
readonly=True
string='Status'
track_visibility='onchange'
args: [('draft', 'Unconfirmed'), ('cancel', 'Cancelled'), ('open', 'Confirmed'), ('done', 'Attended')]
action_send_badge_email(self)
button_reg_cancel(self)
button_reg_close(self)
confirm_registration(self)
create(self, vals)
do_draft(self)
message_get_suggested_recipients(self)
default_registration_max
Integer
default=0
help='It will select this default maximum value when you choose this event'
args: 'Default Maximum Registration'
default_registration_min
Integer
default=0
help='It will select this default minimum value when you choose this event'
args: 'Default Minimum Registration'
default_reply_to
Char
name
Char
required=True
translate=True
args: 'Event Type'
No public methods.
cancel_state
Integer
company_id
Many2one → res.company
readonly=True
args: 'res.company', 'Company'
confirm_state
Integer
create_date
Datetime
readonly=True
args: 'Creation Date'
draft_state
Integer
event_date
Datetime
readonly=True
args: 'Event Date'
event_id
Many2one → event.event
required=True
args: 'event.event', 'Event'
event_state
Selection
readonly=True
required=True
args: [('draft', 'Draft'), ('confirm', 'Confirmed'), ('done', 'Done'), ('cancel', 'Cancelled')], 'Event State'
event_type_id
Many2one → event.type
name_registration
Char
readonly=True
args: 'Participant / Contact Name'
nbevent
Integer
nbregistration
Integer
registration_state
Selection
readonly=True
required=True
args: [('draft', 'Draft'), ('confirm', 'Confirmed'), ('done', 'Attended'), ('cancel', 'Cancelled')], 'Registration State'
seats_max
Integer
user_id
Many2one → res.users
readonly=True
args: 'res.users', 'Event Responsible'
init(self, cr)
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/8.0/event |
| VERSION | |
| VERSION | 0.1 |
| CATEGORY | |
| CATEGORY | Tools |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | OpenERP SA |
| MAINTAINERS | |
| MAINTAINERS | OpenERP SA |
| COMMITTERS | |
| COMMITTERS | Raphael Collet, Odoo Translation Bot, Christophe Matthieu, Martin Trigaux, Foram Katharotiya (OpenERP), Fabien Pinckaers, Antony Lesuisse, Olivier Dony, Thibault Delavallée, Vo Minh Thu, Launchpad Translations on behalf of openerp, Quentin (OpenERP), Denis Ledoux, Fabien Meghazi, ggh-openerp, Christophe Simonis, Xavier Morel, Goffin Simon, Anael Closson, Vishmita, RGA(OpenERP), Kersten Jeremy, Paramjit Singh Sahota, Nicolas Lempereur, Hiral Patel (OpenERP), Richard Mathot, Géry Debongnie, Aaron Bohy, Pariket Trivedi, Richard Mathot (OpenERP), ged-odoo, Jeremy Kersten, ima-openerp, Gery Debongnie, Randhir Mayatra rma-openerp, sgo@tinyerp.com, Yogesh Parekh (OpenERP), Sunil Sharma (OpenERP) |
| WEBSITE | |
| WEBSITE | https://www.odoo.com/page/events |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-05 23:45:39 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - base_setup - base - web_kanban - web - board - email_template - marketing |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | Organization and management of Events. ====================================== The event module allows you to efficiently organise events and all related tasks: planification, registration tracking, attendances, etc. Key Features ------------ * Manage your Events and Registrations * Use emails to automatically confirm and send acknowledgements for any event registration |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
assets_backend |
event assets | ir.ui.view | qweb | Inherits web.assets_backend |
report_event_registration_graph |
report.event.registration.graph | report.event.registration | graph | New |
view_event_calendar |
event.event.calendar | event.event | calendar | New |
view_event_confirm |
Event Confirmation | event.confirm | form | New |
view_event_form |
Events | event.event | form | New |
view_event_kanban |
event.event.kanban | event.event | kanban | New |
view_event_partner_info_form |
res.partner.event.info.inherit | res.partner | field | Inherits base.view_partner_form |
view_event_registration_calendar |
event.registration.calendar | event.registration | calendar | New |
view_event_registration_form |
event.registration.form | event.registration | form | New |
view_event_registration_graph |
Registration Graph | event.registration | graph | New |
view_event_registration_tree |
event.registration.tree | event.registration | tree | New |
view_event_search |
Events | event.event | search | New |
view_event_tree |
event.event.tree | event.event | tree | New |
view_event_type_form |
Event type | event.type | form | New |
view_event_type_tree |
Event type | event.type | tree | New |
view_registration_search |
Registrations | event.registration | search | New |
view_report_event_registration_search |
report.event.registration.search | report.event.registration | search | New |
No new fields.
Public methods (1)confirm(self)
address_id
Many2one → res.partner
default=<expr>
readonly=False
states={'done': [('readonly', True)]}
string='Location'
args: 'res.partner'
company_id
Many2one → res.company
change_default=True
default=<expr>
readonly=False
required=False
states={'done': [('readonly', True)]}
string='Company'
args: 'res.company'
count_registrations
Integer
compute='_count_registrations'
string='Registrations'
country_id
Many2one → res.country
compute='_compute_country'
store=True
string='Country'
args: 'res.country'
date_begin
Datetime
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Start Date'
date_begin_located
Datetime
compute='_compute_date_begin_tz'
string='Start Date Located'
date_end
Datetime
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='End Date'
date_end_located
Datetime
compute='_compute_date_end_tz'
string='End Date Located'
date_tz
Selection
default=<expr>
string='Timezone'
args: '_tz_get'
description
Html
oldname='note'
readonly=False
states={'done': [('readonly', True)]}
string='Description'
translate=True
email_confirmation_id
Many2one → email.template
domain=[('model', '=', 'event.registration')]
help='If you set an email template, each participant will receive this email announcing the confirmation of the event.'
string='Event Confirmation Email'
args: 'email.template'
email_registration_id
Many2one → email.template
domain=[('model', '=', 'event.registration')]
help='This field contains the template of the mail that will be automatically sent each time a registration for this event is confirmed.'
string='Registration Confirmation Email'
args: 'email.template'
is_subscribed
Boolean
compute='_compute_subscribe'
string='Subscribed'
name
Char
readonly=False
required=True
states={'done': [('readonly', True)]}
string='Event Name'
translate=True
organizer_id
Many2one → res.partner
default=<expr>
string='Organizer'
args: 'res.partner'
registration_ids
One2many → event.registration
readonly=False
states={'done': [('readonly', True)]}
string='Registrations'
args: 'event.registration', 'event_id'
reply_to
Char
help="The email address of the organizer is likely to be put here, with the effect to be in the 'Reply-To' of the mails sent automatically at event or registrations confirmation. You can also put the email address of your mail gateway if you use one."
readonly=False
states={'done': [('readonly', True)]}
string='Reply-To Email'
seats_available
Integer
compute='_compute_seats'
oldname='register_avail'
readonly=True
store=True
string='Available Seats'
seats_max
Integer
help='You can for each event define a maximum registration level. If you have too much registrations you are not able to confirm your event. (put 0 to ignore this rule )'
oldname='register_max'
readonly=True
states={'draft': [('readonly', False)]}
string='Maximum Available Seats'
seats_min
Integer
help='You can for each event define a minimum registration level. If you do not enough registrations you are not able to confirm your event. (put 0 to ignore this rule )'
oldname='register_min'
readonly=True
states={'draft': [('readonly', False)]}
string='Minimum Reserved Seats'
seats_reserved
Integer
compute='_compute_seats'
oldname='register_current'
readonly=True
store=True
string='Reserved Seats'
seats_unconfirmed
Integer
compute='_compute_seats'
oldname='register_prospect'
readonly=True
store=True
string='Unconfirmed Seat Reservations'
seats_used
Integer
compute='_compute_seats'
oldname='register_attended'
readonly=True
store=True
string='Number of Participations'
state
Selection
copy=False
default='draft'
help="If event is created, the status is 'Draft'. If event is confirmed for the particular dates the status is set to 'Confirmed'. If the event is over, the status is set to 'Done'. If event is cancelled the status is set to 'Cancelled'."
readonly=True
required=True
string='Status'
args: [('draft', 'Unconfirmed'), ('cancel', 'Cancelled'), ('confirm', 'Confirmed'), ('done', 'Done')]
type
Many2one → event.type
readonly=False
states={'done': [('readonly', True)]}
string='Type of Event'
args: 'event.type'
user_id
Many2one → res.users
default=<expr>
readonly=False
states={'done': [('readonly', True)]}
string='Responsible User'
args: 'res.users'
button_cancel(self)
button_confirm(self)
button_done(self)
button_draft(self)
confirm_event(self)
name_get(self)
subscribe_to_event(self)
unsubscribe_to_event(self)
company_id
Many2one → res.company
readonly=True
related='event_id.company_id'
states={'draft': [('readonly', False)]}
store=True
string='Company'
args: 'res.company'
date_closed
Datetime
readonly=True
string='Attended Date'
date_open
Datetime
readonly=True
string='Registration Date'
email
Char
string='Email'
event_begin_date
Datetime
readonly=True
related='event_id.date_begin'
string='Event Start Date'
event_end_date
Datetime
readonly=True
related='event_id.date_end'
string='Event End Date'
event_id
Many2one → event.event
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Event'
args: 'event.event'
log_ids
One2many → mail.message
domain=[('model', '=', _name)]
string='Logs'
args: 'mail.message', 'res_id'
name
Char
select=True
string='Name'
nb_register
Integer
default=1
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Number of Participants'
origin
Char
help='Reference of the sales order which created the registration'
readonly=True
string='Source Document'
partner_id
Many2one → res.partner
states={'done': [('readonly', True)]}
string='Partner'
args: 'res.partner'
phone
Char
string='Phone'
reply_to
Char
readonly=True
related='event_id.reply_to'
string='Reply-to Email'
state
Selection
copy=False
default='draft'
readonly=True
string='Status'
args: [('draft', 'Unconfirmed'), ('cancel', 'Cancelled'), ('open', 'Confirmed'), ('done', 'Attended')]
user_id
Many2one → res.users
states={'done': [('readonly', True)]}
string='User'
args: 'res.users'
button_reg_cancel(self)
button_reg_close(self)
confirm_registration(self)
do_draft(self)
mail_user(self)
mail_user_confirm(self)
message_get_suggested_recipients(self)
registration_open(self)
default_email_event
Many2one → email.template
help='It will select this default confirmation event mail value when you choose this event'
string='Event Confirmation Email'
args: 'email.template'
default_email_registration
Many2one → email.template
help='It will select this default confirmation registration mail value when you choose this event'
string='Registration Confirmation Email'
args: 'email.template'
default_registration_max
Integer
default=0
help='It will select this default maximum value when you choose this event'
string='Default Maximum Registration'
default_registration_min
Integer
default=0
help='It will select this default minimum value when you choose this event'
string='Default Minimum Registration'
default_reply_to
Char
help="The email address of the organizer which is put in the 'Reply-To' of all emails sent automatically at event or registrations confirmation. You can also put your email address of your mail gateway if you use one."
string='Default Reply-To'
name
Char
required=True
string='Event Type'
No public methods.
company_id
Many2one → res.company
readonly=True
args: 'res.company', 'Company'
confirm_state
Integer
draft_state
Integer
event_date
Datetime
readonly=True
args: 'Event Date'
event_id
Many2one → event.event
required=True
args: 'event.event', 'Event'
event_state
Selection
readonly=True
required=True
args: [('draft', 'Draft'), ('confirm', 'Confirmed'), ('done', 'Done'), ('cancel', 'Cancelled')], 'Event State'
event_type
Many2one → event.type
name_registration
Char
readonly=True
args: 'Participant / Contact Name'
nbevent
Integer
nbregistration
Integer
registration_state
Selection
readonly=True
required=True
args: [('draft', 'Draft'), ('confirm', 'Confirmed'), ('done', 'Attended'), ('cancel', 'Cancelled')], 'Registration State'
seats_max
Integer
user_id
Many2one → res.users
readonly=True
args: 'res.users', 'Event Responsible'
user_id_registration
Many2one → res.users
readonly=True
args: 'res.users', 'Register'
init(self, cr)
speaker
Boolean
help='Check this box if this contact is a speaker.'
No public methods.
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
board_associations_manager_form |
board.associations.manager.form | board.board | form | New |
report_event_registration_graph |
report.event.registration.graph | report.event.registration | graph | New |
report_event_registration_tree |
report.event.registration.tree | report.event.registration | tree | New |
view_event_calendar |
event.event.calendar | event.event | calendar | New |
view_event_confirm |
Event Confirmation | event.confirm | form | New |
view_event_form |
Events | event.event | form | New |
view_event_kanban |
event.event.kanban | event.event | kanban | New |
view_event_partner_info_form |
res.partner.event.info.inherit | res.partner | field | Inherits base.view_partner_form |
view_event_registration_calendar |
event.registration.calendar | event.registration | calendar | New |
view_event_registration_form |
event.registration.form | event.registration | form | New |
view_event_registration_graph |
Registration Graph | event.registration | graph | New |
view_event_registration_tree |
event.registration.tree | event.registration | tree | New |
view_event_search |
Events | event.event | search | New |
view_event_tree |
event.event.tree | event.event | tree | New |
view_event_type_form |
Event type | event.type | form | New |
view_event_type_tree |
Event type | event.type | tree | New |
view_registration_search |
Registrations | event.registration | search | New |
view_report_event_reg_graph |
Registration Event report | report.event.registration | graph | New |
view_report_event_registration_search |
report.event.registration.search | report.event.registration | search | New |
No models found for this module.
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/6.1/event |
| VERSION | |
| VERSION | 0.1 |
| CATEGORY | |
| CATEGORY | Tools |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | OpenERP SA |
| MAINTAINERS | |
| MAINTAINERS | OpenERP SA |
| COMMITTERS | |
| COMMITTERS | Raphael Collet, Rucha (Open ERP), Stephane Wirtel, DBR (OpenERP), Harry (OpenERP), Fabien Pinckaers, Antony Lesuisse, Meera Trambadia (OpenERP), Olivier Dony, Thibault Delavallée, Vo Minh Thu, Launchpad Translations on behalf of openerp, Quentin (OpenERP), Kuldeep Joshi (OpenERP), vro, niv-openerp, Christophe Simonis, Ujjvala Collins (OpenERP), Xavier Morel, Khushboo Bhatt (Open ERP), Amit (OpenERP), Thibault Francois, Maxime Chambreuil, Carlos Vásquez, ksa (Open ERP), Els Van Vossel, Israel Fermin Montilla, Rifakat Haradwala (Open ERP), Hardik Ansodariy (OpenERP), ssu, Yogesh (OpenERP), ron@tinyerp.com, mtr, Tejas (OpenERP), RavishchanraMurari (Open ERP), YSA (Openerp) |
| WEBSITE | |
| WEBSITE | |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-05 23:41:35 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - crm - base_action_rule - base - base_tools - base_setup - process - base_calendar - resource - board - fetchmail - account - product - decimal_precision - analytic - edi - email_template - marketing |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION |
Organization and management of Events.
======================================
This module allows you
* to manage your events and their registrations
* to use emails to automatically confirm and send acknowledgements for any registration to an event
* ...
Note that:
- You can define new types of events in
Association / Configuration / Types of Events
|
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
board_associations_manager_form |
board.associations.manager.form | board.board | form | New |
report_event_registration_graph |
report.event.registration.graph | report.event.registration | graph | New |
report_event_registration_tree |
report.event.registration.tree | report.event.registration | tree | New |
view_event_calendar |
event.event.calendar | event.event | calendar | New |
view_event_confirm |
Event Confirmation | event.confirm | form | New |
view_event_confirm_registration |
Registration Confirmation | event.confirm.registration | form | New |
view_event_form |
Events | event.event | form | New |
view_event_graph |
Event Graph | event.event | graph | New |
view_event_make_invoice |
event.make.invoice | event.make.invoice | form | New |
view_event_partner_info_form |
res.partner.event.info.inherit | res.partner | page | Inherits base.view_partner_form |
view_event_registration_calendar |
event.registration.calendar | event.registration | calendar | New |
view_event_registration_form |
event.registration.form | event.registration | form | New |
view_event_registration_graph |
Registration Graph | event.registration | graph | New |
view_event_registration_tree |
event.registration.tree | event.registration | tree | New |
view_event_search |
Events | event.event | search | New |
view_event_tree |
event.event.tree | event.event | tree | New |
view_event_type_form |
Event type | event.type | form | New |
view_event_type_tree |
Event type | event.type | tree | New |
view_partner_event_registration |
Partner event registration | partner.event.registration | form | New |
view_registration_search |
Registrations | event.registration | search | New |
view_report_event_reg_graph |
Registration Event report | report.event.registration | graph | New |
view_report_event_registration_search |
report.event.registration.search | report.event.registration | search | New |
view_speaker_partner_info_form |
res.partner.speaker.info.inherit | res.partner | field | Inherits base.view_partner_form |
No models found for this module.