summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRohan Patel <rop@odoo.com>2017-03-03 16:30:37 +0100
committerThibault Delavallée <tde@odoo.com>2017-03-03 16:57:06 +0100
commit79597a2b84c7ffab18f2c7b4d9015eac97e45707 (patch)
treeaf578f5e3ba7856fcb001cf5dfa2b6412c7b7429
parent47b532638e82db78a7b9a4d4fb437a1fa29903e6 (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__.py4
-rw-r--r--addons/website/data/web_planner_data.xml2
-rw-r--r--addons/website/data/website_data.xml7
-rw-r--r--addons/website/models/website.py6
-rw-r--r--addons/website/static/description/icon_admin.pngbin21652 -> 0 bytes
-rw-r--r--addons/website/static/src/js/website.backendDashboard.js18
-rw-r--r--addons/website/static/src/less/website.backendDashboard.less68
-rw-r--r--addons/website/static/src/xml/website.backend.xml14
-rw-r--r--addons/website/views/res_config_views.xml6
-rw-r--r--addons/website/views/website_views.xml16
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
deleted file mode 100644
index c3c37a0d645..00000000000
--- a/addons/website/static/description/icon_admin.png
+++ /dev/null
Binary files differ
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>