From 7bf05f485763f9e9b94be10f5dc7bd0484152070 Mon Sep 17 00:00:00 2001 From: sinergia Date: Wed, 10 Aug 2022 23:16:03 -0500 Subject: [PATCH] changes to equipments --- equipment.py | 21 ++++++++++++++++++--- purchase.py | 1 + view/optical_equipment_serial_tree.xml | 7 +------ 3 files changed, 20 insertions(+), 9 deletions(-) diff --git a/equipment.py b/equipment.py index 7cb1d81..1d685f5 100644 --- a/equipment.py +++ b/equipment.py @@ -8,6 +8,7 @@ from trytond.pyson import Eval, If from trytond.transaction import Transaction from trytond.i18n import gettext from trytond.exceptions import UserError +from trytond.model.exceptions import AccessError _MAINTENANCE_FREQUENCY = [("none", ''), @@ -97,15 +98,16 @@ class OpticalEquipment(DeactivableMixin, Workflow, ModelSQL, ModelView): maintenance_frequency = fields.Selection(_MAINTENANCE_FREQUENCY, "Maintenance Frequency", depends=['propietary']) - purchase_origin = fields.Reference("Purchase Origin", selection='get_origin', select=True) + purchase_origin = fields.Reference("Purchase Origin", selection='get_origin',select=True, + states=_states) - del _states_serial + del _states @classmethod def _get_origin(cls): 'Return list of Model names for origin Reference' pool = Pool() - Purchase = pool.get('purchase.purchase') + Purchase = pool.get('purchase.line') return [Purchase.__name__] @@ -236,6 +238,19 @@ class OpticalEquipment(DeactivableMixin, Workflow, ModelSQL, ModelView): # def draft(cls, equipments): # pass + + + @classmethod + def delete(cls, equipments): + for equipment in equipments: + if equipment.purchase_origin: + raise AccessError( + gettext('estos equipos no se pueden borrar')) + elif equipment.state != 'draft' and equipment.serial != None: + raise AccessError( + gettext('estos equipos no se pueden borrar')) + super(OpticalEquipment, cls).delete(equipments) + @classmethod @ModelView.button @Workflow.transition('registred') diff --git a/purchase.py b/purchase.py index 9940ebf..c041fcf 100644 --- a/purchase.py +++ b/purchase.py @@ -63,6 +63,7 @@ class Purchase(metaclass=PoolMeta): health_register=line.health_register, software_version=line.product.software_version, maintenance_frequency="none", + purchase_origin=line, ) equipment.save() else: diff --git a/view/optical_equipment_serial_tree.xml b/view/optical_equipment_serial_tree.xml index 89f1442..95640f6 100644 --- a/view/optical_equipment_serial_tree.xml +++ b/view/optical_equipment_serial_tree.xml @@ -3,14 +3,9 @@ this repository contains the full copyright notices and license terms.--> - - - + - -