diff options
11 files changed, 69 insertions, 19 deletions
diff --git a/addons/website_event/models/event_event.py b/addons/website_event/models/event_event.py index f897d2eaffd..53a433df6a4 100644 --- a/addons/website_event/models/event_event.py +++ b/addons/website_event/models/event_event.py @@ -114,14 +114,10 @@ class Event(models.Model): @api.depends("event_type_id", "website_menu", "community_menu") def _compute_community_menu(self): - """ At type onchange: synchronize. At website_menu update: synchronize. """ + """ Set False in base module. Sub modules will add their own logic + (meet or track_quiz). """ 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 + event.community_menu = False @api.depends("event_type_id", "website_menu") def _compute_menu_register_cta(self): diff --git a/addons/website_event/views/event_event_views.xml b/addons/website_event/views/event_event_views.xml index f364ac129c6..7a00591f195 100644 --- a/addons/website_event/views/event_event_views.xml +++ b/addons/website_event/views/event_event_views.xml @@ -25,8 +25,8 @@ <field name="website_menu"/> <label for="menu_register_cta" string="Register Button"/> <field name="menu_register_cta"/> - <label for="community_menu" string="Community"/> - <field name="community_menu"/> + <label for="community_menu" string="Community" invisible="1"/> + <field name="community_menu" invisible="1"/> </div> </xpath> </field> diff --git a/addons/website_event/views/event_type_views.xml b/addons/website_event/views/event_type_views.xml index 60d09caee79..6a316aa7b32 100644 --- a/addons/website_event/views/event_type_views.xml +++ b/addons/website_event/views/event_type_views.xml @@ -20,14 +20,12 @@ </div> </div> <div class="row mt16" name="menu_register_cta" - groups="base.group_no_one" - attrs="{'invisible': [('website_menu', '=', False)]}"> + groups="base.group_no_one"> <label class="col-lg-4" for="menu_register_cta"/> <field name="menu_register_cta"/> </div> <div class="row mt16" name="community_menu" id="community-menu" - groups="base.group_no_one" - attrs="{'invisible': [('website_menu', '=', False)]}"> + attrs="{'invisible': [('website_menu', 'in', (True, False))]}"> <label class="col-lg-4" for="community_menu"/> <field name="community_menu"/> </div> </div> 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> diff --git a/addons/website_event_track_quiz/__manifest__.py b/addons/website_event_track_quiz/__manifest__.py index e1e71980282..810e538146c 100644 --- a/addons/website_event_track_quiz/__manifest__.py +++ b/addons/website_event_track_quiz/__manifest__.py @@ -25,6 +25,7 @@ 'views/event_menus.xml', 'views/event_quiz_templates.xml', 'views/event_track_templates_page.xml', + 'views/event_event_views.xml', 'views/event_type_views.xml' ], 'demo': [ diff --git a/addons/website_event_track_quiz/models/__init__.py b/addons/website_event_track_quiz/models/__init__.py index dd66c4ecd9e..078488231e0 100644 --- a/addons/website_event_track_quiz/models/__init__.py +++ b/addons/website_event_track_quiz/models/__init__.py @@ -1,6 +1,7 @@ # -*- coding: utf-8 -*- # Part of Odoo. See LICENSE file for full copyright and licensing details. +from . import event_event from . import event_track from . import event_track_visitor from . import event_quiz diff --git a/addons/website_event_track_quiz/models/event_event.py b/addons/website_event_track_quiz/models/event_event.py new file mode 100644 index 00000000000..9ef2a289c08 --- /dev/null +++ b/addons/website_event_track_quiz/models/event_event.py @@ -0,0 +1,19 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo import api, fields, models + + +class Event(models.Model): + _inherit = "event.event" + + @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 diff --git a/addons/website_event_track_quiz/views/event_event_views.xml b/addons/website_event_track_quiz/views/event_event_views.xml new file mode 100644 index 00000000000..66419e8d95f --- /dev/null +++ b/addons/website_event_track_quiz/views/event_event_views.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="utf-8"?> +<odoo><data> + + <record id="event_event_view_form" model="ir.ui.view"> + <field name="name">event.event.view.form.inherit.track.quiz</field> + <field name="model">event.event</field> + <field name="inherit_id" ref="website_event.event_event_view_form"/> + <field name="arch" type="xml"> + <xpath expr="//label[@for='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> + </field> + </record> + +</data></odoo> + diff --git a/addons/website_event_track_quiz/views/event_type_views.xml b/addons/website_event_track_quiz/views/event_type_views.xml index 5f5e01a0d58..460a5e5bf5b 100644 --- a/addons/website_event_track_quiz/views/event_type_views.xml +++ b/addons/website_event_track_quiz/views/event_type_views.xml @@ -1,12 +1,12 @@ <?xml version="1.0"?> <odoo><data> <record id="event_type_view_form" model="ir.ui.view"> - <field name="name">event.type.view.form.inherit.meet</field> + <field name="name">event.type.view.form.inherit.track.quiz</field> <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[@id='community-menu']" position="attributes"> - <attribute name="groups"></attribute> + <attribute name="attrs">{'invisible': [('website_menu', '=', False)]}</attribute> </xpath> </field> </record> |
