diff options
| author | Rohan Patel <rop@odoo.com> | 2017-03-03 16:30:37 +0100 |
|---|---|---|
| committer | Thibault Delavallée <tde@odoo.com> | 2017-03-03 16:57:06 +0100 |
| commit | 79597a2b84c7ffab18f2c7b4d9015eac97e45707 (patch) | |
| tree | af578f5e3ba7856fcb001cf5dfa2b6412c7b7429 | |
| parent | 47b532638e82db78a7b9a4d4fb437a1fa29903e6 (diff) | |
[REF] website: merge Website and Website Admin menu items
This commit merge the two website menu items in order to ease user flow
inside Odoo. When clicking on the Website item a server action is called
that decides to redirect the user either to the dashboard if the user is
an admin or a website publisher, either to the website for other people.
Overriding this method allows to define a specific behavior. Future commit
will also redirect sales people to the website dashboard.
Dashboard itself is customized to add a header used to display a website
button. It will be used in future commits to add other new stuff to the
dashboard.
| -rw-r--r-- | addons/website/__manifest__.py | 4 | ||||
| -rw-r--r-- | addons/website/data/web_planner_data.xml | 2 | ||||
| -rw-r--r-- | addons/website/data/website_data.xml | 7 | ||||
| -rw-r--r-- | addons/website/models/website.py | 6 | ||||
| -rw-r--r-- | addons/website/static/description/icon_admin.png | bin | 21652 -> 0 bytes | |||
| -rw-r--r-- | addons/website/static/src/js/website.backendDashboard.js | 18 | ||||
| -rw-r--r-- | addons/website/static/src/less/website.backendDashboard.less | 68 | ||||
| -rw-r--r-- | addons/website/static/src/xml/website.backend.xml | 14 | ||||
| -rw-r--r-- | addons/website/views/res_config_views.xml | 6 | ||||
| -rw-r--r-- | addons/website/views/website_views.xml | 16 |
10 files changed, 124 insertions, 17 deletions
diff --git a/addons/website/__manifest__.py b/addons/website/__manifest__.py index aaba5cea675..5e62bf95162 100644 --- a/addons/website/__manifest__.py +++ b/addons/website/__manifest__.py @@ -17,18 +17,16 @@ Odoo Website CMS 'installable': True, 'data': [ 'data/website_data.xml', - 'data/web_planner_data.xml', 'security/website_security.xml', 'security/ir.model.access.csv', - 'views/website_templates.xml', 'views/website_navbar_templates.xml', 'views/snippets.xml', 'views/website_views.xml', 'views/res_config_views.xml', 'views/ir_actions_views.xml', - 'wizard/base_language_install_views.xml', + 'data/web_planner_data.xml', ], 'demo': [ 'data/website_demo.xml', diff --git a/addons/website/data/web_planner_data.xml b/addons/website/data/web_planner_data.xml index 0485cd3aac4..0cb1687dda8 100644 --- a/addons/website/data/web_planner_data.xml +++ b/addons/website/data/web_planner_data.xml @@ -709,7 +709,7 @@ <record id="planner_website" model="web.planner"> <field name="name">Website Planner</field> <field name="view_id" ref="website_planner"/> - <field name="menu_id" ref="website.menu_website"/> + <field name="menu_id" ref="website.menu_website_configuration"/> <field name="planner_application">planner_website</field> <field name="tooltip_planner"><![CDATA[ Plan your website strategy, design your pages, sell your products and grow your online business! diff --git a/addons/website/data/website_data.xml b/addons/website/data/website_data.xml index cef9cc4b437..9344ed70e4a 100644 --- a/addons/website/data/website_data.xml +++ b/addons/website/data/website_data.xml @@ -65,13 +65,6 @@ <field name="target">self</field> </record> - <record id="menu_website" model="ir.ui.menu"> - <field name="name">Website</field> - <field name="sequence" eval="200"/> - <field name="web_icon">website,static/description/icon.png</field> - <field name="action" ref="action_website"/> - </record> - <record id="base.open_menu" model="ir.actions.todo"> <field name="action_id" ref="action_website"/> <field name="state">open</field> diff --git a/addons/website/models/website.py b/addons/website/models/website.py index db918401eed..95a229cda71 100644 --- a/addons/website/models/website.py +++ b/addons/website/models/website.py @@ -601,6 +601,12 @@ class Website(models.Model): return urlparse.urljoin(cdn_url, uri) return uri + @api.model + def action_dashboard_redirect(self): + if self.env.user.has_group('base.group_system') or self.env.user.has_group('website.group_website_designer'): + return self.env.ref('website.backend_dashboard').read()[0] + return self.env.ref('website.action_website').read()[0] + class Menu(models.Model): diff --git a/addons/website/static/description/icon_admin.png b/addons/website/static/description/icon_admin.png Binary files differdeleted file mode 100644 index c3c37a0d645..00000000000 --- a/addons/website/static/description/icon_admin.png +++ /dev/null diff --git a/addons/website/static/src/js/website.backendDashboard.js b/addons/website/static/src/js/website.backendDashboard.js index 5caad853fcf..23e4c74a817 100644 --- a/addons/website/static/src/js/website.backendDashboard.js +++ b/addons/website/static/src/js/website.backendDashboard.js @@ -19,6 +19,7 @@ var Dashboard = Widget.extend(ControlPanelMixin, { template: "website.WebsiteDashboardMain", events: { 'click .js_link_analytics_settings': 'on_link_analytics_settings', + 'click .o_dashboard_action': 'on_dashboard_action_clicked', }, init: function(parent, context) { @@ -217,6 +218,23 @@ var Dashboard = Widget.extend(ControlPanelMixin, { this.update_cp(); }, + on_dashboard_action_clicked: function (ev) { + ev.preventDefault(); + var $action = $(ev.currentTarget); + var additional_context = {}; + if (this.date_range === 'week') { + additional_context = {'search_default_week': true} + } else if (this.date_range === 'month') { + additional_context = {'search_default_month': true} + } else if (this.date_range === 'year') { + additional_context = {'search_default_year': true} + } + this.do_action($action.attr('name'), { + additional_context: additional_context, + on_reverse_breadcrumb: this.on_reverse_breadcrumb + }); + }, + update_cp: function() { var self = this; if (!this.$searchview) { diff --git a/addons/website/static/src/less/website.backendDashboard.less b/addons/website/static/src/less/website.backendDashboard.less index 8c2c4737a3a..1e162f6c43b 100644 --- a/addons/website/static/src/less/website.backendDashboard.less +++ b/addons/website/static/src/less/website.backendDashboard.less @@ -128,6 +128,74 @@ } } + .o_dashboard_common { + .o_box { + display: flex; + flex-flow: row wrap; + justify-content: flex-start; + > .o_box_item { + @media (max-width: @screen-sm-min) { + flex: 1 1 200px; + display: block !important; + } + @media (min-width: @screen-sm-min) { + flex: 0 0 20%; + } + } + } + .o_inner_box { + padding-top: 10px; + text-align: center; + border: 1px solid @odoo-view-background-color; + height: 80px; + overflow: hidden; + text-overflow: ellipsis; + &.o_main { + background-color: @odoo-brand-optional; + &:hover { + background-color: darken(@odoo-brand-optional, 10%); + } + a { + color: white; + } + } + &.o_primary { + background-color: @odoo-brand-primary; + color: white; + &:hover { + background-color: darken(@odoo-brand-primary, 10%); + } + } + &.o_apps { + position: relative; + background-color: @odoo-brand-optional; + color: white; + .o_apps_hidden { + display: none; + &.o_apps_hide_panel { + position: absolute; + top: 0px; + right: 0px; + background: @brand-danger; + padding: 6px; + } + } + &:hover { + background-color: #45818E; + .o_apps_show { + display: none; + } + .o_apps_hidden { + display: block; + } + } + } + .o_highlight { + font-size: 27px; + } + } + } + .o_dashboard_visits { .o_demo_background { diff --git a/addons/website/static/src/xml/website.backend.xml b/addons/website/static/src/xml/website.backend.xml index 413c3d35631..992ffc5d821 100644 --- a/addons/website/static/src/xml/website.backend.xml +++ b/addons/website/static/src/xml/website.backend.xml @@ -8,6 +8,20 @@ <t t-name="website.WebsiteDashboardMain"> <div class="o_dashboards"> <div class="container-fluid o_website_dashboard"> + <t t-call="website.dashboard_header"/> + </div> + </div> + </t> + + <t t-name="website.dashboard_header"> + <div class="row o_dashboard_common"> + <div class="o_box"> + <a href="#" class="o_box_item o_dashboard_action" name="website.action_website" title="Go to Website"> + <div class="o_inner_box o_primary"> + <i class="fa fa-globe fa-3x"></i><br/> + Go to Website + </div> + </a> </div> </div> </t> diff --git a/addons/website/views/res_config_views.xml b/addons/website/views/res_config_views.xml index 5b05e220b1c..f923fa167a5 100644 --- a/addons/website/views/res_config_views.xml +++ b/addons/website/views/res_config_views.xml @@ -373,6 +373,10 @@ You can also edit the fields of the Extra Step page in eCommerce checkout."> <menuitem id="menu_website_global_configuration" parent="menu_website_configuration" sequence="100" name="Configuration" groups="base.group_system"/> - <menuitem id="menu_website_website_settings" parent="menu_website_global_configuration" name="Settings" action="action_website_configuration"/> + <menuitem name="Settings" + id="menu_website_website_settings" + action="action_website_configuration" + parent="menu_website_global_configuration" + groups="base.group_system"/> </odoo> diff --git a/addons/website/views/website_views.xml b/addons/website/views/website_views.xml index 9fbe8790a72..1b9b4c87fa5 100644 --- a/addons/website/views/website_views.xml +++ b/addons/website/views/website_views.xml @@ -2,11 +2,11 @@ <odoo> <data> <!-- Menu items --> - <menuitem name="Website Admin" + <menuitem name="Website" id="menu_website_configuration" sequence="9" - groups="website.group_website_publisher" - web_icon="website,static/description/icon_admin.png"/> + groups="base.group_user" + web_icon="website,static/description/icon.png"/> <!-- website views --> <record id="view_website_form" model="ir.ui.view"> @@ -124,11 +124,17 @@ <field name="tag">backend_dashboard</field> </record> + <record id="ir_actions_server_website_dashboard" model="ir.actions.server"> + <field name="name">Website: Dashboard</field> + <field name="model_id" ref="website.model_website"/> + <field name="state">code</field> + <field name="code">action = model.action_dashboard_redirect()</field> + </record> + <menuitem id="menu_dashboard" name="Dashboard" sequence="1" - action="website.backend_dashboard" - groups="website.group_website_publisher" + action="website.ir_actions_server_website_dashboard" parent="website.menu_website_configuration"/> </data> |
