diff options
| author | stephanchrst <stephanchrst@gmail.com> | 2022-05-10 21:51:50 +0700 |
|---|---|---|
| committer | stephanchrst <stephanchrst@gmail.com> | 2022-05-10 21:51:50 +0700 |
| commit | 3751379f1e9a4c215fb6eb898b4ccc67659b9ace (patch) | |
| tree | a44932296ef4a9b71d5f010906253d8c53727726 /addons/website_event_track_exhibitor/models/event_event.py | |
| parent | 0a15094050bfde69a06d6eff798e9a8ddf2b8c21 (diff) | |
initial commit 2
Diffstat (limited to 'addons/website_event_track_exhibitor/models/event_event.py')
| -rw-r--r-- | addons/website_event_track_exhibitor/models/event_event.py | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/addons/website_event_track_exhibitor/models/event_event.py b/addons/website_event_track_exhibitor/models/event_event.py new file mode 100644 index 00000000..acb75f24 --- /dev/null +++ b/addons/website_event_track_exhibitor/models/event_event.py @@ -0,0 +1,51 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo import api, fields, models, _ +from odoo.addons.http_routing.models.ir_http import slug + + +class EventEvent(models.Model): + _inherit = "event.event" + + exhibitor_menu = fields.Boolean( + string='Showcase Exhibitors', compute='_compute_exhibitor_menu', + readonly=False, store=True) + exhibitor_menu_ids = fields.One2many( + 'website.event.menu', 'event_id', string='Exhibitors Menus', + domain=[('menu_type', '=', 'exhibitor')]) + + @api.depends('event_type_id', 'website_menu', 'exhibitor_menu') + def _compute_exhibitor_menu(self): + for event in self: + if event.event_type_id and event.event_type_id != event._origin.event_type_id: + event.exhibitor_menu = event.event_type_id.exhibitor_menu + elif event.website_menu and (event.website_menu != event._origin.website_menu or not event.exhibitor_menu): + event.exhibitor_menu = True + elif not event.website_menu: + event.exhibitor_menu = False + + # ------------------------------------------------------------ + # WEBSITE MENU MANAGEMENT + # ------------------------------------------------------------ + + def toggle_exhibitor_menu(self, val): + self.exhibitor_menu = val + + def _get_menu_update_fields(self): + return super(EventEvent, self)._get_menu_update_fields() + ['exhibitor_menu'] + + def _update_website_menus(self, menus_update_by_field=None): + super(EventEvent, self)._update_website_menus(menus_update_by_field=menus_update_by_field) + for event in self: + if event.menu_id and (not menus_update_by_field or event in menus_update_by_field.get('exhibitor_menu')): + event._update_website_menu_entry('exhibitor_menu', 'exhibitor_menu_ids', '_get_exhibitor_menu_entries') + + def _get_menu_type_field_matching(self): + res = super(EventEvent, self)._get_menu_type_field_matching() + res['exhibitor'] = 'exhibitor_menu' + return res + + def _get_exhibitor_menu_entries(self): + self.ensure_one() + return [(_('Exhibitors'), '/event/%s/exhibitors' % slug(self), False, 60, 'exhibitor')] |
