fix: se limpia código para migración 6.8

This commit is contained in:
sinergia 2023-11-07 16:42:00 -05:00
parent 84cf02962a
commit cc8f90a9d7
6 changed files with 200 additions and 193 deletions

View File

@ -1,7 +1,7 @@
# This file is part of Tryton. The COPYRIGHT file at the top level of
# this repository contains the full copyright notices and license terms.
from trytond.model import (
Workflow, ModelSQL, ModelView,fields, sequence_ordered)
Workflow, ModelSQL, ModelView, fields, sequence_ordered)
from trytond.pyson import Bool, Eval, If, Id, Equal
from trytond.pool import Pool
from trytond.modules.company import CompanyReport
@ -10,21 +10,22 @@ from trytond.transaction import Transaction
_digits = (16, 2)
_states = {'readonly': If(Eval('state') != 'draft', True)}
class Calibration(ModelSQL, ModelView):
'Calibration of Maintenance'
__name__ = 'optical_equipment.maintenance.calibration'
_states={'readonly': True}
_states = {'readonly': True}
maintenance = fields.Many2One('optical_equipment.maintenance', "Maintenance", ondelete="CASCADE",
select=True, required=True)
required=True)
graph_dates = fields.Char("Graph Dates", readonly=True)
diopter = fields.Float("Diopter", states=_states)
mean = fields.Float("Mean", states=_states)
dev_std = fields.Float("Standart Desviation", states=_states)
uncertain_type_A = fields.Float("Uncertain Type A", states=_states)
uncertain_pattern = fields.Float("Uncertain Pattern", states=_states)
k_c_calibration = fields.Float("K Crt Calibration",states=_states)
k_c_calibration = fields.Float("K Crt Calibration", states=_states)
uncertain_U_b1 = fields.Float("U_b1", states=_states)
d_resolution = fields.Float("d_resolution", states=_states)
uncertain_U_b2_dig = fields.Float("U_b2", states=_states)
@ -37,6 +38,7 @@ class Calibration(ModelSQL, ModelView):
state = fields.Char('State')
class CalibrationSample(sequence_ordered(), ModelView, ModelSQL):
'Samples of Calibration'
__name__ = 'optical_equipment.maintenance.calibration_sample'
@ -48,7 +50,7 @@ class CalibrationSample(sequence_ordered(), ModelView, ModelSQL):
domain=[('product', '=', Eval('product'))],
depends=['product'])
value_equipment = fields.Float("Value in Equipment", _digits, required=True,
states={'readonly': Eval('value_patterns') == None})
states={'readonly': Eval('value_patterns') is None})
mistake = fields.Float("Mistake", _digits)
mistake_rate = fields.Float("% Mistake", _digits,
states={'readonly': True},

View File

@ -15,6 +15,7 @@ from trytond.modules.product import price_digits
import datetime
from datetime import timedelta, date
class Cron(metaclass=PoolMeta):
__name__ = 'ir.cron'
@ -32,17 +33,16 @@ class Contract(Workflow, ModelSQL, ModelView):
_rec_name = 'number'
_order_name = 'number'
company = fields.Many2One(
'company.company', "Company", required=True, select=True,
'company.company', "Company", required=True,
states={
'readonly': (Eval('state') != 'draft') | Eval('party', True),
},help="Make the subscription belong to the company.")
}, help="Make the subscription belong to the company.")
number = fields.Char(
"Number", readonly=True, select=True,
"Number", readonly=True,
help="The main identification of the subscription.")
reference = fields.Char(
"Reference", select=True,
"Reference",
help="The identification of an external origin.")
description = fields.Char("Description",
states={
@ -52,7 +52,7 @@ class Contract(Workflow, ModelSQL, ModelView):
'party.party', "Party", required=True,
states={
'readonly': (Eval('state') != 'draft') | Eval('party', True),
},help="The party who subscribes.")
}, help="The party who subscribes.")
equipment = fields.Many2One('optical_equipment.equipment', "Equipment")
contact = fields.Many2One('party.contact_mechanism', "Contact", required=True)
invoice_address = fields.Many2One('party.address', 'Invoice Address',
@ -73,7 +73,6 @@ class Contract(Workflow, ModelSQL, ModelView):
'readonly': Eval('state') != 'draft',
})
maintenance_services = fields.Many2Many('optical_equipment_maintenance.service-equipment.contract',
'contract', 'maintenance_services', "Prorogues",
states={'readonly': Eval('state') != 'draft'})
@ -93,7 +92,6 @@ class Contract(Workflow, ModelSQL, ModelView):
], "State", readonly=True, required=False, sort=False,
help="The current state of the subscription.")
@classmethod
def __setup__(cls):
super(Contract, cls).__setup__()
@ -109,13 +107,12 @@ class Contract(Workflow, ModelSQL, ModelView):
('cancelled', 'draft')
})
cls._buttons.update({
'draft': {'invisible': Eval('state').in_(['draft','closed'])},
'draft': {'invisible': Eval('state').in_(['draft', 'closed'])},
'running': {'invisible': Eval('state').in_(['cancelled', 'running'])},
'closed': {'invisible': Eval('state').in_(['draft','cancelled'])},
'closed': {'invisible': Eval('state').in_(['draft', 'cancelled'])},
'cancelled': {'invisible': Eval('state').in_(['draft', 'cancelled'])}
})
@staticmethod
def default_company():
return Transaction().context.get('company')
@ -130,7 +127,7 @@ class Contract(Workflow, ModelSQL, ModelView):
Config = pool.get('optical_equipment.configuration')
config = Config(4)
if config.contract_sequence != None:
if config.contract_sequence is not None:
if not contracts[0].number:
try:
contracts[0].number = config.contract_sequence.get()
@ -172,7 +169,6 @@ class Contract(Workflow, ModelSQL, ModelView):
equipment.state = "uncontrated"
equipment.save()
@classmethod
@ModelView.button
@Workflow.transition('running')
@ -184,7 +180,7 @@ class Contract(Workflow, ModelSQL, ModelView):
equipment.save()
cls.set_number(contracts)
contract.state='running'
contract.state = 'running'
contract.save()
@classmethod
@ -201,7 +197,8 @@ class ContractMaintenanceServices(ModelSQL):
'Contract - Maintenance Services'
__name__ = 'optical_equipment_maintenance.service-equipment.contract'
maintenance_services = fields.Many2One('optical_equipment_maintenance.service', "Maintenance Service", select=True)
maintenance_services = fields.Many2One(
'optical_equipment_maintenance.service', "Maintenance Service", )
contract = fields.Many2One('optical_equipment.contract', "Contract")
@ -209,8 +206,8 @@ class ContractEquipment(ModelSQL):
'Optical Equipment - Contract'
__name__ = 'optical_equipment.contract-optical_equipment.equipment'
equipment = fields.Many2One('optical_equipment.equipment', 'Equipment', select=True)
contract = fields.Many2One('optical_equipment.contract', 'Contract', select=True)
equipment = fields.Many2One('optical_equipment.equipment', 'Equipment', )
contract = fields.Many2One('optical_equipment.contract', 'Contract', )
class ContractReport(CompanyReport):
@ -237,10 +234,10 @@ class CreateContractInitial(ModelView, ModelSQL):
currency = fields.Many2One('currency.currency', 'Currency', required=True)
company = fields.Many2One(
'company.company', "Company", readonly=True, required=True, select=True,
'company.company', "Company", readonly=True, required=True,
states={
'readonly': (Eval('state') != 'draft') | Eval('party', True),
},help="Make the subscription belong to the company.")
}, help="Make the subscription belong to the company.")
party = fields.Many2One(
'party.party', "Party", required=True,
help="The party who subscribes.")
@ -282,7 +279,6 @@ class CreateContractInitial(ModelView, ModelSQL):
Date = pool.get('ir.date')
return Date.today()
@fields.depends('party')
def on_change_party(self):
pool = Pool()
@ -299,13 +295,12 @@ class CreateContract(Wizard):
__name__ = 'optical_equipment.maintenance.contract'
start = StateView('optical_equipment_create.contract',
'optical_equipment.create_contract_view_form',[
'optical_equipment.create_contract_view_form', [
Button('Cancel', 'end', 'tryton-cancel'),
Button('Create', 'create_contract', 'tryton-ok', default=True),
])
create_contract = StateAction('optical_equipment.act_contract_form')
def default_start(self, fields):
if self.record:
default = {'party': self.record.propietary.id,
@ -340,16 +335,16 @@ class CreateContract(Wizard):
equipments.append(line.equipment.id)
if maintenance_service.contract_origin:
contract=maintenance_service.contract_origin
contract.history_equipments+=tuple(equipments)
contract.current_equipments=equipments
contract.invoice_address=dates['invoice_address']
contract.contact=dates['contact']
contract.start_date=dates['start_date']
contract.end_date=dates['end_date']
contract.maintenance_services+=prorogues
contract.state='draft'
contract.price_contract=dates['unit_price']
contract = maintenance_service.contract_origin
contract.history_equipments += tuple(equipments)
contract.current_equipments = equipments
contract.invoice_address = dates['invoice_address']
contract.contact = dates['contact']
contract.start_date = dates['start_date']
contract.end_date = dates['end_date']
contract.maintenance_services += prorogues
contract.state = 'draft'
contract.price_contract = dates['unit_price']
else:
contract = Contract(party=dates['party'],
invoice_address=dates['invoice_address'],

View File

@ -7,7 +7,7 @@ class Diary(ModelSQL, ModelView):
__name__ = 'optical_equipment_maintenance.diary'
_rec_name = 'code'
code = fields.Char("Code", select=True, states={'readonly': True})
code = fields.Char("Code", states={'readonly': True})
date_expected = fields.DateTime("Expected Date", required=True)
date_estimated = fields.DateTime("Estimated Date")
date_end = fields.DateTime("Date End")

View File

@ -37,7 +37,7 @@ class OpticalEquipment(DeactivableMixin, Workflow, ModelSQL, ModelView):
}
code = fields.Char(
"Code", select=True, states={'readonly': True})
"Code", states={'readonly': True})
state = fields.Selection([('draft', "Draft"),
('registred', "Registred"),
@ -119,11 +119,11 @@ 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',
states={'readonly': True})
sale_destination = fields.Reference("Sale Destination", selection='get_destination', select=True,
sale_destination = fields.Reference("Sale Destination", selection='get_destination',
states={'readonly': True})
shipment_destination = fields.Reference("Stock Move", selection='get_shipment', select=True,
shipment_destination = fields.Reference("Stock Move", selection='get_shipment',
states={'readonly': True})
rec_name = fields.Function(fields.Char("rec_name"), 'get_rec_name')
@ -354,24 +354,24 @@ class EquipmentMaintenance(ModelSQL, ModelView):
'Optical Equipment - Equipment - Maintenance'
__name__ = 'optical_equipment.maintenance-optical_equipment.equipment'
equipment = fields.Many2One('optical_equipment.equipment', 'Equipment', select=True)
maintenance = fields.Many2One('optical_equipment.maintenance', 'Maintenances', select=True)
equipment = fields.Many2One('optical_equipment.equipment', 'Equipment', )
maintenance = fields.Many2One('optical_equipment.maintenance', 'Maintenances', )
class EquipmentContract(ModelSQL, ModelView):
'Optical Equipment - Contracs Equipment'
__name__ = 'optical_equipment.contract-optical_equipment.equipment'
equipment = fields.Many2One('optical_equipment.equipment', 'Equipment', select=True)
contract = fields.Many2One('optical_equipment.contract', 'Contract', select=True)
equipment = fields.Many2One('optical_equipment.equipment', 'Equipment', )
contract = fields.Many2One('optical_equipment.contract', 'Contract', )
class EquipmentParty(ModelSQL, ModelView):
'Optical Equipment - Party'
__name__ = 'optical_equipment.equipment-party.party'
equipment = fields.Many2One('optical_equipment.equipment', "Equipment", select=True)
party = fields.Many2One('party.party', "Party", select=True)
equipment = fields.Many2One('optical_equipment.equipment', "Equipment", )
party = fields.Many2One('party.party', "Party", )
class ChangePropietary(ModelView):

View File

@ -33,16 +33,16 @@ class MaintenanceService(Workflow, ModelSQL, ModelView):
_states = {'readonly': If(Eval('state') != 'draft', True)}
code = fields.Char("Code", readonly=True, select=True)
reference = fields.Char("Reference", select=True,
code = fields.Char("Code", readonly=True, )
reference = fields.Char("Reference",
help="The identification of an external origin.")
description = fields.Char("Description", states=_states)
sale_date = fields.Char("Sale Date")
contract_origin = fields.Reference(
"Contract Base", selection='get_origin_contract', select=True,
"Contract Base", selection='get_origin_contract',
states={'readonly': If(Eval('state') == 'finished', True)})
sale_origin = fields.Reference(
"Sale Origin", selection='get_origin', select=True,
"Sale Origin", selection='get_origin',
states={'readonly': True})
company = fields.Many2One('company.company', "Company", readonly=True)
maintenance_type = fields.Selection([('initial', 'Initial'),
@ -285,12 +285,12 @@ class MaintenanceServiceLine(Workflow, ModelSQL, ModelView):
'readonly': Eval('state').in_(['finished'])}
service_maintenance = fields.Many2One('optical_equipment_maintenance.service', "Maintenance Service",
ondelete='CASCADE', select=True,
ondelete='CASCADE',
domain=[('state', 'in', ['draft', 'in_progress', 'finished']),
('propietary', '=', Eval('propietary'))],
states=_states)
code = fields.Char(
"Code", select=True, states={'readonly': True})
"Code", states={'readonly': True})
maintenance_type = fields.Selection([('initial', 'Initial'),
('preventive', 'Preventive'),
('corrective', 'Corrective')], "Maintenance Type", states=_states)
@ -782,7 +782,7 @@ class MaintenanceLine(ModelSQL, ModelView):
'optical_equipment.maintenance',
'Maintenance',
ondelete='CASCADE',
select=True)
)
replacement = fields.Many2One('product.product', 'Replacement', ondelete='RESTRICT',
domain=[('replacement', '=', True)],
states={'invisible': (If(Eval('line_maintenance_activity') == True, True)) | (If(Eval('line_replace') == False, True)),

View File

@ -1,5 +1,5 @@
#This file is part of Tryton. The COPYRIGHT file at the top level of
#this repository contains the full copyright notices and license terms
# This file is part of Tryton. The COPYRIGHT file at the top level of
# this repository contains the full copyright notices and license terms
from trytond.pool import Pool, PoolMeta
from trytond.model import (
ModelView, ModelSQL, fields, Exclude)
@ -38,24 +38,25 @@ _EQUIPMENT_TYPE = [
NON_MEASURABLE = ['service']
class Template(metaclass=PoolMeta):
'Template'
__name__ = 'product.template'
product = fields.Many2One('optical_equipment.maintenance', "Maintenance Activity",
ondelete='CASCADE', select=True)
ondelete='CASCADE',)
equipment = fields.Boolean('It is equipment',
states={'invisible': Eval('type', 'goods') != 'goods',
})
maintenance_activity = fields.Boolean('Maintenance Activity',
states={'invisible': Eval('type', 'service') != 'service',
'readonly': If(Eval('equipment',True), True)
| If(Eval('replacement',True), True)
'readonly': If(Eval('equipment', True), True)
| If(Eval('replacement', True), True)
})
replacement = fields.Boolean('Replacement',
states={'invisible': Eval('type', 'goods') != 'goods',
'readonly': If(Eval('equipment',True), True)
| If(Eval('maintenance_activity',True), True)
'readonly': If(Eval('equipment', True), True)
| If(Eval('maintenance_activity', True), True)
})
maintenance_required = fields.Boolean('Miantenance Required',
@ -66,9 +67,9 @@ class Template(metaclass=PoolMeta):
use = fields.Selection(_USE, 'Use',
states={'required': Eval('equipment', False)},
depends={'equipment'})
biomedical_class = fields.Selection(_BIOMEDICAL_CLASS,'Biomedical Class',
biomedical_class = fields.Selection(_BIOMEDICAL_CLASS, 'Biomedical Class',
states={'required': Eval('equipment', False)})
main_tecnology = fields.Selection(_MAIN_TECNOLOGY,'Main tecnology',
main_tecnology = fields.Selection(_MAIN_TECNOLOGY, 'Main tecnology',
states={'required': Eval('equipment', False)})
calibration = fields.Boolean("Apply calibration")
observation = fields.Text('Observation')
@ -86,58 +87,70 @@ class Template(metaclass=PoolMeta):
domain=[('parent', '=', Eval('model_category'))],)
# Iformation Equipment
origin_country = fields.Many2One('country.country',"Origin Country")
origin_country = fields.Many2One('country.country', "Origin Country")
refurbish = fields.Boolean('Refurbish')
software_required = fields.Boolean("Software Required")
software_version = fields.Char("Software version",
states={'invisible': If(~Eval('software_required'), True)},
depends={'software_required'})
#These are measurements required for the equipments, are in this place
# These are measurements required for the equipments, are in this place
# for manage of class 'product.template'
temperature_min = fields.Float("Temp Min")
temperature_max = fields.Float("Temp Max")
temperature_uom = fields.Many2One('product.uom', 'Temperature UOM',
domain=[('category', '=', Id('optical_equipment', "uom_cat_temperature"))],
states={'invisible' : If(Eval('temperature_min') == None, True)})
domain=[
('category', '=', Id(
'optical_equipment', "uom_cat_temperature"))],
states={'invisible': If(Eval('temperature_min') is None, True)})
frequency = fields.Float("Frequency")
frequency_uom = fields.Many2One('product.uom', "Frequency UOM",
domain=[('category', '=', Id('optical_equipment', 'uom_cat_frequency'))],
states={'invisible' : If(Eval('frequency') == None, True)}
domain=[
('category', '=', Id(
'optical_equipment', 'uom_cat_frequency'))],
states={'invisible': If(Eval('frequency') is None, True)}
)
moisture_min = fields.Float("Moisture Min")
moisture_max = fields.Float("Moisture Max")
moisture_uom = fields.Many2One('product.uom', "Moisture UOM",
domain=[('category', '=', Id('optical_equipment', 'uom_cat_relative_humedity'))],
states={'invisible' : If(Eval('moisture_min') == None, True)},
domain=[
('category', '=', Id(
'optical_equipment', 'uom_cat_relative_humedity'))],
states={'invisible': If(Eval('moisture_min') is None, True)},
)
electrical_equipment = fields.Boolean("Electrical Equipment")
frequency = fields.Float("Frequency",
states={'invisible': ~Bool(Eval('electrical_equipment'))})
frequency_uom = fields.Many2One('product.uom', "Frequency UOM",
domain=[('category', '=', Id('optical_equipment', 'uom_cat_frequency'))],
states={'invisible' : If(Eval('frequency') == None, True) |
domain=[
('category', '=', Id(
'optical_equipment', 'uom_cat_frequency'))],
states={'invisible': If(Eval('frequency') is None, True) |
~Eval('electrical_equipment', True)},
)
voltageAC = fields.Float("Voltage AC",
states={'invisible': ~Bool(Eval('electrical_equipment'))})
voltageAC_uom = fields.Many2One('product.uom', "Voltage AC UOM",
domain=[('category', '=', Id('optical_equipment', 'uom_cat_electrical_tension'))],
states={'invisible' : If(Eval('voltageAC') == None, True) |
domain=[
('category', '=', Id(
'optical_equipment', 'uom_cat_electrical_tension'))],
states={'invisible': If(Eval('voltageAC') is None, True) |
~Eval('electrical_equipment', True)},
)
voltageDC = fields.Float("Voltage DC",
states={'invisible': ~Bool(Eval('electrical_equipment'))})
voltageDC_uom = fields.Many2One('product.uom', "Voltage DC UOM",
domain=[('category', '=', Id('optical_equipment', 'uom_cat_electrical_tension'))],
states={'invisible' : If(Eval('voltageDC') == None, True) |
domain=[
('category', '=', Id(
'optical_equipment', 'uom_cat_electrical_tension'))],
states={'invisible': If(Eval('voltageDC') is None, True) |
~Eval('electrical_equipment', True)},)
useful_life = fields.Integer("Useful life")
warranty = fields.Integer("Warranty")
#### calibration parameters
# calibration parameters
use_pattern = fields.Many2One('optical_equipment.use_pattern', "Use Pattern", ondelete='RESTRICT',
states={'required': Eval('calibration', True)})
measuring_range = fields.Selection([
@ -146,23 +159,23 @@ class Template(metaclass=PoolMeta):
MEP = fields.Float("MEP", states={'required': Eval('calibration', False)},)
uncertainy_pattern = fields.Float("Uncertainy Pattern", states={'required': Eval('calibration', True)},
help="Agregar valores separados por ',' Ej:-5,+5,-10,+10")
k_pattern = fields.Char("K Pattern",states={'required': Eval('calibration', False)},
k_pattern = fields.Char("K Pattern", states={'required': Eval('calibration', False)},
help="Agregar valores separados por ',' Ej:-5,+5,-10,+10")
k_pattern_list = fields.One2Many('optical_equipment.product_pattern', 'product', "List of patterns K",
states={'required': Eval('calibration', False)},)
resolution_type = fields.Selection([('',""),
resolution_type = fields.Selection([('', ""),
('analoga', "Analoga"),
('digital', "Digital")], "Resolution Type",
states={'required': Eval('calibration', False)},)
d_resolution = fields.Float("Resolution d",
states={'invisible': If(Eval('resolution_type') != 'digital', True)},)
analog_resolution = fields.Float("Analog resolution",
states={'invisible': If(Eval('resolution_type') != 'analoga', True),},)
states={'invisible': If(Eval('resolution_type') != 'analoga', True), },)
a_factor_resolution = fields.Float("(a) Resolution",
states={'invisible': If(Eval('resolution_type') != 'analoga', True)},)
Usubi = fields.Integer("Usub i",states={'required': Eval('calibration', False)},)
Usubi = fields.Integer("Usub i", states={'required': Eval('calibration', False)},)
#maintenance activities
# maintenance activities
initial_operation = fields.Boolean("Verificación inicial de funcionamiento")
check_equipment = fields.Boolean("Revisión del Equipo")
check_electric_system = fields.Boolean("Revisión del sistema electríco")
@ -175,7 +188,7 @@ class Template(metaclass=PoolMeta):
def view_attributes(cls):
return super(Template, cls).view_attributes() + [
('//page[@id="features"]', 'states', {
'invisible': ~Eval('equipment'),}),
'invisible': ~Eval('equipment'), }),
('//page[@id="calibration"]', 'states', {
'invisible': ~Eval('calibration')},),
('//page[@id="maintenance_activities"]', 'states', {
@ -227,19 +240,15 @@ class Template(metaclass=PoolMeta):
def default_biomedical_class():
return 'n/a'
def default_main_tecnology():
return None
def default_calibration():
return False
def default_refurbish():
return False
def default_refurbish():
return False
@ -304,9 +313,9 @@ class Template(metaclass=PoolMeta):
@fields.depends('equipment', 'replacement')
def on_change_equipment(self):
if self.equipment:
self.replacement=False
self.maintenance_activity=False
self.calibration=False
self.replacement = False
self.maintenance_activity = False
self.calibration = False
self.mark_category = None
self.model_category = None
self.reference_category = None
@ -381,13 +390,14 @@ class Image(metaclass=PoolMeta):
return super().copy(images, default=default)
class UsePattern(ModelSQL,ModelView):
class UsePattern(ModelSQL, ModelView):
"Use Pattern"
__name__ = 'optical_equipment.use_pattern'
_rec_name = 'name_pattern'
name_pattern = fields.Char('Name Pattern', required=True)
class Pattern(ModelSQL, ModelView):
"Pattern K of equipment"
__name__ = 'optical_equipment.product_pattern'