TIP: You can type at any time to perform a new search.
Events Organization
event · odoo/odoo
- Repository
- odoo/odoo · module folder
- Module version
- 1.9
- Category
- Marketing/Events
- Folder size
- 18.2 MB
- License
- LGPL-3
- Application
- No
- Auto-installable
- No
- Website
- https://www.odoo.com/app/events
- Last tracking update
- 2026-08-15 22:44:18
- Authors
- Odoo S.A.
- Maintainers
- Odoo S.A.
- Committers
- Xavier Morel, Raphael Collet, Thibault Delavallée, Odoo Translation Bot, Nicolas Martinelli, Aaron Bohy, Jeremy Kersten, Damien Bouvy, qsm-odoo, Julien Castiaux, Adrien Dieudonné, Tiffany Chang (tic), Gorash, Mathieu Duckerts-Antoine, William Braeckman, Florian Charlier, 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, Pierre Pulinckx, Bastien PIERRE, Michaël Mattiello, Krzysztof Magusiak (krma), Tyler Landivar (tylan), mojem, defl, bikh-odoo, josm-odoo, adip-odoo, Augustin (duau), Yagnik ✗ (yagp), Karna, assh-odoo, saurabh, alan-odoo, Farah (ahmfa), ELCO, jsum-odoo, chpa-odoo, Claire Nguyen (clan), Romain ROSANO (rros)
- Odoo dependencies
- Python dependencies
- None
- System dependencies
- None
- Required by
- crm_event, event_booth, event_crm, event_email_reminder, event_min_seat, event_product, event_registration_cancel_reason, event_sms, event_stage_cancelled, hr_skills_event, mass_mailing_event, mass_mailing_event_sms, partner_event, test_event_full, website_event
- 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
Code Analysis ⓘ
Views touched (65)
| 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 | list | 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 | list | 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 | search | 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 | form | 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 | list | 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 | form | Inherits mail.res_config_settings_view_form |
res_partner_view_tree |
view.res.partner.form.event.inherited | res.partner | form | 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 |
HTTP endpoints (3)
| Route(s) | Handler | Auth | Type | Methods | Flags |
|---|---|---|---|---|---|
/event/<model("event.event"):event>/ics |
EventController.event_ics_file |
public | http | ALL | sudo website |
/event/<int:event_id>/my_tickets |
EventController.event_my_tickets |
public | http | ALL | sudo |
/event/init_barcode_interface |
EventController.init_barcode_interface |
user | jsonrpc | ALL |
Models touched (19)
New fields (48)
-
activeBooleandefault=True -
address_idMany2one → res.partnercheck_company=Truedefault=<expr>string='Venue'tracking=True args: 'res.partner' -
address_inlineCharcompute='_compute_address_inline'compute_sudo=Truestring='Venue (formatted for one line uses)' -
address_searchMany2one → res.partnercompute='_compute_address_search'search='_search_address_search'string='Address' args: 'res.partner' -
badge_formatSelectiondefault='A6'required=Trueselection=[('A4_french_fold', 'A4 foldable'), ('A6', 'A6'), ('four_per_sheet', '4 per sheet')]string='Badge Dimension' -
badge_imageImagemax_height=1024max_width=1024 args: 'Badge Background' -
company_idMany2one → res.companychange_default=Truedefault=<expr>required=Falsestring='Company' args: 'res.company' -
country_idMany2one → res.countryreadonly=Falserelated='address_id.country_id'store=True args: 'res.country', 'Country' -
date_beginDatetimehelp='When the event is scheduled to take place (expressed in your local timezone on the form view).'required=Truestring='Start Date'tracking=True -
date_endDatetimerequired=Truestring='End Date'tracking=True -
date_tzSelectioncompute='_compute_date_tz'help='Indicates the timezone in which the event dates/times will be displayed on the website.'precompute=Truereadonly=Falserequired=Truestore=Truestring='Display Timezone' args: _tz_get -
descriptionHtmldefault=_default_descriptionsanitize_attributes=Falsesanitize_form=Falsestring='Description'translate=html_translate -
event_mail_idsOne2many → event.mailcompute='_compute_event_mail_ids'copy=Truereadonly=Falsestore=Truestring='Mail Schedule' args: 'event.mail', 'event_id' -
event_registrations_openBooleancompute='_compute_event_registrations_open'compute_sudo=Truehelp='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_outBooleancompute='_compute_event_registrations_sold_out'compute_sudo=Truehelp='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_startedBooleancompute='_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_urlCharcompute='_compute_event_share_url'string='Event Share URL' -
event_slot_countIntegercompute='_compute_event_slot_count' args: 'Slots Count' -
event_slot_idsOne2many → event.slotcopy=True args: 'event.slot', 'event_id', 'Slots' -
event_ticket_idsOne2many → event.event.ticketcompute='_compute_event_ticket_ids'copy=Trueprecompute=Truereadonly=Falsestore=Truestring='Event Ticket' args: 'event.event.ticket', 'event_id' -
event_type_idMany2one → event.typehelp='Choose a template to auto-fill tickets, communications, descriptions and other fields.'ondelete='set null'string='Template' args: 'event.type' -
event_urlCharcompute='_compute_event_url'help='Link where the online event will take place.'readonly=Falsestore=Truestring='Online Event URL' -
general_question_idsMany2many → event.questiondomain=[('once_per_order', '=', True)]string='General Questions' args: 'event.question', 'event_event_event_question_rel' -
is_finishedBooleancompute='_compute_is_finished'search='_search_is_finished' -
is_multi_slotsBooleancopy=Truehelp='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_dayBooleancompute='_compute_field_is_one_day' -
is_ongoingBooleancompute='_compute_is_ongoing'search='_search_is_ongoing' args: 'Is Ongoing' -
kanban_stateSelectioncompute='_compute_kanban_state'copy=Falsedefault='normal'readonly=Falsestore=Truetracking=True args: [('normal', 'In Progress'), ('done', 'Ready for Next Stage'), ('blocked', 'Blocked'), ('cancel', 'Cancelled')] -
langSelectionhelp='All the communication emails sent to attendees will be translated in this language.'string='Language' args: _lang_get -
nameCharrequired=Truestring='Event'translate=True -
noteHtmlcompute='_compute_note'readonly=Falsestore=Truestring='Note' -
organizer_idMany2one → res.partnercheck_company=Truedefault=<expr>string='Organizer'tracking=True args: 'res.partner' -
question_idsMany2many → event.questioncompute='_compute_question_ids'precompute=Truereadonly=Falsestore=Truestring='Questions' args: 'event.question', 'event_event_event_question_rel' -
registration_idsOne2many → event.registrationstring='Attendees' args: 'event.registration', 'event_id' -
registration_properties_definitionPropertiesDefinitionargs: 'Registration Properties' -
seats_availableIntegercompute='_compute_seats'readonly=Truestore=Falsestring='Available Seats' -
seats_limitedBooleancompute='_compute_seats_limited'precompute=Truereadonly=Falserequired=Truestore=True args: 'Limit Attendees' -
seats_maxIntegercompute='_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=Falsestore=Truestring='Maximum Attendees' -
seats_reservedIntegercompute='_compute_seats'readonly=Truestore=Falsestring='Number of Registrations' -
seats_takenIntegercompute='_compute_seats'readonly=Truestore=Falsestring='Number of Taken Seats' -
seats_usedIntegercompute='_compute_seats'readonly=Truestore=Falsestring='Number of Attendees' -
specific_question_idsMany2many → event.questiondomain=[('once_per_order', '=', False)]string='Specific Questions' args: 'event.question', 'event_event_event_question_rel' -
stage_idMany2one → event.stagecopy=Falsedefault=_get_default_stage_idgroup_expand='_read_group_expand_full'ondelete='restrict'tracking=True args: 'event.stage' -
start_sale_datetimeDatetimecompute='_compute_start_sale_date'help='If ticketing is used, contains the earliest starting sale date of tickets.' args: 'Start sale date' -
tag_idsMany2many → event.tagcompute='_compute_tag_ids'readonly=Falsestore=Truestring='Tags' args: 'event.tag' -
ticket_instructionsHtmlcompute='_compute_ticket_instructions'help='This information will be printed on your tickets.'readonly=Falsestore=Truetranslate=True args: 'Ticket Instructions' -
use_barcodeBooleancompute='_compute_use_barcode' -
user_idMany2one → res.usersdefault=<expr>string='Responsible'tracking=True args: 'res.users'
-
action_open_slot_calendar(self) -
action_set_done(self)Action which will move the events into the first next (by sequence) stage defined as "Ended" (if they are not already in an ended stage) -
copy_data(self, default=None) -
default_get(self, fields)@api.model -
get_kiosk_url(self)
New fields (16)
-
colorChardefault='#875A7B' args: 'Color' -
company_idMany2one → res.companyrelated='event_id.company_id' args: 'res.company' -
end_sale_datetimeDatetimestring='Registration End' -
event_idMany2one → event.eventindex=Trueondelete='cascade'required=Truestring='Event' args: 'event.event' -
event_type_idMany2oneondelete='set null'required=False -
is_expiredBooleancompute='_compute_is_expired'string='Is Expired' -
is_launchedBooleancompute='_compute_is_launched'string='Are sales launched' -
is_sold_outBooleancompute='_compute_is_sold_out'help='Whether seats are not available for this ticket.' args: 'Sold Out' -
limit_max_per_orderIntegerdefault=0help='Maximum of this product per order.\nSet to 0 to ignore this rule'string='Limit per Order' -
registration_idsOne2many → event.registrationstring='Registrations' args: 'event.registration', 'event_ticket_id' -
sale_availableBooleancompute='_compute_sale_available'compute_sudo=Truehelp='Whether it is possible to sell these tickets'string='Is Available' -
seats_availableIntegercompute='_compute_seats'store=Falsestring='Available Seats' -
seats_reservedIntegercompute='_compute_seats'store=Falsestring='Reserved Seats' -
seats_takenIntegercompute='_compute_seats'store=Falsestring='Taken Seats' -
seats_usedIntegercompute='_compute_seats'store=Falsestring='Used Seats' -
start_sale_datetimeDatetimestring='Registration Start'
-
default_get(self, fields)@api.model
New fields (15)
-
error_datetimeDatetimeargs: 'Last Error' -
event_idMany2one → event.eventindex=Trueondelete='cascade'required=Truestring='Event' args: 'event.event' -
interval_nbrIntegerdefault=1 args: 'Interval' -
interval_typeSelectiondefault='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=Truestring='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_unitSelectiondefault='hours'required=Truestring='Unit' args: [('now', 'Immediately'), ('hours', 'Hours'), ('days', 'Days'), ('weeks', 'Weeks'), ('months', 'Months')] -
last_registration_idMany2one → event.registrationargs: 'event.registration', 'Last Attendee' -
mail_count_doneIntegercopy=Falsereadonly=True args: '# Sent' -
mail_doneBooleancopy=Falsereadonly=True args: 'Sent' -
mail_registration_idsOne2many → event.mail.registrationhelp='Communication related to event registrations' args: 'event.mail.registration', 'scheduler_id' -
mail_slot_idsOne2many → event.mail.slothelp='Slot-based communication' args: 'event.mail.slot', 'scheduler_id' -
mail_stateSelectioncompute='_compute_mail_state'string='Global communication Status' args: [('running', 'Running'), ('scheduled', 'Scheduled'), ('sent', 'Sent'), ('error', 'Error'), ('cancelled', 'Cancelled')] -
notification_typeSelectioncompute='_compute_notification_type'string='Send' args: [('mail', 'Mail')] -
scheduled_dateDatetimecompute='_compute_scheduled_date'store=True args: 'Schedule Date' -
sequenceIntegerargs: 'Display order' -
template_refReferenceondelete={'mail.template': 'cascade'}required=Trueselection=[('mail.template', 'Mail')]string='Template'
-
execute(self) -
run(self, autocommit=False)@api.modelBackward compatible method, notably if crons are not updated when migrating for some reason. -
schedule_communications(self, autocommit=False)@api.model
New fields (4)
-
mail_sentBooleanargs: 'Mail Sent' -
registration_idMany2one → event.registrationindex=Trueondelete='cascade'required=True args: 'event.registration', 'Attendee' -
scheduled_dateDatetimecompute='_compute_scheduled_date'store=True args: 'Scheduled Time' -
scheduler_idMany2one → event.mailindex=Trueondelete='cascade'required=True args: 'event.mail', 'Mail Scheduler'
-
execute(self)
New fields (6)
-
event_slot_idMany2one → event.slotondelete='cascade'required=True args: 'event.slot', 'Slot' -
last_registration_idMany2one → event.registrationargs: 'event.registration', 'Last Attendee' -
mail_count_doneIntegercopy=Falsereadonly=True args: '# Sent' -
mail_doneBooleancopy=Falsereadonly=True args: 'Sent' -
scheduled_dateDatetimecompute='_compute_scheduled_date'store=True args: 'Schedule Date' -
scheduler_idMany2one → event.mailindex=Trueondelete='cascade'required=True args: 'event.mail', 'Mail Scheduler'
No public methods.
New fields (12)
-
activeBooleandefault=True args: 'Active' -
answer_idsOne2many → event.question.answercopy=True args: 'event.question.answer', 'question_id', 'Answers' -
event_countIntegercompute='_compute_event_count' args: '# Events' -
event_idsMany2many → event.eventcopy=Falsestring='Events' args: 'event.event' -
event_type_idsMany2many → event.typecopy=Falsestring='Event Types' args: 'event.type' -
is_defaultBooleanhelp='Include by default in new events.' args: 'Default question' -
is_mandatory_answerBooleanargs: 'Mandatory Answer' -
is_reusableBooleancompute='_compute_is_reusable'default=Truehelp='Allow this question to be selected and reused for any future event. Always true for default questions.'store=True args: 'Is Reusable' -
once_per_orderBooleanhelp="Check this for order-level questions (e.g., 'Company Name') where the answer is the same for everyone." args: 'Ask once per order' -
question_typeSelectiondefault='simple_choice'required=Truestring='Question Type' args: [('simple_choice', 'Selection'), ('text_box', 'Text Input'), ('name', 'Name'), ('email', 'Email'), ('phone', 'Phone'), ('company_name', 'Company')] -
sequenceIntegerdefault=10 -
titleCharrequired=Truetranslate=True
-
action_event_view(self) -
action_view_question_answers(self)Allow analyzing the attendees answers to event questions in a convenient way: - A graph view showing counts of each suggestion for simple_choice questions (Along with secondary pivot and list views) - A list view showing textual answers values for text_box questions. -
write(self, vals)We add a check to prevent changing the question_type of a question that already has answers. Indeed, it would mess up the event.registration.answer (answer type not matching the question type).
New fields (3)
-
nameCharrequired=Truetranslate=True args: 'Answer' -
question_idMany2one → event.questionindex=Trueondelete='cascade'required=True args: 'event.question' -
sequenceIntegerdefault=10
No public methods.
New fields (26)
-
activeBooleandefault=True -
barcodeCharcopy=Falsedefault=<expr>readonly=Truestring='Barcode' -
company_idMany2one → res.companyreadonly=Falserelated='event_id.company_id'store=Truestring='Company' args: 'res.company' -
company_nameCharcompute='_compute_company_name'readonly=Falsestore=Truestring='Company Name'tracking=5 -
date_closedDatetimecompute='_compute_date_closed'readonly=Falsestore=Truestring='Attended Date' -
emailCharcompute='_compute_email'readonly=Falsestore=Truestring='Email'tracking=3 -
event_begin_dateDatetimecompute='_compute_event_begin_date'search='_search_event_begin_date' args: 'Event Start Date' -
event_date_rangeCharcompute='_compute_date_range' args: 'Date Range' -
event_end_dateDatetimecompute='_compute_event_end_date'search='_search_event_end_date' args: 'Event End Date' -
event_idMany2one → event.eventindex=Truerequired=Truestring='Event'tracking=True args: 'event.event' -
event_organizer_idMany2onereadonly=Truerelated='event_id.organizer_id'string='Event Organizer' -
event_slot_idMany2one → event.slotdomain="[('event_id', '=', event_id)]"index='btree_not_null'ondelete='restrict'string='Slot'tracking=True args: 'event.slot' -
event_ticket_idMany2one → event.event.ticketindex='btree_not_null'ondelete='restrict'string='Ticket Type'tracking=True args: 'event.event.ticket' -
event_user_idMany2onereadonly=Truerelated='event_id.user_id'string='Event Responsible' -
is_multi_slotsBooleanrelated='event_id.is_multi_slots'string='Is Event Multi Slots' -
mail_registration_idsOne2many → event.mail.registrationreadonly=Truestring='Scheduler Emails' args: 'event.mail.registration', 'registration_id' -
nameCharcompute='_compute_name'index='trigram'readonly=Falsestore=Truestring='Attendee Name'tracking=2 -
partner_idMany2one → res.partnerindex='btree_not_null'string='Booked by'tracking=1 args: 'res.partner' -
phoneCharcompute='_compute_phone'readonly=Falsestore=Truestring='Phone'tracking=4 -
registration_answer_choice_idsOne2many → event.registration.answerdomain=[('question_type', '=', 'simple_choice')]string='Attendee Selection Answers' args: 'event.registration.answer', 'registration_id' -
registration_answer_idsOne2many → event.registration.answerstring='Attendee Answers' args: 'event.registration.answer', 'registration_id' -
registration_propertiesPropertiescopy=Truedefinition='event_id.registration_properties_definition' args: 'Properties' -
stateSelectioncopy=Falsedefault='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=Truestring='Status'tracking=6 args: [('draft', 'Unconfirmed'), ('open', 'Registered'), ('done', 'Attended'), ('cancel', 'Cancelled')] -
utm_campaign_idMany2one → utm.campaignindex=Trueondelete='set null' args: 'utm.campaign', 'Campaign' -
utm_medium_idMany2one → utm.mediumindex=Trueondelete='set null' args: 'utm.medium', 'Medium' -
utm_source_idMany2one → utm.sourceindex=Trueondelete='set null' args: 'utm.source', 'Source'
-
action_cancel(self) -
action_confirm(self) -
action_send_badge_email(self)Open a window to compose an email, with the template - 'event_badge' message loaded by default -
action_set_done(self)Close Registration -
action_set_draft(self) -
create(self, vals_list)@api.model_create_multi -
default_get(self, fields)@api.model -
register_attendee(self, barcode, event_id)@api.model -
write(self, vals)
New fields (7)
-
event_idMany2one → event.eventrelated='registration_id.event_id' args: 'event.event' -
partner_idMany2one → res.partnerrelated='registration_id.partner_id' args: 'res.partner' -
question_idMany2one → event.questiondomain="[('event_ids', 'in', event_id)]"ondelete='restrict'required=True args: 'event.question' -
question_typeSelectionrelated='question_id.question_type' -
registration_idMany2one → event.registrationindex=Trueondelete='cascade'required=True args: 'event.registration' -
value_answer_idMany2one → event.question.answerstring='Suggested answer' args: 'event.question.answer' -
value_text_boxTextargs: 'Text answer'
No public methods.
New fields (14)
-
colorIntegerdefault=0 args: 'Color' -
dateDaterequired=True args: 'Date' -
date_tzSelectionrelated='event_id.date_tz' -
end_datetimeDatetimecompute='_compute_datetimes'store=True args: 'End Datetime' -
end_hourFloathelp='Expressed in the event timezone.'required=True args: 'Ending Hour' -
event_idMany2one → event.eventindex=Trueondelete='cascade'required=True args: 'event.event', 'Event' -
is_sold_outBooleancompute='_compute_is_sold_out'help='Whether seats are sold out for this slot.' args: 'Sold Out' -
registration_idsOne2many → event.registrationstring='Attendees' args: 'event.registration', 'event_slot_id' -
seats_availableIntegercompute='_compute_seats'readonly=Truestore=Falsestring='Available Seats' -
seats_reservedIntegercompute='_compute_seats'readonly=Truestore=Falsestring='Number of Registrations' -
seats_takenIntegercompute='_compute_seats'readonly=Truestore=Falsestring='Number of Taken Seats' -
seats_usedIntegercompute='_compute_seats'readonly=Truestore=Falsestring='Number of Attendees' -
start_datetimeDatetimecompute='_compute_datetimes'store=True args: 'Start Datetime' -
start_hourFloathelp='Expressed in the event timezone.'required=True args: 'Starting Hour'
No public methods.
New fields (5)
-
descriptionTextstring='Stage description'translate=True -
foldBooleandefault=Falsestring='Folded in Kanban' -
nameCharrequired=Truestring='Stage Name'translate=True -
pipe_endBooleandefault=Falsehelp='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' -
sequenceIntegerdefault=1 args: 'Sequence'
No public methods.
New fields (5)
-
category_idMany2one → event.tag.categoryindex=Trueondelete='cascade'required=Truestring='Category' args: 'event.tag.category' -
category_sequenceIntegerrelated='category_id.sequence'store=Truestring='Category Sequence' -
colorIntegerdefault=<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' -
nameCharrequired=Truetranslate=True args: 'Name' -
sequenceIntegerdefault=0 args: 'Sequence'
No public methods.
New fields (3)
-
nameCharrequired=Truetranslate=True args: 'Name' -
sequenceIntegerdefault=_default_sequence args: 'Sequence' -
tag_idsOne2many → event.tagstring='Tags' args: 'event.tag', 'category_id'
No public methods.
New fields (11)
-
default_timezoneSelectiondefault=<expr>string='Timezone' args: _tz_get -
event_type_mail_idsOne2many → event.type.maildefault=_default_event_mail_type_idsstring='Mail Schedule' args: 'event.type.mail', 'event_type_id' -
event_type_ticket_idsOne2many → event.type.ticketstring='Tickets' args: 'event.type.ticket', 'event_type_id' -
has_seats_limitationBooleanargs: 'Limited Seats' -
nameCharrequired=Truetranslate=True args: 'Event Template' -
noteHtmlstring='Note' -
question_idsMany2many → event.questioncopy=Truedefault=_default_question_idsstring='Questions' args: 'event.question' -
seats_maxIntegercompute='_compute_seats_max'help='It will select this default maximum value when you choose this event'readonly=Falsestore=True args: 'Maximum Registrations' -
sequenceIntegerdefault=10 -
tag_idsMany2many → event.tagstring='Tags' args: 'event.tag' -
ticket_instructionsHtmlhelp='This information will be printed on your tickets.'translate=True args: 'Ticket Instructions'
No public methods.
New fields (6)
-
event_type_idMany2one → event.typeondelete='cascade'required=Truestring='Event Type' args: 'event.type' -
interval_nbrIntegerdefault=1 args: 'Interval' -
interval_typeSelectiondefault='before_event'required=Truestring='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_unitSelectiondefault='hours'required=Truestring='Unit' args: [('now', 'Immediately'), ('hours', 'Hours'), ('days', 'Days'), ('weeks', 'Weeks'), ('months', 'Months')] -
notification_typeSelectioncompute='_compute_notification_type'string='Send' args: [('mail', 'Mail')] -
template_refReferenceondelete={'mail.template': 'cascade'}required=Trueselection=[('mail.template', 'Mail')]string='Template'
No public methods.
New fields (6)
-
descriptionTexthelp='A description of the ticket that you want to communicate to your customers.'translate=True args: 'Description' -
event_type_idMany2one → event.typeondelete='cascade'required=Truestring='Event Category' args: 'event.type' -
nameChardefault=<expr>required=Truestring='Name'translate=True -
seats_limitedBooleancompute='_compute_seats_limited'readonly=Truestore=Truestring='Limit Attendees' -
seats_maxIntegerhelp='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' -
sequenceIntegerdefault=10 args: 'Sequence'
No public methods.
New fields (0)
No new fields.
Public methods (1)-
unlink(self)
New fields (13)
-
barcode_nomenclature_idMany2one → barcode.nomenclaturereadonly=Falserelated='company_id.nomenclature_id' args: 'barcode.nomenclature' -
google_maps_static_api_keyCharcompute='_compute_maps_static_api_key'config_parameter='google_maps.signed_static_api_key'readonly=Falsestore=True args: 'Google Maps API key' -
google_maps_static_api_secretCharcompute='_compute_maps_static_api_secret'config_parameter='google_maps.signed_static_api_secret'readonly=Falsestore=True args: 'Google Maps API secret' -
module_event_boothBooleanargs: 'Booth Management' -
module_event_saleBooleanargs: 'Tickets with Sale' -
module_pos_eventBooleanargs: 'Tickets with PoS' -
module_website_event_exhibitorBooleanargs: 'Advanced Sponsors' -
module_website_event_saleBooleanargs: 'Online Ticketing' -
module_website_event_trackBooleanargs: 'Tracks and Agenda' -
module_website_event_track_liveBooleanargs: 'Live Mode' -
module_website_event_track_quizBooleanargs: 'Quiz on Tracks' -
use_event_barcodeBooleanconfig_parameter='event.use_event_barcode'help='Enable or Disable Event Barcode functionality.'string='Use Event Barcode' -
use_google_maps_static_apiBooleandefault=_default_use_google_maps_static_api args: 'Google Maps static API'
-
create(self, vals_list)@api.model_create_multi -
write(self, vals)
New fields (3)
-
event_countIntegercompute='_compute_event_count'groups='event.group_event_registration_desk' args: '# Events' -
static_map_urlCharcompute='_compute_static_map_url' -
static_map_url_is_validBooleancompute='_compute_static_map_url_is_valid'
-
action_event_view(self)
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…