diff options
| author | Jigar Patel <jat@openerp.com> | 2019-07-18 10:10:29 +0000 |
|---|---|---|
| committer | Simon Lejeune <sle@openerp.com> | 2019-08-28 08:30:42 +0000 |
| commit | 90df41f0da787d7f4c98543c7fdb9f2e2db8b71c (patch) | |
| tree | 08b1a44694fbe9f388cdce33136e609ac3e654c6 | |
| parent | a5d42ff6d9a22b28ef3cfd48bbd4351e76f16793 (diff) | |
[IMP] mrp: improve the usability of workorder Gantt view
- display WO in red which has a late planned start date.
- hide the WO which are in done or cancel state.
- show progress of WO.
task-1939533
| -rw-r--r-- | addons/mrp/models/mrp_workorder.py | 10 | ||||
| -rw-r--r-- | addons/mrp/static/src/scss/mrp_gantt.scss | 19 | ||||
| -rw-r--r-- | addons/mrp/views/mrp_templates.xml | 1 | ||||
| -rw-r--r-- | addons/mrp/views/mrp_workorder_views.xml | 22 |
4 files changed, 47 insertions, 5 deletions
diff --git a/addons/mrp/models/mrp_workorder.py b/addons/mrp/models/mrp_workorder.py index 75f18a7c4dc..d904616a9b3 100644 --- a/addons/mrp/models/mrp_workorder.py +++ b/addons/mrp/models/mrp_workorder.py @@ -83,6 +83,7 @@ class MrpWorkorder(models.Model): duration_percent = fields.Integer( 'Duration Deviation (%)', compute='_compute_duration', group_operator="avg", readonly=True, store=True) + progress = fields.Float('Progress Done (%)', digits=(16, 2), compute='_compute_progress') operation_id = fields.Many2one( 'mrp.routing.workcenter', 'Operation') # Should be used differently as BoM can change in the meantime @@ -232,6 +233,15 @@ class MrpWorkorder(models.Model): else: order.duration_percent = 0 + def _compute_progress(self): + for order in self: + if order.state == 'done': + order.progress = 100 + elif order.duration_expected: + order.progress = order.duration * 100 / order.duration_expected + else: + order.progress = 0 + def _compute_working_users(self): """ Checks whether the current user is working, all the users currently working and the last user that worked. """ for order in self: diff --git a/addons/mrp/static/src/scss/mrp_gantt.scss b/addons/mrp/static/src/scss/mrp_gantt.scss new file mode 100644 index 00000000000..5d6ed467b73 --- /dev/null +++ b/addons/mrp/static/src/scss/mrp_gantt.scss @@ -0,0 +1,19 @@ +@mixin gantt-decoration-color($color) { + background-image: linear-gradient($color, $color); + background-color: lighten($color, 10%); + &:before { + content: none; + } +} + +.o_mrp_workorder_gantt .o_gantt_view .o_gantt_row_container .o_gantt_row .o_gantt_cell .o_gantt_pill_wrapper { + div.o_gantt_pill.decoration-success { + @include gantt-decoration-color($success); + } + div.o_gantt_pill.decoration-warning { + @include gantt-decoration-color(gray('500')); + } + div.o_gantt_pill.decoration-danger { + @include gantt-decoration-color($danger); + } +} diff --git a/addons/mrp/views/mrp_templates.xml b/addons/mrp/views/mrp_templates.xml index bdf3c619b4d..427a0e09b26 100644 --- a/addons/mrp/views/mrp_templates.xml +++ b/addons/mrp/views/mrp_templates.xml @@ -12,6 +12,7 @@ <xpath expr="." position="inside"> <link rel="stylesheet" type="text/scss" href="/mrp/static/src/scss/mrp_bom_report.scss" /> <link rel="stylesheet" type="text/scss" href="/mrp/static/src/scss/mrp_fields.scss" /> + <link rel="stylesheet" type="text/scss" href="/mrp/static/src/scss/mrp_gantt.scss" /> </xpath> </template> diff --git a/addons/mrp/views/mrp_workorder_views.xml b/addons/mrp/views/mrp_workorder_views.xml index f160ec9cae4..a87fabbcd13 100644 --- a/addons/mrp/views/mrp_workorder_views.xml +++ b/addons/mrp/views/mrp_workorder_views.xml @@ -335,7 +335,13 @@ <field name="name">mrp.production.work.order.gantt.production</field> <field name="model">mrp.workorder</field> <field name="arch" type="xml"> - <gantt date_stop="date_planned_finished" date_start="date_planned_start" string="Operations" default_group_by="production_id" create="0"> + <gantt class="o_mrp_workorder_gantt" date_stop="date_planned_finished" date_start="date_planned_start" string="Operations" default_group_by="production_id" create="0" + progress="progress" plan="0" + decoration-danger="date_planned_start < current_date and state in ['pending', 'ready']" + decoration-success="state == 'done'" + decoration-warning="state == 'cancel'"> + <field name="date_planned_start"/> + <field name="state"/> </gantt> </field> </record> @@ -344,7 +350,13 @@ <field name="name">mrp.workorder.view.gantt</field> <field name="model">mrp.workorder</field> <field name="arch" type="xml"> - <gantt date_stop="date_planned_finished" date_start="date_planned_start" string="Operations" default_group_by="workcenter_id" create="0"> + <gantt class="o_mrp_workorder_gantt" date_stop="date_planned_finished" date_start="date_planned_start" string="Operations" default_group_by="workcenter_id" create="0" + progress="progress" plan="0" + decoration-danger="date_planned_start < current_date and state in ['pending', 'ready']" + decoration-success="state == 'done'" + decoration-warning="state == 'cancel'"> + <field name="date_planned_start"/> + <field name="state"/> </gantt> </field> </record> @@ -409,7 +421,7 @@ <field name="view_mode">gantt,tree,form,calendar,pivot,graph</field> <field name="search_view_id" ref="view_mrp_production_workorder_form_view_filter"/> <field name="view_id" ref="mrp_workorder_view_gantt"/> - <field name="context">{'search_default_work_center': True}</field> + <field name="context">{'search_default_work_center': True, 'search_default_ready': True, 'search_default_progress': True, 'search_default_pending': True}</field> <field name="help" type="html"> <p class="o_view_nocontent_smiling_face"> Start a new work order @@ -429,7 +441,7 @@ <field name="view_mode">gantt,tree,form,calendar,pivot,graph</field> <field name="search_view_id" ref="view_mrp_production_workorder_form_view_filter"/> <field name="view_id" ref="workcenter_line_gantt_production"/> - <field name="context">{'search_default_production': True}</field> + <field name="context">{'search_default_production': True, 'search_default_ready': True, 'search_default_progress': True, 'search_default_pending': True}</field> <field name="help" type="html"> <p class="o_view_nocontent_smiling_face"> Start a new work order @@ -447,7 +459,7 @@ <field name="name">Work Orders</field> <field name="type">ir.actions.act_window</field> <field name="res_model">mrp.workorder</field> - <field name="view_mode">tree,kanban,form,calendar,pivot,graph</field> + <field name="view_mode">tree,kanban,form,calendar,pivot,graph,gantt</field> <field name="search_view_id" ref="view_mrp_production_workorder_form_view_filter"/> <field name="context">{'search_default_ready': True, 'search_default_progress': True, 'search_default_pending': True}</field> <field name="help" type="html"> |
