TIP: You can type at any time to perform a new search.
Events
website_event · odoo/odoo
Security findings
- Repository
- odoo/odoo · module folder
- Module version
- 1.4
- Category
- Marketing/Events
- Folder size
- 6.46 MB
- License
- LGPL-3
- Application
- Yes
- Auto-installable
- No
- Website
- https://www.odoo.com/app/events
- Last tracking update
- 2026-10-05 00:19:50
- Authors
- Odoo S.A.
- Maintainers
- Odoo S.A.
- Committers
- Xavier Morel, Raphael Collet, Thibault Delavallée, odoo, Odoo Translation Bot, Christophe Matthieu, Nicolas Lempereur, Aaron Bohy, qsm-odoo, Julien Castiaux, Xavier-Do, Romeo Fragomeli, Victor Feyens, Andrea Grazioso (agr-odoo), Adrien Dieudonné, Julien Mougenot, Tiffany Chang (tic), Gorash, Pierre Paridans, Romain Estievenart, Benjamin Vray, Antoine Guenet, Florian Charlier, luvi, Renaud Thiry, amdi-odoo, Robin Lejeune (role), Dylan Kiss (dyki), FrancoisGe, CarmenMiranda, Brieuc-brd, divy-odoo, Mehdi Outagant (MOU), nihp-odoo, mano-odoo, Harsh Shah, Antoine (anso), Arib Ansari, Sébastien (blse), sben-odoo, abdelrahmanfawzy, Pierre Pulinckx, Bastien PIERRE, Vincent Sevestre, Krzysztof Magusiak (krma), Rushil Patel, nsirjacobs, Brett Cutler, bikh-odoo, Julien Launois (jula), Laetitia (ldau), alap-odoo, Augustin (duau), Garvish Panchal, Parth Pujara, Serhii Rubanskyi, romo, pdso-odoo, Mazen, Oskar Wielgos, Rudra Patel, assk-odoo, alan-odoo, h4818 (ayh), Farah (ahmfa), chpa-odoo, Oussema Heni, Divyesh Vyas (divy), Julien Piron, Elisabeth Dickinson (edi)
- Odoo dependencies
- Python dependencies
- geoip2
- System dependencies
- None
- Required by
- website_event_booth, website_event_crm, website_event_exhibitor, website_event_sale, website_event_track, website_mass_mailing_event
- Description
Code Analysis
Views touched (96)
| 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_card |
Event Card | 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_location_include_online |
event_location_include_online | ir.ui.view | qweb | New |
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 |
portal_my_events |
portal_my_events | ir.ui.view | qweb | Inherits event.portal_my_events |
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_event_upcoming_snippet_preview_data_carousel |
Events Carousel 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_carousel |
Events Carousel | ir.ui.view | qweb | New |
s_events_carousel_preview_card |
Events Carousel Preview 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 |
searched_tags |
Searched tags | ir.ui.view | qweb | New |
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_event_visitor_page_view_search |
website.event.track.view.search | website.track | search | Inherits website.website_visitor_page_view_search |
website_event_visitor_page_view_tree |
website.track.view.list | website.track | list | New |
website_event_visitor_track_view_tree |
website.track.view.list | website.track | list | Inherits website.website_visitor_track_view_tree |
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 (12)
New fields (22)
-
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_publishedBooleantracking=True -
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' -
publish_onDatetimetracking=True -
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' -
subtitleCharhelp='Displayed on website and used as description when the event is added to a third-party calendar.'translate=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 (1)
-
event_idMany2one → event.eventcomodel_name='event.event'index='btree_not_null'ondelete='cascade'readonly=True
No public methods.
New fields (5)
-
event_idsMany2many → event.eventcomodel_name='event.event'compute='_compute_event_statistics'string='Events' -
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' -
visitor_event_countIntegercompute='_compute_event_statistics'help='Total number of views on events'string='Event Views'
No public methods.
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…