Repository
OCA/event · module folder · Try on Runboat
Module version
1.0.0
Category
Marketing
Folder size
1.22 MB
License
AGPL-3
Application
No
Auto-installable
No
Website
https://github.com/OCA/event
Last tracking update
2026-08-07 08:43:04
Authors
Odoo Community Association (OCA), Tecnativa
Maintainers
Odoo Community Association (OCA), Tecnativa
Committers
Víctor Martínez, Weblate, OCA-git-bot, oca-ci
Odoo dependencies
Python dependencies
None
System dependencies
None
Required by
event_sale_session, event_session_registration_multi_qty
Description
This module allows to create sessions associated with events.

Code Analysis

Views touched (22)
XML IDNameModelTypeStatus
event_registration_report_template_foldable_badge event_registration_report_template_foldable_badge ir.ui.view qweb Inherits event.event_registration_report_template_badge
event_registration_report_template_full_page_ticket event_registration_report_template_full_page_ticket ir.ui.view qweb Inherits event.event_registration_report_template_full_page_ticket
event_registration_view_kanban event.registration kanban Inherits event.event_registration_view_kanban
view_event_form event.event form Inherits event.view_event_form
view_event_form_create_sessions event.event form Inherits event.view_event_form
view_event_kanban event.event kanban Inherits event.view_event_kanban
view_event_registration_calendar event.registration calendar Inherits event.view_event_registration_calendar
view_event_registration_form event.registration form Inherits event.view_event_registration_form
view_event_registration_graph event.registration graph Inherits event.view_event_registration_graph
view_event_registration_pivot event.registration pivot Inherits event.view_event_registration_pivot
view_event_registration_tree event.registration tree Inherits event.view_event_registration_tree
view_event_search event.event search Inherits event.view_event_search
view_event_session_calendar event.session calendar New
view_event_session_form event.session form New
view_event_session_form_quick_create event.session form New
view_event_session_kanban event.session kanban New
view_event_session_pivot event.session pivot New
view_event_session_search event.session search New
view_event_session_tree event.session list New
view_event_type_form event.type form Inherits event.view_event_type_form
view_registration_search event.registration search Inherits event.view_registration_search
view_wizard_event_session_form wizard.event.session form New
HTTP endpoints (1)
Route(s)HandlerAuthTypeMethodsFlags
/event/session/<model("event.session"):event_session>/ics EventSessionController.event_session_ics_file public http ALL
Models touched (9)

New fields (5)
  • date_begin Datetime
    compute='_compute_date_begin' readonly=False store=True
  • date_end Datetime
    compute='_compute_date_end' readonly=False store=True
  • session_count Integer
    compute='_compute_session_count' string='Sessions Count'
  • session_ids One2many → event.session
    comodel_name='event.session' inverse_name='event_id' string='Sessions'
  • use_sessions Boolean
    compute='_compute_use_sessions' help='Manage multiple sessions per event' readonly=False store=True string='Event Sessions'
Public methods (2)
  • create(self, vals_list)
    @api.model_create_multi
  • write(self, vals)

New fields (2)
  • session_scheduler_ids One2many → event.mail.session
    comodel_name='event.mail.session' inverse_name='scheduler_id' string='Session Mails'
  • use_sessions Boolean
    related='event_id.use_sessions'
Public methods (2)
  • execute(self)
  • schedule_communications(self, autocommit=False)
    @api.model

New fields (1)
  • session_scheduler_id Many2one → event.mail.session
    comodel_name='event.mail.session' ondelete='cascade' string='Session Mail'
Public methods (0)

No public methods.

New fields (6)
  • 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
    comodel_name='event.mail.registration' inverse_name='session_scheduler_id'
  • scheduled_date Datetime
    compute='_compute_scheduled_date' store=True
  • scheduler_id Many2one → event.mail
    auto_join=True comodel_name='event.mail' ondelete='cascade' required=True string='Event Mail Scheduler'
  • session_id Many2one → event.session
    comodel_name='event.session' ondelete='cascade' required=True string='Session'
Public methods (2)
  • execute(self)
    Similar to core's :meth:`event.models.event_mail.execute`, only here we take values from the `event.session` instead.
  • schedule_communications(self, autocommit=False)
    @api.model
    Similar to core's :meth:`event.models.event_mail.schedule_communications`.

New fields (4)
  • event_begin_date Datetime
    compute='_compute_event_begin_date' related=None
  • event_end_date Datetime
    compute='_compute_event_end_date' related=None
  • session_id Many2one → event.session
    comodel_name='event.session' ondelete='restrict' string='Session'
  • use_sessions Boolean
    related='event_id.use_sessions'
