From 79597a2b84c7ffab18f2c7b4d9015eac97e45707 Mon Sep 17 00:00:00 2001 From: Rohan Patel Date: Fri, 3 Mar 2017 16:30:37 +0100 Subject: [PATCH] [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. --- addons/website/__manifest__.py | 4 +- addons/website/data/web_planner_data.xml | 2 +- addons/website/data/website_data.xml | 7 -- addons/website/models/website.py | 6 ++ .../website/static/description/icon_admin.png | Bin 21652 -> 0 bytes .../static/src/js/website.backendDashboard.js | 18 +++++ .../src/less/website.backendDashboard.less | 68 ++++++++++++++++++ .../static/src/xml/website.backend.xml | 14 ++++ addons/website/views/res_config_views.xml | 6 +- addons/website/views/website_views.xml | 16 +++-- 10 files changed, 124 insertions(+), 17 deletions(-) delete mode 100644 addons/website/static/description/icon_admin.png 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 @@ Website Planner - + planner_website self - - Website - - website,static/description/icon.png - - - open 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 deleted file mode 100644 index c3c37a0d6451d1c29ede195d59b01046df104bb2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21652 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 LTe(=#BH(`krWT!x 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 @@
+ +
+
+
+ + + 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."> - + 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 @@ - + groups="base.group_user" + web_icon="website,static/description/icon.png"/> @@ -124,11 +124,17 @@ backend_dashboard + + Website: Dashboard + + code + action = model.action_dashboard_redirect() + +