summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRomain Derie <rde@odoo.com>2017-11-28 16:05:28 +0100
committerRomain Derie <rde@odoo.com>2017-12-12 15:27:51 +0100
commit56ae134bb223d16da712f5dcfe0d9a221feb5d72 (patch)
tree1d636f45a76a45ab915734c4ba90cd5ee450769f
parent5bbd1b17907682b329e97d8b2420dc598804876b (diff)
[FIX] website: allow user to create/remove website.menu
Before this commit, an user could not create or remove a website.menu since there was no list/form view for it. Changing sequence also impossible. Therefore, it was impossible to create or delete a menu from an event. (you could just edit the existing one) Now, user can access in debug mode to the list and form view of website.menu to manage the menus. This commit also add a link on the ir.ui.view form view to access it's related website.page This closes #21302
-rw-r--r--addons/website/models/ir_ui_view.py5
-rw-r--r--addons/website/views/res_config_settings_views.xml7
-rw-r--r--addons/website/views/website_views.xml48
3 files changed, 55 insertions, 5 deletions
diff --git a/addons/website/models/ir_ui_view.py b/addons/website/models/ir_ui_view.py
index 5a8cdb4e27e..0476de9602f 100644
--- a/addons/website/models/ir_ui_view.py
+++ b/addons/website/models/ir_ui_view.py
@@ -21,6 +21,11 @@ class View(models.Model):
customize_show = fields.Boolean("Show As Optional Inherit", default=False)
website_id = fields.Many2one('website', ondelete='cascade', string="Website")
page_ids = fields.One2many('website.page', compute='_compute_page_ids', store=False)
+ first_page_id = fields.Many2one('website.page', string='Website Page', help='First page linked to this view', compute='_compute_first_page_id')
+
+ @api.one
+ def _compute_first_page_id(self):
+ self.first_page_id = self.env['website.page'].search([('view_id', '=', self.id)], limit=1)
@api.one
def _compute_page_ids(self):
diff --git a/addons/website/views/res_config_settings_views.xml b/addons/website/views/res_config_settings_views.xml
index 1266c0db11e..1f43ae1b157 100644
--- a/addons/website/views/res_config_settings_views.xml
+++ b/addons/website/views/res_config_settings_views.xml
@@ -228,4 +228,11 @@
sequence="30"
groups="base.group_no_one"/>
+ <menuitem name="Menus"
+ id="menu_website_menu_list"
+ action="action_website_menu"
+ parent="menu_website_global_configuration"
+ sequence="40"
+ groups="base.group_no_one"/>
+
</odoo>
diff --git a/addons/website/views/website_views.xml b/addons/website/views/website_views.xml
index d65e4dc2125..85bd643cb19 100644
--- a/addons/website/views/website_views.xml
+++ b/addons/website/views/website_views.xml
@@ -162,11 +162,38 @@
</record>
<!-- website.menu views -->
- <record id="action_website_menu" model="ir.actions.act_window">
- <field name="name">Website Menu</field>
- <field name="res_model">website.menu</field>
- <field name="view_mode">tree</field>
- <field name="context">{'search_default_my_websites':1}</field>
+ <record id="website_menus_form_view" model="ir.ui.view">
+ <field name="name">website.menu.form</field>
+ <field name="model">website.menu</field>
+ <field name="arch" type="xml">
+ <form string="Website Menus Settings">
+ <sheet>
+ <group>
+ <group>
+ <field name="name"/>
+ <field name="url"/>
+ <field name="page_id"/>
+ </group>
+ <group>
+ <field name="new_window"/>
+ <field name="sequence"/>
+ <field attrs="{'invisible': [('parent_id', '!=', False)]}" name="website_id"/>
+ </group>
+ <group>
+ <field name="parent_id"/>
+ </group>
+ </group>
+ <label string="Child Menus"/>
+ <field name="child_id">
+ <tree>
+ <field name="sequence" widget="handle"/>
+ <field name="name"/>
+ <field name="url"/>
+ </tree>
+ </field>
+ </sheet>
+ </form>
+ </field>
</record>
<record id="menu_tree" model="ir.ui.view">
@@ -203,6 +230,16 @@
</field>
</record>
+ <record id="action_website_menu" model="ir.actions.act_window">
+ <field name="name">Website Menu</field>
+ <field name="res_model">website.menu</field>
+ <field name="view_type">form</field>
+ <field name="view_mode">tree,form</field>
+ <field name="context">{'search_default_my_websites':1}</field>
+ <field name="view_id" ref="menu_tree"/>
+ <field name="target">current</field>
+ </record>
+
<!-- ir.ui.view views -->
<record model="ir.ui.view" id="view_view_form_extend">
<field name="model">ir.ui.view</field>
@@ -213,6 +250,7 @@
<field name="website_id" readonly="1"/>
<field name="key" readonly="1"/>
<field name="page_ids" invisible="1" />
+ <field name="first_page_id" attrs="{'invisible': [('page_ids', '=', [])]}" />
</field>
<sheet position="before">
<header>