[MOV] website: move page manager related views and action

A "page manager" list view will be created for key models in other
apps. This commit prepares a convention that all other apps will follow:
a dedicated file for the views related to this feature, named
"website_pages_views.xml".

task-2889981

Part-of: odoo/odoo#98937
This commit is contained in:
qsm-odoo
2022-09-05 05:21:05 +02:00
parent a7592986b7
commit 5a949b6d1c
3 changed files with 180 additions and 176 deletions
+1
View File
@@ -95,6 +95,7 @@
'views/snippets/s_website_form.xml',
'views/snippets/s_searchbar.xml',
'views/website_views.xml',
'views/website_pages_views.xml',
'views/website_visitor_views.xml',
'views/res_config_settings_views.xml',
'views/website_rewrite.xml',
@@ -0,0 +1,179 @@
<?xml version="1.0"?>
<odoo>
<record id="website_pages_form_view" model="ir.ui.view">
<field name="name">website.page.form</field>
<field name="model">website.page</field>
<field name="arch" type="xml">
<form string="Website Page Settings">
<sheet>
<group>
<group>
<field name="name"/>
<field name="url"/>
<field name="view_id" context="{'display_website': True}" options="{'always_reload': True}"/>
<field name="website_id" options="{'no_create': True}" groups="website.group_multi_website"/>
<field name="track"/>
</group>
<group>
<field name="website_indexed"/>
<field name="is_published"/>
<field name="date_publish"/>
</group>
</group>
<label for="menu_ids" string="Related Menu Items"/>
<field name="menu_ids"/>
</sheet>
</form>
</field>
</record>
<record id="website_page_properties_view_form" model="ir.ui.view">
<field name="name">website.page.properties.form.view</field>
<field name="model">website.page</field>
<field name="arch" type="xml">
<form>
<notebook>
<page string="Name">
<group class="mt-4">
<field name="name" string="Page Name" widget="page_name" placeholder="e.g. Home Page"/>
</group>
<group>
<field name="website_id" invisible="1"/>
<field name="url" string="Page URL" widget="page_url" required="True"/>
</group>
</page>
<page string="Publish">
<group class="mt-4">
<field name="is_in_menu" string="Show in Top Menu" widget="boolean_toggle"/>
</group>
<group>
<field name="is_homepage" string="Use as Homepage" widget="boolean_toggle"/>
</group>
<group>
<field name="website_indexed" string="Indexed" widget="boolean_toggle" help="Hide this page from search results"/>
</group>
<group>
<field name="is_published" string="Published" widget="boolean_toggle"/>
</group>
<group>
<field name="date_publish" widget="datetime"/>
</group>
<group>
<field name="visibility"/>
<field name="visibility_password_display" attrs="{'invisible': [('visibility', '!=', 'password')], 'required': [('visibility', '=', 'password')]}" password="True" string="Password"/>
<field name="groups_id" attrs="{'invisible': [('visibility', '!=', 'restricted_group')]}" string="Authorized Groups" widget="many2many_tags"/>
</group>
</page>
</notebook>
</form>
</field>
</record>
<record id="website_pages_tree_view" model="ir.ui.view">
<field name="name">website.page.list</field>
<field name="model">website.page</field>
<field name="arch" type="xml">
<tree js_class="website_page_list" string="Website Pages" default_order="url" create="false">
<field name="is_homepage" invisible="1"/>
<field name="name" string="Page Title" widget="fa_prefix" options="{'icon': 'fa-home fa-lg', 'visibility': 'is_homepage', 'title': 'Home page of the current website'}"/>
<field name="url"/>
<field name="view_id" invisible="1"/>
<field name="website_indexed"/>
<field name="is_in_menu" string="Is In Main Menu"/>
<field name="is_seo_optimized" string="Is SEO optimized"/>
<field name="is_published" string="Is Published"/>
<field name="create_uid" invisible="1"/>
<field name="write_uid" widget="many2one_avatar" optional="hidden"/>
<field name="write_date" optional="hidden"/>
<field name="website_id" groups="website.group_multi_website"/>
<field name="track" optional="hidden"/>
<button name="action_manage_page" title="Manage this page" icon="fa-cog fa-lg"/>
<button name="action_optimize_seo" title="Optimize SEO of this page" icon="fa-search fa-lg"/>
<button name="action_edit_page" title="Edit code in backend" icon="fa-bug fa-lg" groups="base.group_no_one"/>
<button name="action_clone_page" title="Clone this page" icon="fa-clone fa-lg"/>
<button name="action_delete_page" title="Delete this page" icon="fa-trash fa-lg"/>
</tree>
</field>
</record>
<record id="website_pages_view_search" model="ir.ui.view">
<field name="name">website.page.view.search</field>
<field name="model">website.page</field>
<field name="arch" type="xml">
<search string="Website Pages" >
<field name="url"/>
<filter string="Published" name="published" domain="[('website_published', '=', True)]"/>
<filter string="Not published" name="not_published" domain="[('website_published', '=', False)]"/>
<separator/>
<filter string="Tracked" name="tracked" domain="[('track', '=', True)]"/>
<filter string="Not tracked" name="not_tracked" domain="[('track', '=', False)]"/>
</search>
</field>
</record>
<record id="action_website_pages_list" model="ir.actions.act_window">
<field name="name">Website Pages</field>
<field name="res_model">website.page</field>
<field name="view_mode">tree</field>
<field name="view_id" ref="website.website_pages_tree_view"/>
</record>
<menuitem id="menu_website_pages_list"
parent="menu_site"
sequence="20"
name="Pages"
action="action_website_pages_list"/>
<!-- Extension of views for ir.ui.view and link with the page manager -->
<record id="view_view_form_extend" model="ir.ui.view">
<field name="model">ir.ui.view</field>
<field name="inherit_id" ref="base.view_view_form"/>
<field name="arch" type="xml">
<field name="inherit_id" position="attributes">
<attribute name="context">{'display_website': True}</attribute>
<attribute name="options">{'always_reload': True}</attribute>
</field>
<field name="model" position="before">
<field name="website_id" options="{'no_create': True}" groups="website.group_multi_website"/>
<label for="key"/>
<div class='o_row'>
<field name="key"/>
<button title="Show site map" attrs="{'invisible': [('type', '!=', 'qweb')]}" name="website.action_show_viewhierarchy" icon="fa-sitemap" type="action" class="btn btn-link"/>
</div>
<field name="page_ids" invisible="1" />
<field name="first_page_id" attrs="{'invisible': [('page_ids', '=', [])]}" />
<field name="visibility" attrs="{'invisible': [('type', '!=', 'qweb')]}" />
<field name="visibility_password_display" attrs="{'invisible': [('visibility', '!=', 'password')]}" password="True" string="Visibility Password" />
</field>
<sheet position="before">
<header>
<button type="action" name="website.action_website_pages_list"
string="Go to Page Manager" attrs="{'invisible': [('page_ids', '=', [])]}"/>
</header>
</sheet>
<field name="active" position="after">
<field name="track" attrs="{'invisible': [('type', '!=', 'qweb')]}" widget="boolean_toggle"/>
</field>
</field>
</record>
<record id="view_view_tree_inherit_website" model="ir.ui.view">
<field name="model">ir.ui.view</field>
<field name="inherit_id" ref="base.view_view_tree"/>
<field name="arch" type="xml">
<tree position="attributes">
<attribute name="decoration-muted">not active</attribute>
</tree>
<field name="name" position="after">
<field name="active" invisible="1"/>
<field name="website_id" groups="website.group_multi_website"/>
</field>
<field name="xml_id" position="before">
<field name="key" groups="website.group_multi_website"/>
</field>
</field>
</record>
</odoo>
-176
View File
@@ -101,127 +101,6 @@
<field name="target">current</field>
</record>
<!-- ====== website.page views =========================================
==================================================================== -->
<record id="website_pages_form_view" model="ir.ui.view">
<field name="name">website.page.form</field>
<field name="model">website.page</field>
<field name="arch" type="xml">
<form string="Website Page Settings">
<sheet>
<group>
<group>
<field name="name"/>
<field name="url"/>
<field name="view_id" context="{'display_website': True}" options="{'always_reload': True}"/>
<field name="website_id" options="{'no_create': True}" groups="website.group_multi_website"/>
<field name="track"/>
</group>
<group>
<field name="website_indexed"/>
<field name="is_published"/>
<field name="date_publish"/>
</group>
</group>
<label for="menu_ids" string="Related Menu Items"/>
<field name="menu_ids"/>
</sheet>
</form>
</field>
</record>
<record id="website_page_properties_view_form" model="ir.ui.view">
<field name="name">website.page.properties.form.view</field>
<field name="model">website.page</field>
<field name="arch" type="xml">
<form>
<notebook>
<page string="Name">
<group class="mt-4">
<field name="name" string="Page Name" widget="page_name" placeholder="e.g. Home Page"/>
</group>
<group>
<field name="website_id" invisible="1"/>
<field name="url" string="Page URL" widget="page_url" required="True"/>
</group>
</page>
<page string="Publish">
<group class="mt-4">
<field name="is_in_menu" string="Show in Top Menu" widget="boolean_toggle"/>
</group>
<group>
<field name="is_homepage" string="Use as Homepage" widget="boolean_toggle"/>
</group>
<group>
<field name="website_indexed" string="Indexed" widget="boolean_toggle" help="Hide this page from search results"/>
</group>
<group>
<field name="is_published" string="Published" widget="boolean_toggle"/>
</group>
<group>
<field name="date_publish" widget="datetime"/>
</group>
<group>
<field name="visibility"/>
<field name="visibility_password_display" attrs="{'invisible': [('visibility', '!=', 'password')], 'required': [('visibility', '=', 'password')]}" password="True" string="Password"/>
<field name="groups_id" attrs="{'invisible': [('visibility', '!=', 'restricted_group')]}" string="Authorized Groups" widget="many2many_tags"/>
</group>
</page>
</notebook>
</form>
</field>
</record>
<record id="website_pages_tree_view" model="ir.ui.view">
<field name="name">website.page.list</field>
<field name="model">website.page</field>
<field name="arch" type="xml">
<tree js_class="website_page_list" string="Website Pages" default_order="url" create="false">
<field name="is_homepage" invisible="1"/>
<field name="name" string="Page Title" widget="fa_prefix" options="{'icon': 'fa-home fa-lg', 'visibility': 'is_homepage', 'title': 'Home page of the current website'}"/>
<field name="url"/>
<field name="view_id" invisible="1"/>
<field name="website_indexed"/>
<field name="is_in_menu" string="Is In Main Menu"/>
<field name="is_seo_optimized" string="Is SEO optimized"/>
<field name="is_published" string="Is Published"/>
<field name="create_uid" invisible="1"/>
<field name="write_uid" widget="many2one_avatar" optional="hidden"/>
<field name="write_date" optional="hidden"/>
<field name="website_id" groups="website.group_multi_website"/>
<field name="track" optional="hidden"/>
<button name="action_manage_page" title="Manage this page" icon="fa-cog fa-lg"/>
<button name="action_optimize_seo" title="Optimize SEO of this page" icon="fa-search fa-lg"/>
<button name="action_edit_page" title="Edit code in backend" icon="fa-bug fa-lg" groups="base.group_no_one"/>
<button name="action_clone_page" title="Clone this page" icon="fa-clone fa-lg"/>
<button name="action_delete_page" title="Delete this page" icon="fa-trash fa-lg"/>
</tree>
</field>
</record>
<record id="website_pages_view_search" model="ir.ui.view">
<field name="name">website.page.view.search</field>
<field name="model">website.page</field>
<field name="arch" type="xml">
<search string="Website Pages" >
<field name="url"/>
<filter string="Published" name="published" domain="[('website_published', '=', True)]"/>
<filter string="Not published" name="not_published" domain="[('website_published', '=', False)]"/>
<separator/>
<filter string="Tracked" name="tracked" domain="[('track', '=', True)]"/>
<filter string="Not tracked" name="not_tracked" domain="[('track', '=', False)]"/>
</search>
</field>
</record>
<record id="action_website_pages_list" model="ir.actions.act_window">
<field name="name">Website Pages</field>
<field name="res_model">website.page</field>
<field name="view_mode">tree</field>
<field name="view_id" ref="website.website_pages_tree_view"/>
</record>
<!-- ====== website.menu views =========================================
==================================================================== -->
<record id="website_menus_form_view" model="ir.ui.view">
@@ -304,55 +183,6 @@
<!-- ====== ir.ui.view views ============================================
==================================================================== -->
<record model="ir.ui.view" id="view_view_form_extend">
<field name="model">ir.ui.view</field>
<field name="inherit_id" ref="base.view_view_form"/>
<field name="arch" type="xml">
<field name="inherit_id" position="attributes">
<attribute name="context">{'display_website': True}</attribute>
<attribute name="options">{'always_reload': True}</attribute>
</field>
<field name="model" position="before">
<field name="website_id" options="{'no_create': True}" groups="website.group_multi_website"/>
<label for="key"/>
<div class='o_row'>
<field name="key"/>
<button title="Show site map" attrs="{'invisible': [('type', '!=', 'qweb')]}" name="website.action_show_viewhierarchy" icon="fa-sitemap" type="action" class="btn btn-link"/>
</div>
<field name="page_ids" invisible="1" />
<field name="first_page_id" attrs="{'invisible': [('page_ids', '=', [])]}" />
<field name="visibility" attrs="{'invisible': [('type', '!=', 'qweb')]}" />
<field name="visibility_password_display" attrs="{'invisible': [('visibility', '!=', 'password')]}" password="True" string="Visibility Password" />
</field>
<sheet position="before">
<header>
<button type="action" name="website.action_website_pages_list"
string="Go to Page Manager" attrs="{'invisible': [('page_ids', '=', [])]}"/>
</header>
</sheet>
<field name="active" position="after">
<field name="track" attrs="{'invisible': [('type', '!=', 'qweb')]}" widget="boolean_toggle"/>
</field>
</field>
</record>
<record id="view_view_tree_inherit_website" model="ir.ui.view">
<field name="model">ir.ui.view</field>
<field name="inherit_id" ref="base.view_view_tree"/>
<field name="arch" type="xml">
<tree position="attributes">
<attribute name="decoration-muted">not active</attribute>
</tree>
<field name="name" position="after">
<field name="active" invisible="1"/>
<field name="website_id" groups="website.group_multi_website"/>
</field>
<field name="xml_id" position="before">
<field name="key" groups="website.group_multi_website"/>
</field>
</field>
</record>
<record id="view_view_qweb" model="ir.ui.view">
<field name="name">View Hierarchy</field>
<field name="type">qweb</field>
@@ -606,12 +436,6 @@
name="Go to Website"
action="website.website_preview"/>
<menuitem id="menu_website_pages_list"
parent="menu_site"
sequence="20"
name="Pages"
action="action_website_pages_list"/>
<menuitem id="menu_edit_menu"
parent="menu_site"
sequence="30"