diff options
| author | Rémy Voet (ryv) <ryv@odoo.com> | 2020-02-03 16:07:15 +0000 |
|---|---|---|
| committer | Rémy Voet (ryv) <ryv@odoo.com> | 2020-02-14 16:23:03 +0000 |
| commit | 3a935af85aa8c0185b58866ab1c1ba5d9dc470ba (patch) | |
| tree | fb860653a6e7eab024ea1828bbaca4d6393ea0cf /addons | |
| parent | 67402bc5ecfb1dd077742137d8d8f222e1d75ff9 (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.py | 7 | ||||
| -rw-r--r-- | addons/mrp/views/mrp_workorder_views.xml | 6 | ||||
| -rw-r--r-- | addons/sale_stock/static/src/xml/sale_stock.xml | 2 | ||||
| -rw-r--r-- | addons/stock/static/src/js/popover_widget.js | 7 | ||||
| -rw-r--r-- | addons/stock/static/src/js/stock_rescheduling_popover.js | 3 | ||||
| -rw-r--r-- | addons/stock/static/src/xml/popover_widget.xml | 2 |
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"> |
