diff options
| author | Thibault Delavallée <tde@odoo.com> | 2020-08-24 10:15:37 +0000 |
|---|---|---|
| committer | Thibault Delavallée <tde@odoo.com> | 2020-08-24 10:16:50 +0000 |
| commit | 4aad2813f18b61a30aa5e076e12eb9534468acae (patch) | |
| tree | 79062d4a879887ccc62837641f931d78772716af /addons/website_event_meet | |
| parent | 90f58c308b52e45c15967e13e9c729604a30c437 (diff) | |
[FIX] website_event(_exhibitor/track_quiz): display community menu only when used
Community menu field is added in website_event module. It is used in two
inheriting modules, website_event_meet and website_event_track_quiz. There
is no other common ancestor for those two modules.
In website_event, community menu field should be False and not displayed
as it has no real use. Only in those sub-applications it should be
computed like other menu fields, and displayed in event views (both
event and event type for configuration).
PR #56340
Diffstat (limited to 'addons/website_event_meet')
| -rw-r--r-- | addons/website_event_meet/models/event_event.py | 14 | ||||
| -rw-r--r-- | addons/website_event_meet/views/event_event_views.xml | 6 | ||||
| -rw-r--r-- | addons/website_event_meet/views/event_type_views.xml | 4 |
3 files changed, 20 insertions, 4 deletions
diff --git a/addons/website_event_meet/models/event_event.py b/addons/website_event_meet/models/event_event.py index 4b254e91dbb..af44e8e6664 100644 --- a/addons/website_event_meet/models/event_event.py +++ b/addons/website_event_meet/models/event_event.py @@ -1,8 +1,7 @@ # -*- 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 +from odoo import api, fields, models class Event(models.Model): @@ -15,6 +14,17 @@ class Event(models.Model): readonly=False, store=True, help="Let Visitors Create Rooms") + @api.depends("event_type_id", "website_menu", "community_menu") + def _compute_community_menu(self): + """ At type onchange: synchronize. At website_menu update: synchronize. """ + for event in self: + if event.event_type_id and event.event_type_id != event._origin.event_type_id: + event.community_menu = event.event_type_id.community_menu + elif event.website_menu and (event.website_menu != event._origin.website_menu or not event.community_menu): + event.community_menu = True + elif not event.website_menu: + event.community_menu = False + @api.depends("meeting_room_ids") def _compute_meeting_room_count(self): meeting_room_count = self.env["event.meeting.room"].sudo().read_group( diff --git a/addons/website_event_meet/views/event_event_views.xml b/addons/website_event_meet/views/event_event_views.xml index 798be072310..498f64ace2b 100644 --- a/addons/website_event_meet/views/event_event_views.xml +++ b/addons/website_event_meet/views/event_event_views.xml @@ -11,6 +11,12 @@ <field name="meeting_room_count" string="Rooms" widget="statinfo"/> </button> </xpath> + <xpath expr="//label[@for='community_menu']" position="attributes"> + <attribute name="invisible">0</attribute> + </xpath> + <xpath expr="//field[@name='community_menu']" position="attributes"> + <attribute name="invisible">0</attribute> + </xpath> <xpath expr="//field[@name='community_menu']" position="after"> <field name="meeting_room_allow_creation" invisible="1"/> </xpath> diff --git a/addons/website_event_meet/views/event_type_views.xml b/addons/website_event_meet/views/event_type_views.xml index 616206d9418..0aa7478fa4c 100644 --- a/addons/website_event_meet/views/event_type_views.xml +++ b/addons/website_event_meet/views/event_type_views.xml @@ -5,13 +5,13 @@ <field name="model">event.type</field> <field name="inherit_id" ref="website_event.event_type_view_form"/> <field name="arch" type="xml"> - <xpath expr="//div[@name='website_menu']" position='after'> + <xpath expr="//div[@id='community-menu']" position='after'> <div class="row mt16" attrs="{'invisible': [('website_menu', '=', False)]}"> <label class="col-lg-4" for="meeting_room_allow_creation"/> <field name="meeting_room_allow_creation"/> </div> </xpath> <xpath expr="//div[@id='community-menu']" position="attributes"> - <attribute name="groups"></attribute> + <attribute name="attrs">{'invisible': [('website_menu', '=', False)]}</attribute> </xpath> </field> </record> |