Public methods (1)
  • get_date_range_str(self, lang_code=False)
    Compatibility with existing email templates: this method existed until v17, but in v18 it was removed in favor of using the event's _get_date_range_str() method, which is what we use now.

New fields (22)
  • active Boolean
    default=True
  • date_begin Datetime
    required=True string='Start Date'
  • date_begin_located Char
    compute='_compute_date_begin_located' string='Start Date Located'
  • date_end Datetime
    required=True string='End Date'
  • date_end_located Char
    compute='_compute_date_end_located' string='End Date Located'
  • event_id Many2one → event.event
    auto_join=True comodel_name='event.event' domain=[('use_sessions', '=', True)] index=True ondelete='cascade' required=True string='Parent Event'
  • event_mail_ids One2many → event.mail.session
    comodel_name='event.mail.session' compute='_compute_event_mail_ids' inverse_name='session_id' store=True string='Mail Schedule'
  • event_registrations_open Boolean
    compute='_compute_event_registrations_open' compute_sudo=True string='Registration open'
  • event_registrations_sold_out Boolean
    compute='_compute_event_registrations_sold_out' compute_sudo=True string='Sold Out'
  • is_finished Boolean
    compute='_compute_is_finished' search='_search_is_finished'
  • is_one_day Boolean
    compute='_compute_is_one_day'
  • is_ongoing Boolean
    compute='_compute_is_ongoing' search='_search_is_ongoing'
  • kanban_state Selection
    copy=False default='normal' selection=<expr>
  • kanban_state_label Char
    compute='_compute_kanban_state_label' store=True tracking=True
  • registration_ids One2many → event.registration
    comodel_name='event.registration' inverse_name='session_id' string='Attendees'
  • seats_available Integer
    compute='_compute_seats' store=True string='Available Seats'
  • seats_reserved Integer
    compute='_compute_seats' store=True string='Reserved Seats'
  • seats_taken Integer
    compute='_compute_seats' store=True string='Number of Taken Seats'
  • seats_used Integer
    compute='_compute_seats' store=True string='Number of Participants'
  • session_update Selection
    default='this' help='Choose what to do with other event sessions' store=False args: [('this', 'This session'), ('subsequent', 'This and following event sessions'), ('all', 'All event sessions')]
  • session_update_message Text
    compute='_compute_session_update_message'
  • stage_id Many2one → event.stage
    comodel_name='event.stage' copy=False default=<expr> group_expand='_read_group_expand_full' ondelete='restrict' tracking=True
Public methods (5)
  • action_open_registrations(self)
    Open session registrations
  • action_set_done(self)
    Similar to core's :meth:`event_event.action_set_done`
  • create(self, vals_list)
    @api.model_create_multi
    Similar to core's :meth:`event_event.create`
  • mail_attendees(self, template_id, force_send=False, filter_func=<expr>)
    Mail session attendees Similar to core's :meth:`event.models.event.mail_attendees`, but here we take only the session's attendees into account.
  • write(self, vals)

New fields (1)
  • time Float
    required=True
Public methods (1)
  • name_create(self, name)
    @api.model

New fields (1)
  • use_sessions Boolean
    help='Manage multiple sessions per event' string='Event Sessions'
Public methods (0)

No public methods.

New fields (19)
  • byday Selection
    string='By day' args: [('1', 'First'), ('2', 'Second'), ('3', 'Third'), ('4', 'Fourth'), ('-1', 'Last')]
  • date_tz Selection
    help='Set it up in the event configurationSessions will be generated up to this date' related='event_id.date_tz'
  • day Integer
    default=1
  • duration Float
    compute='_compute_duration' help='Duration of the sessions in hours' readonly=False required=True store=True
  • event_id Many2one → event.event
    comodel_name='event.event' default=<expr> ondelete='cascade' readonly=True required=True
  • fri Boolean
  • interval Integer
    default=1 required=True
  • mon Boolean
  • month_by Selection
    default='date' args: [('date', 'Date of month'), ('day', 'Day of month')]
  • rrule_type Selection
    default='weekly' required=True string='Recurrence' args: [('weekly', 'Weeks'), ('monthly', 'Months')]
  • sat Boolean
  • start Date
    compute='_compute_start' readonly=False required=True store=True
  • sun Boolean
  • thu Boolean
  • timeslot_ids Many2many → event.session.timeslot
    comodel_name='event.session.timeslot' required=True string='Time slots'
  • tue Boolean
  • until Date
    required=True
  • wed Boolean
  • weekday Selection
    args: [('MON', 'Monday'), ('TUE', 'Tuesday'), ('WED', 'Wednesday'), ('THU', 'Thursday'), ('FRI', 'Friday'), ('SAT', 'Saturday'), ('SUN', 'Sunday')]
Public methods (1)
  • action_create_sessions(self)

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…