summaryrefslogtreecommitdiff
path: root/addons
diff options
context:
space:
mode:
authorRémy Voet (ryv) <ryv@odoo.com>2020-02-03 16:07:15 +0000
committerRémy Voet (ryv) <ryv@odoo.com>2020-02-14 16:23:03 +0000
commit3a935af85aa8c0185b58866ab1c1ba5d9dc470ba (patch)
treefb860653a6e7eab024ea1828bbaca4d6393ea0cf /addons
parent67402bc5ecfb1dd077742137d8d8f222e1d75ff9 (diff)
[IMP] stock,mrp: change icon of json popover
The icon of the json popover become a warning icon when there is a issue. Also, create a field show_json_popover in mrp_production to avoid using d-none to put in invisible the popover. task-2178494 closes odoo/odoo#45420 X-original-commit: 270e8d34b2adec07e8ae3b8952514184d2a00b59 Signed-off-by: Simon Lejeune (sle) <sle@openerp.com>
Diffstat (limited to 'addons')
-rw-r--r--addons/mrp/models/mrp_workorder.py7
-rw-r--r--addons/mrp/views/mrp_workorder_views.xml6
-rw-r--r--addons/sale_stock/static/src/xml/sale_stock.xml2
-rw-r--r--addons/stock/static/src/js/popover_widget.js7
-rw-r--r--addons/stock/static/src/js/stock_rescheduling_popover.js3
-rw-r--r--addons/stock/static/src/xml/popover_widget.xml2
6 files changed, 18 insertions, 9 deletions
diff --git a/addons/mrp/models/mrp_workorder.py b/addons/mrp/models/mrp_workorder.py
index 74d9da400a5..71255432355 100644
--- a/addons/mrp/models/mrp_workorder.py
+++ b/addons/mrp/models/mrp_workorder.py
@@ -141,6 +141,7 @@ class MrpWorkorder(models.Model):
allowed_lots_domain = fields.One2many(comodel_name='stock.production.lot', compute="_compute_allowed_lots_domain")
is_finished_lines_editable = fields.Boolean(compute='_compute_is_finished_lines_editable')
json_popover = fields.Char('Popover Data JSON', compute='_compute_json_popover')
+ show_json_popover = fields.Boolean('Show Popover?', compute='_compute_json_popover')
def _compute_json_popover(self):
previous_wo_data = self.env['mrp.workorder'].read_group(
@@ -183,11 +184,13 @@ class MrpWorkorder(models.Model):
'color': 'text-danger',
'msg': _("Planned at the same time than other workorder(s) at %s" % wo.workcenter_id.display_name)
})
- color_icon = infos and infos[-1]['color'] or 'd-none'
+ color_icon = infos and infos[-1]['color'] or False
+ wo.show_json_popover = bool(color_icon)
wo.json_popover = json.dumps({
'infos': infos,
'color': color_icon,
- 'replan': color_icon not in ['d-none', 'text-primary']
+ 'icon': 'fa-exclamation-triangle' if color_icon in ['text-warning', 'text-danger'] else 'fa-info-circle',
+ 'replan': color_icon not in [False, 'text-primary']
})
# Both `date_planned_start` and `date_planned_finished` are related fields on `leave_id`. Let's say
diff --git a/addons/mrp/views/mrp_workorder_views.xml b/addons/mrp/views/mrp_workorder_views.xml
index 3deec91fca8..2c1a655ed6f 100644
--- a/addons/mrp/views/mrp_workorder_views.xml
+++ b/addons/mrp/views/mrp_workorder_views.xml
@@ -92,7 +92,8 @@
<field name="state"/>
<field name="activity_exception_decoration" widget="activity_exception"/>
<field name="company_id" groups="base.group_multi_company"/>
- <field name="json_popover" widget="mrp_workorder_popover" string=" "/>
+ <field name="show_json_popover" invisible="1"/>
+ <field name="json_popover" widget="mrp_workorder_popover" string=" " attrs="{'invisible': [('show_json_popover', '=', False)]}"/>
</tree>
</field>
</record>
@@ -154,7 +155,8 @@
<field name="date_planned_start" class="mr8 oe_inline" required="True"/>
<strong class="mr8 oe_inline">to</strong>
<field name="date_planned_finished" class="oe_inline" required="True"/>
- <field name="json_popover" widget="mrp_workorder_popover" class="oe_inline mx-2"/>
+ <field name="show_json_popover" invisible="1"/>
+ <field name="json_popover" widget="mrp_workorder_popover" class="oe_inline mx-2" attrs="{'invisible': [('show_json_popover', '=', False)]}"/>
</div>
<label for="date_start" string="Effective Date" attrs="{'invisible': [('date_start', '=', False)]}"/>
<div class="o_row" attrs="{'invisible': [('date_start', '=', False)]}">
diff --git a/addons/sale_stock/static/src/xml/sale_stock.xml b/addons/sale_stock/static/src/xml/sale_stock.xml
index 3621b8cf9bc..7b82c449f9d 100644
--- a/addons/sale_stock/static/src/xml/sale_stock.xml
+++ b/addons/sale_stock/static/src/xml/sale_stock.xml
@@ -44,7 +44,7 @@
</div>
<div t-name="sale_stock.DelayAlertWidget">
- <p>The deliveries
+ <p>The delivery
<t t-foreach="late_elements" t-as="late_element">
<a t-esc="late_element.name" href="#" t-att-element-id="late_element.id" t-att-element-model="model"/>,
</t> will be late.
diff --git a/addons/stock/static/src/js/popover_widget.js b/addons/stock/static/src/js/popover_widget.js
index 9aafd9bc057..58c54000e08 100644
--- a/addons/stock/static/src/js/popover_widget.js
+++ b/addons/stock/static/src/js/popover_widget.js
@@ -7,9 +7,10 @@ var QWeb = core.qweb;
var fieldRegistry = require('web.field_registry');
/**
- * Widget Popover for JSON field, by default render a simple html message
+ * Widget Popover for JSON field (char), by default render a simple html message
* {
* 'msg': '<CONTENT OF THE POPOVER>',
+ * 'icon': '<FONT AWESOME CLASS>' (optionnal),
* 'color': '<COLOR CLASS OF ICON>' (optionnal),
* 'title': '<TITLE OF POPOVER>' (optionnal),
* 'popoverTemplate': '<TEMPLATE OF THE TEMPLATE>' (optionnal)
@@ -22,6 +23,8 @@ var PopoverWidgetField = AbstractField.extend({
trigger: 'hover focus',
placement: 'top',
html: true,
+ color: 'text-primary',
+ icon: 'fa-info-circle',
_render: function () {
var value = JSON.parse(this.value);
@@ -30,7 +33,7 @@ var PopoverWidgetField = AbstractField.extend({
return;
}
this.$el.css('max-width', '17px');
- this.$el.html(QWeb.render(this.buttonTemplape, value));
+ this.$el.html(QWeb.render(this.buttonTemplape, _.defaults(value, {color: this.color, icon: this.icon})));
this.$el.find('a').prop('special_click', true);
this.$popover = $(QWeb.render(value.popoverTemplate || this.popoverTemplate, value));
this.$el.find('a').popover({
diff --git a/addons/stock/static/src/js/stock_rescheduling_popover.js b/addons/stock/static/src/js/stock_rescheduling_popover.js
index e30b88bace7..8c6ef56938a 100644
--- a/addons/stock/static/src/js/stock_rescheduling_popover.js
+++ b/addons/stock/static/src/js/stock_rescheduling_popover.js
@@ -9,8 +9,9 @@ var _t = core._t;
var PopoverStockPicking = PopoverWidgetField.extend({
title: _t('Planning Issue'),
- color: 'text-warning',
trigger: 'focus',
+ color: 'text-danger',
+ icon: 'fa-exclamation-triangle',
_render: function () {
this._super();
diff --git a/addons/stock/static/src/xml/popover_widget.xml b/addons/stock/static/src/xml/popover_widget.xml
index 37cffd522df..d9cf2b4fe8d 100644
--- a/addons/stock/static/src/xml/popover_widget.xml
+++ b/addons/stock/static/src/xml/popover_widget.xml
@@ -2,7 +2,7 @@
<templates id="template" xml:space="preserve">
<t t-name="stock.popoverButton">
- <a tabindex="0" t-attf-class="p-1 fa fa-info-circle #{ color || 'text-primary'}"/>
+ <a tabindex="0" t-attf-class="p-1 fa #{ icon || 'fa-info-circle'} #{ color || 'text-primary'}"/>
</t>
<div t-name="stock.popoverContent">