From 50f62495626055cd6f3f4b1fc5f0f862ce8017b0 Mon Sep 17 00:00:00 2001 From: sinergia Date: Mon, 18 Jul 2022 12:52:18 -0500 Subject: [PATCH] tabs in maintenance --- __init__.py | 1 + maintenance.py | 37 ++++++++++++++++++++++++++++--------- maintenance.xml | 5 +++++ view/maintenance_form.xml | 29 ++++++++++++++++++++--------- 4 files changed, 54 insertions(+), 18 deletions(-) diff --git a/__init__.py b/__init__.py index d6a030e..5ffbd9e 100644 --- a/__init__.py +++ b/__init__.py @@ -16,6 +16,7 @@ def register(): equipment.OpticalEquipment, configuration_equipment.Configuration, maintenance.Maintenance, + maintenance.MaintenanceActivity, maintenance.MaintenanceLine, subscription.Subscription, subscription.SubscriptionEquipment, diff --git a/maintenance.py b/maintenance.py index 92572c1..15110bc 100644 --- a/maintenance.py +++ b/maintenance.py @@ -32,11 +32,17 @@ class Maintenance(Workflow, ModelSQL, ModelView): #when the maintenance is in agended status diary = fields.One2Many('optical_equipment.maintenance.diary', 'diary') estimated_agended = fields.DateTime("Date Maintenance") + state_agended = fields.Selection([('no_agenda', "No agenda"), + ('agended', "Agended"), + ('in_progress', "In progress"), + ('finish', "Finish"), + ('failed', "Failed")], "State Agenda") technical = fields.Many2One('company.employee', "Technical") - maintenance_lines = fields.One2Many('optical_equipment.maintenance.line', 'maintenance_activity', - 'Maintenance Lines', states={ - 'readonly': Eval('state') != 'draft',}) + #Preventive maintenance + + # maintenance_activity = fields.Many2Many('optical_equipment.maintenance-product.product', 'activity', 'maintenance', "Maintenance Activitys") + maintenance_lines = fields.One2Many('optical_equipment.maintenance.line', 'maintenance', 'Lines') @classmethod def __setup__(cls): @@ -52,7 +58,6 @@ class Maintenance(Workflow, ModelSQL, ModelView): 'in_progress': {}, 'finished': {}, }) - @staticmethod def default_company(): return Transaction().context.get('company') @@ -60,7 +65,11 @@ class Maintenance(Workflow, ModelSQL, ModelView): @classmethod def default_state(cls): return 'draft' - + + @classmethod + def default_state_agended(cls): + return 'no_agenda' + @classmethod @ModelView.button @Workflow.transition('draft') @@ -85,12 +94,22 @@ class Maintenance(Workflow, ModelSQL, ModelView): def finished(cls, maintenances): pass +class MaintenanceActivity(ModelSQL): + 'Maintenance - Products' + __name__ = 'optical_equipment.maintenance-product.product' + + activity = fields.Many2One('product.product', "Activity", select=True) + maintenance = fields.Many2One('optical_equipment.maintenance', "Maintenance", select=True) + class MaintenanceLine(ModelSQL, ModelView): 'Maintenance Line' __name__ = 'optical_equipment.maintenance.line' + product = fields.Many2One('product.product', 'Product', + ondelete='RESTRICT',domain=[ + If(Eval('sale_state').in_(['draft']), + ('maintenance_activity', '=', True), + ()), + ],) maintenance = fields.Many2One('optical_equipment.maintenance', 'Maintenance', ondelete='CASCADE', select=True) - maintenance_activity = fields.Many2One('product.product', 'Maintenance activity', - ondelete='RESTRICT', - domain=[If(Eval('state').in_(['draft']), - ('maintenance_activity', '=', True),()),]) + maintenance_activity = fields.Many2One('product.product', 'Maintenance activity') diff --git a/maintenance.xml b/maintenance.xml index 3dc7df3..11e1e5c 100644 --- a/maintenance.xml +++ b/maintenance.xml @@ -94,5 +94,10 @@ action="act_maintenance_form" sequence="30" id="menu_maintenance_form"/> + + optical_equipment.maintenance.line + form + maintenance_line_form + diff --git a/view/maintenance_form.xml b/view/maintenance_form.xml index a40d536..734b8d0 100644 --- a/view/maintenance_form.xml +++ b/view/maintenance_form.xml @@ -15,15 +15,26 @@