TIP: You can type at any time to perform a new search.
Events
website_event · odoo/odoo
- Repository
- odoo/odoo · module folder
- Module version
- 1.4
- Category
- Marketing/Events
- Folder size
- 6.28 MB
- License
- LGPL-3
- Application
- Yes
- 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 ALT, Raphael Collet, Thibault Delavallée, Odoo Translation Bot, Nicolas Martinelli, Nicolas Lempereur, Géry Debongnie, qsm-odoo, Christophe Monniez, Julien Castiaux, Aurélien Warnon, Andrea Grazioso (agr-odoo), Julien Mougenot, Rémy Voet (ryv), Tiffany Chang (tic), Gorash, Mathieu Duckerts-Antoine, William Braeckman, Benjamin Vray, Benoit Socias, Florian Charlier, Nicolas Bayet, Hubert Van De Walle, Renaud Thiry, Julien Banken, Louis Wicket (wil), alsh-odoo, Victor Piryns (pivi), amdi-odoo, Levi Siuzdak (sile), Maruan Aguerdouh (magm), Dylan Kiss (dyki), Mayurrajsinh Rathod, CarmenMiranda, Mehdi Outagant (MOU), Serge Bayet (seba), Jérémy Hennecart (jeh), Julien Carion (juca), kcv-odoo, adsh-odoo, nihp-odoo, Chrysanthe (chgo), Sanjay Sharma, mano-odoo, Shaan Thakkar (THSH), yagp-odoo, Pierre Pulinckx (PIPU), Sébastien (blse), panv-odoo, sben-odoo, Pierre Pulinckx, Anton Romanova (roan), Bastien PIERRE, MaximeNoirhomme, Vincent Sevestre, Krzysztof Magusiak (krma), Omar (OSAH), Ajit Singh, Guillaume V, Brett Cutler, bikh-odoo, Alice Gaudon, Augustin (duau), Alessandro Lupo, Yagnik ✗ (yagp), assh-odoo, pdso-odoo, alan-odoo, Farah (ahmfa), chpa-odoo, panj-odoo, Romain ROSANO (rros)
- Odoo dependencies
- Python dependencies
- geoip2
- System dependencies
- None
- Required by
- website_event_booth, website_event_crm, website_event_exhibitor, website_event_filter_city, website_event_membership_restriction, website_event_questions_by_ticket, website_event_require_legal, website_event_sale, website_event_track
- Description
Code Analysis ⓘ
Views touched (89)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
display_timer_alert_widget |
Display Countdown widget | ir.ui.view | qweb | New |
display_timer_widget |
Display Timer Widget | ir.ui.view | qweb | New |
dynamic_filter_template_event_event_card |
Card Layout | ir.ui.view | qweb | New |
dynamic_filter_template_event_event_picture |
Picture Layout | ir.ui.view | qweb | New |
dynamic_filter_template_event_event_single_aside |
Solo Aside | ir.ui.view | qweb | New |
dynamic_filter_template_event_event_single_badge |
Solo Badge | ir.ui.view | qweb | New |
dynamic_filter_template_event_event_single_card |
Solo Card | ir.ui.view | qweb | New |
dynamic_filter_template_event_event_single_entry |
Solo Entry | ir.ui.view | qweb | New |
dynamic_filter_template_event_event_single_offset |
Solo Offset | ir.ui.view | qweb | New |
event_calendar_links |
event_calendar_links | ir.ui.view | qweb | New |
event_confirmation_end_page_hook |
event_confirmation_end_page_hook | ir.ui.view | qweb | New |
event_description_dates |
Event Description Dates | ir.ui.view | qweb | New |
event_description_full |
Event Description | ir.ui.view | qweb | New |
event_details |
Event Header | ir.ui.view | qweb | New |
event_event_view_form |
event.event.view.form.inherit.website | event.event | form | Inherits event.view_event_form |
event_event_view_form_website_create |
event.event.form.website_create | event.event | form | Inherits event.view_event_form |
event_event_view_list |
event.event.view.list.inherit.website | event.event | list | Inherits event.view_event_tree |
event_event_view_search |
event.event.search.inherit.website | event.event | search | Inherits event.view_event_search |
event_location |
Filter by Country | ir.ui.view | qweb | Inherits website_event.index_topbar |
event_pages_kanban_view |
Event Pages Kanban | event.event | kanban | Inherits event.view_event_kanban |
event_pages_tree_view |
Event Pages List | event.event | tree | Inherits event.view_event_tree |
event_registration_view_form |
event.registration.view.form.inherit.online | event.registration | form | Inherits event.view_event_registration_form |
event_registration_view_kanban |
event.registration.kanban.inherit.online | event.registration | kanban | Inherits event.event_registration_view_kanban |
event_registration_view_search |
event.registration.view.search.inherit.online | event.registration | search | Inherits event.view_registration_search |
event_registration_view_tree |
event.registration.view.list.inherit.online | event.registration | list | Inherits event.view_event_registration_tree |
event_tag_category_view_form |
event.tag.category.view.form.inherit.website | event.tag.category | form | Inherits event.event_tag_category_view_form |
event_tag_category_view_tree |
event.tag.category.view.list.inherit.website | event.tag.category | list | Inherits event.event_tag_category_view_tree |
event_tag_view_form_inherit |
event.tag.view.form.inherit | event.tag | form | Inherits event.event_tag_view_form |
event_time |
Filter by Date | ir.ui.view | qweb | Inherits website_event.index_topbar |
event_type_view_form |
event.type.view.form.inherit.website | event.type | form | Inherits event.view_event_type_form |
events_list |
Events list | ir.ui.view | qweb | New |
index |
Events | ir.ui.view | qweb | New |
index_sidebar |
Sidebar | ir.ui.view | qweb | New |
index_sidebar_about_us |
About us | ir.ui.view | qweb | Inherits website_event.index_sidebar |
index_sidebar_follow_us |
Follow us | ir.ui.view | qweb | Inherits website_event.index_sidebar |
index_sidebar_photos |
Photos | ir.ui.view | qweb | Inherits website_event.index_sidebar |
index_sidebar_quotes |
Quotes | ir.ui.view | qweb | Inherits website_event.index_sidebar |
index_topbar |
Topbar | ir.ui.view | qweb | New |
layout |
Event | ir.ui.view | qweb | New |
modal_slot_registration |
Modal for slots registration | ir.ui.view | qweb | New |
modal_ticket_registration |
Modal for tickets registration | ir.ui.view | qweb | New |
navbar |
Event Navbar | ir.ui.view | qweb | New |
navbar_dropdown |
Event Navbar Dropdown | ir.ui.view | qweb | New |
opt_event_calendar_block |
Calendar links | ir.ui.view | qweb | Inherits website_event.event_description_full |
opt_event_dates_block |
Dates | ir.ui.view | qweb | Inherits website_event.event_description_full |
opt_event_description_cover_hidden |
Event Description Cover Hidden Option | ir.ui.view | qweb | Inherits website_event.event_description_full |
opt_event_description_cover_top |
Event Description Cover Top Option | ir.ui.view | qweb | Inherits website_event.event_description_full |
opt_event_fixed_sidebar |
Fixed Sidebar Option | ir.ui.view | qweb | Inherits website_event.event_description_full |
opt_event_location_block |
Location | ir.ui.view | qweb | Inherits website_event.event_description_full |
opt_event_organizer_block |
Organizer | ir.ui.view | qweb | Inherits website_event.event_description_full |
opt_event_registration_block |
Registrations | ir.ui.view | qweb | Inherits website_event.event_description_full |
opt_event_share_block |
Share | ir.ui.view | qweb | Inherits website_event.event_description_full |
opt_events_list_cards |
'Cards' Design | ir.ui.view | qweb | Inherits website_event.events_list |
opt_events_list_categories |
Show Templates | ir.ui.view | qweb | Inherits website_event.events_list |
opt_events_list_columns |
Layout • Columns | ir.ui.view | qweb | Inherits website_event.events_list |
opt_index_sidebar |
Show Sidebar | ir.ui.view | qweb | Inherits website_event.index |
registration_attendee_details |
Registration Attendee Details | ir.ui.view | qweb | New |
registration_complete |
Registration Completed | ir.ui.view | qweb | New |
registration_configure_tickets_button |
Registration Configure Ticket Button | ir.ui.view | qweb | New |
registration_event_question |
Registration Event Question | ir.ui.view | qweb | New |
registration_template |
Registration | ir.ui.view | qweb | New |
registration_ticket_access |
Registration Ticket Access | ir.ui.view | qweb | New |
remove_external_snippets |
remove_external_snippets | ir.ui.view | qweb | Inherits website.external_snippets |
s_dynamic_snippet_events_single_aside_preview_data |
Single Event Aside Preview Data | ir.ui.view | qweb | New |
s_dynamic_snippet_events_single_badge_preview_data |
Single Event Badge Preview Data | ir.ui.view | qweb | New |
s_dynamic_snippet_events_single_card_preview_data |
Single Event Card Preview Data | ir.ui.view | qweb | New |
s_dynamic_snippet_events_single_entry_preview_data |
Single Event Entry Preview Data | ir.ui.view | qweb | New |
s_dynamic_snippet_events_single_offset_preview_data |
Single Event Offset Preview Data | ir.ui.view | qweb | New |
s_event_upcoming_snippet_card_preview_data |
Events Card Preview Data | ir.ui.view | qweb | New |
s_event_upcoming_snippet_preview_data |
Events Picture Preview Data | ir.ui.view | qweb | New |
s_events |
Events | ir.ui.view | qweb | New |
s_events_card |
Events Card | ir.ui.view | qweb | New |
s_events_picture |
Events Picture | ir.ui.view | qweb | New |
s_events_single_aside |
Single Event Aside | ir.ui.view | qweb | New |
s_events_single_badge |
Single Event Badge | ir.ui.view | qweb | New |
s_events_single_card |
Single Event Card | ir.ui.view | qweb | New |
s_events_single_entry |
Single Event Entry | ir.ui.view | qweb | New |
s_events_single_offset |
Single Event Offset | ir.ui.view | qweb | New |
s_speaker_bio |
Speaker Bio | ir.ui.view | qweb | New |
searched_tags |
Searched tags | ir.ui.view | qweb | New |
snippets |
snippets | ir.ui.view | qweb | Inherits website.snippets |
snippets |
snippets | ir.ui.view | qweb | Inherits website.snippets |
template_intro |
template_intro | ir.ui.view | qweb | New |
website_event.event_empty_events_svg |
website_event.event_empty_events_svg | ir.ui.view | qweb | New |
website_event_menu_view_form |
website.event.menu.view.form | website.event.menu | form | New |
website_event_menu_view_search |
website.event.menu.view.search | website.event.menu | search | New |
website_event_menu_view_tree |
website.event.menu.view.list | website.event.menu | list | New |
website_visitor_view_form |
website.visitor.view.form.inherit.event | website.visitor | form | Inherits website.website_visitor_view_form |
website_visitor_view_tree |
website.visitor.view.list.inherit.event | website.visitor | list | Inherits website.website_visitor_view_tree |
HTTP endpoints (9)
| Route(s) | Handler | Auth | Type | Methods | Flags |
|---|---|---|---|---|---|
/event/<model("event.event"):event>/community |
EventCommunityController.community |
public | http | ALL | website |
/event/<model("event.event"):event> |
WebsiteEventController.event |
public | http | ALL | website |
/event/<model("event.event"):event>/page/<path:page> |
WebsiteEventController.event_page |
public | http | ALL | sudo website |
/event/<model("event.event"):event>/register |
WebsiteEventController.event_register |
public | http | ALL | website |
/event/<model("event.event"):event>/registration/success |
WebsiteEventController.event_registration_success |
public | http | GET | sudo website |
| (inherited route override) | WebsiteEventController.events |
public | http | ALL | sudo website |
/event/<model("event.event"):event>/registration/confirm |
WebsiteEventController.registration_confirm |
public | http | POST | website |
/event/<model("event.event"):event>/registration/new |
WebsiteEventController.registration_new |
public | jsonrpc | POST | website |
/event/<model("event.event"):event>/registration/slot/<int:slot_id>/tickets |
WebsiteEventController.registration_tickets |
public | jsonrpc | POST | website |
Models touched (11)
New fields (20)
-
address_nameCharrelated='address_id.name' -
community_menuBooleancompute='_compute_community_menu'help='Display community tab on website'readonly=Falsestore=True args: 'Community Menu' -
community_menu_idsOne2many → website.event.menudomain=[('menu_type', '=', 'community')]string='Event Community Menus' args: 'website.event.menu', 'event_id' -
event_register_urlCharcompute='_compute_event_register_url' args: 'Event Registration Link' -
introduction_menuBooleancompute='_compute_website_menu_data'readonly=Falsestore=True args: 'Introduction Menu' -
introduction_menu_idsOne2many → website.event.menudomain=[('menu_type', '=', 'introduction')]string='Introduction Menus' args: 'website.event.menu', 'event_id' -
is_doneBooleancompute='_compute_time_data' args: 'Is Done' -
is_ongoingBooleancompute='_compute_time_data'help='Whether event has begun'search='_search_is_ongoing' args: 'Is Ongoing' -
is_participatingBooleancompute='_compute_is_participating'search='_search_is_participating' args: 'Is Participating' -
is_visible_on_websiteBooleancompute='_compute_is_visible_on_website'search='_search_is_visible_on_website'string='Visible On Website' -
menu_idMany2one → website.menucopy=False args: 'website.menu', 'Event Menu' -
other_menu_idsOne2many → website.event.menudomain=[('menu_type', '=', 'other')]string='Other Menus' args: 'website.event.menu', 'event_id' -
register_menuBooleancompute='_compute_website_menu_data'readonly=Falsestore=True args: 'Register Menu' -
register_menu_idsOne2many → website.event.menudomain=[('menu_type', '=', 'register')]string='Register Menus' args: 'website.event.menu', 'event_id' -
start_remainingIntegercompute='_compute_time_data'help='Remaining time before event starts (minutes)' args: 'Remaining before start' -
start_todayBooleancompute='_compute_time_data'help='Whether event is going to start today if still not ongoing' args: 'Start Today' -
subtitleChartranslate=True args: 'Event Subtitle' -
website_menuBooleancompute='_compute_website_menu'help='Allows to display and manage event-specific menus on website.'precompute=Truereadonly=Falsestore=Truestring='Website Menu' -
website_publishedBooleantracking=True -
website_visibilitySelectiondefault='public'help='Defines the Visibility of the Event on the Website and searches.\n\n Note that the EventEvent is however always available via its link.'required=Truestring='Website Visibility'tracking=True args: [('public', 'Public'), ('link', 'Via a Link'), ('logged_users', 'Logged Users')]
-
copy(self, default=None) -
copy_event_menus(self, old_events) -
create(self, vals_list)@api.model_create_multi -
get_backend_menu_id(self) -
google_map_link(self, zoom=8)Temporary method for stable -
toggle_website_menu(self, val) -
write(self, vals)
New fields (1)
-
visitor_idMany2one → website.visitorindex='btree_not_null'ondelete='set null'string='Visitor' args: 'website.visitor'
-
get_base_url(self)
New fields (0)
No new fields.
Public methods (0)No public methods.
New fields (0)
No new fields.
Public methods (1)-
default_get(self, fields)@api.model
New fields (0)
No new fields.
Public methods (0)No public methods.
New fields (2)
-
community_menuBooleancompute='_compute_community_menu'help='Display community tab on website'readonly=Falsestore=True args: 'Community Menu' -
website_menuBooleanargs: 'Display a dedicated menu on Website'
No public methods.
New fields (0)
No new fields.
Public methods (3)-
get_cta_data(self, website_purpose, website_type) -
get_suggested_controllers(self) -
new_page(self, name=False, add_menu=False, template='website.default_page', ispage=True, namespace=None, page_values=None, menu_values=None, sections_arch=None, page_title=None)@api.modelOverride the page creation in the context of events. When creating a page for an event, the page needs to be embedded inside the 'website_event.layout' template, otherwise it is not visually contained within that event. Note that to create an event page, one has to first create a menu entry in that event. To determine if this page is an event page: - Check that the path starts with 'event/', this should avoid extra requests in other contexts - Fetch a website.menu linked to this path - Check if we have a website.event.menu linked to that website.menu. In addition, we attach the created view to the website.event.menu and adapt they view key to make it unique in the context of our event, which makes it possible to find the view in the event pages controller. Finally, we also manually adapt the content of the generated page so that it's suited for the website editor generation. This includes removing false attributes and making sure the content is contained within a single oe_structure element (which cannot be 'wrap' as wrap contains the event menu). See: website.menu#save override
New fields (4)
-
event_idMany2one → event.eventindex='btree_not_null'ondelete='cascade'string='Event' args: 'event.event' -
menu_idMany2one → website.menuondelete='cascade'string='Menu' args: 'website.menu' -
menu_typeSelectionrequired=Truestring='Menu Type' args: [('community', 'Community Menu'), ('introduction', 'Home'), ('register', 'Practical'), ('other', 'Other')] -
view_idMany2one → ir.ui.viewhelp='Used when not being an url based menu'ondelete='cascade'string='View' args: 'ir.ui.view'
-
copy(self, default=None) -
unlink(self)
New fields (0)
No new fields.
Public methods (2)-
save(self, website_id, data)@api.modelMethod context: This method takes a data argument that follows the following format: [ { 'id': 4, url: '/mypage' }, { 'id': 'menu_xxx_...', url: '/anotherpage' } ] The new menu entries are identified by their ID being a string and not an integer value. Note that when going through super() call, those id entries are replaced by their created menu ID (integer), so we need to identify new menu entries before calling super. Override purpose: All sub-menus of an event are children of a 'main' website.menu, linking to the event main page. We abuse that information to determine if the added menu is part of an event or not: If we find a website.event.menu item that has the same parent as the menu we just created -> it means that we just created a menu inside an event. Once we have identified that, we force its URL to be part of the event pages, and we create a matching website.event.menu record for it. -
unlink(self)Override to synchronize event configuration fields with menu deletion.
New fields (0)
No new fields.
Public methods (1)-
default_get(self, fields)@api.model
New fields (3)
-
event_registered_idsMany2many → event.eventcompute='_compute_event_registered_ids'compute_sudo=Truegroups='event.group_event_registration_desk'search='_search_event_registered_ids'string='Registered Events' args: 'event.event' -
event_registration_countIntegercompute='_compute_event_registration_count'groups='event.group_event_registration_desk' args: '# Registrations' -
event_registration_idsOne2many → event.registrationgroups='event.group_event_registration_desk'string='Event Registrations' args: 'event.registration', 'visitor_id'
No public methods.
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…