add workflow to equipments
This commit is contained in:
parent
8910886374
commit
0fe894d10f
42
equipment.py
42
equipment.py
@ -1,19 +1,27 @@
|
|||||||
from collections import defaultdict
|
from collections import defaultdict
|
||||||
from trytond.pool import Pool
|
from trytond.pool import Pool
|
||||||
from trytond.model import ModelSQL, ModelView, Unique, fields
|
from trytond.model import (
|
||||||
|
Workflow, ModelSQL, ModelView, Unique, fields)
|
||||||
from trytond.pyson import Eval
|
from trytond.pyson import Eval
|
||||||
from trytond.exceptions import UserError
|
from trytond.exceptions import UserError
|
||||||
|
|
||||||
class OpticalEquipment(ModelSQL, ModelView):
|
class OpticalEquipment(Workflow, ModelSQL, ModelView):
|
||||||
'Optical Equipment'
|
'Optical Equipment'
|
||||||
__name__ = 'optical_equipment.equipment'
|
__name__ = 'optical_equipment.equipment'
|
||||||
|
|
||||||
code_readonly = fields.Function(
|
code_readonly = fields.Function(
|
||||||
fields.Boolean("Code Readonly"), 'get_code_readonly')
|
fields.Boolean("Code Readonly"), 'get_code_readonly')
|
||||||
|
|
||||||
code = fields.Char(
|
code = fields.Char(
|
||||||
"Code", select=True,states={
|
"Code", select=True,states={'readonly': True })
|
||||||
'readonly': Eval('code_readonly', False),
|
|
||||||
})
|
state = fields.Selection([
|
||||||
|
('draft', "Draft"),
|
||||||
|
('registred', "Registred"),
|
||||||
|
('contrated', "Contrated")
|
||||||
|
], "State",
|
||||||
|
required=True, readonly=True, sort=False)
|
||||||
|
|
||||||
company = fields.Many2One('company.company', "Company")
|
company = fields.Many2One('company.company', "Company")
|
||||||
location = fields.Many2One('stock.location', "Location")
|
location = fields.Many2One('stock.location', "Location")
|
||||||
propietary = fields.Many2One('party.party', "Propietary")
|
propietary = fields.Many2One('party.party', "Propietary")
|
||||||
@ -59,6 +67,14 @@ class OpticalEquipment(ModelSQL, ModelView):
|
|||||||
('serial_unique', Unique(t, t.serial),
|
('serial_unique', Unique(t, t.serial),
|
||||||
'optical_equipment.msg_serial_unique')
|
'optical_equipment.msg_serial_unique')
|
||||||
]
|
]
|
||||||
|
cls._transitions = ({
|
||||||
|
('draft', 'registred'),
|
||||||
|
('registred', 'contrated'),
|
||||||
|
})
|
||||||
|
cls._buttons.update({
|
||||||
|
'draft': {},
|
||||||
|
'registred': {}})
|
||||||
|
|
||||||
|
|
||||||
def default_code_readonly(cls):
|
def default_code_readonly(cls):
|
||||||
pool = Pool()
|
pool = Pool()
|
||||||
@ -69,6 +85,10 @@ class OpticalEquipment(ModelSQL, ModelView):
|
|||||||
def get_code_readonly(self, name):
|
def get_code_readonly(self, name):
|
||||||
return self.default_code_readonly()
|
return self.default_code_readonly()
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def default_state(cls):
|
||||||
|
return 'draft'
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def _new_code(cls):
|
def _new_code(cls):
|
||||||
pool = Pool()
|
pool = Pool()
|
||||||
@ -78,3 +98,15 @@ class OpticalEquipment(ModelSQL, ModelView):
|
|||||||
if sequence:
|
if sequence:
|
||||||
return sequence.get()
|
return sequence.get()
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
@ModelView.button
|
||||||
|
@Workflow.transition('draft')
|
||||||
|
def draft(cls, equipments):
|
||||||
|
pass
|
||||||
|
#raise userError(str('draft'))
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
@ModelView.button
|
||||||
|
@Workflow.transition('registred')
|
||||||
|
def registred(cls, equipments):
|
||||||
|
pass
|
||||||
|
@ -15,11 +15,17 @@
|
|||||||
name="Equipment"
|
name="Equipment"
|
||||||
sequence="40"
|
sequence="40"
|
||||||
id="menu_equipment"/>
|
id="menu_equipment"/>
|
||||||
|
<!--
|
||||||
<record model="ir.action.act_window" id="act_optical_equipment">
|
<record model="ir.action.act_window" id="act_optical_equipment">
|
||||||
<field name="name">Equipments</field>
|
<field name="name">Equipments</field>
|
||||||
<field name="res_model">optical_equipment.equipment</field>
|
<field name="res_model">optical_equipment.equipment</field>
|
||||||
|
</record> -->
|
||||||
|
<record model="ir.action.act_window" id="act_optical_equipment_form">
|
||||||
|
<field name="name">Equipments</field>
|
||||||
|
<field name="res_model">optical_equipment.equipment</field>
|
||||||
|
<field name="search_value"></field>
|
||||||
</record>
|
</record>
|
||||||
<record model="ir.ui.view" id="optical_equipment_view_tree">
|
<record model="ir.ui.view" id="optical_equipment_view_tree">
|
||||||
<field name="model">optical_equipment.equipment</field>
|
<field name="model">optical_equipment.equipment</field>
|
||||||
<field name="type">tree</field>
|
<field name="type">tree</field>
|
||||||
<field name="name">optical_equipment_tree</field>
|
<field name="name">optical_equipment_tree</field>
|
||||||
@ -30,19 +36,63 @@
|
|||||||
<field name="name">optical_equipment_form</field>
|
<field name="name">optical_equipment_form</field>
|
||||||
</record>
|
</record>
|
||||||
<record model="ir.action.act_window.view" id="act_optical_equipment_view1">
|
<record model="ir.action.act_window.view" id="act_optical_equipment_view1">
|
||||||
<field name="sequence" eval="50"/>
|
<field name="sequence" eval="10"/>
|
||||||
<field name="view" ref="optical_equipment_view_tree"/>
|
<field name="view" ref="optical_equipment_view_tree"/>
|
||||||
<field name="act_window" ref="act_optical_equipment"/>
|
<field name="act_window" ref="act_optical_equipment_form"/>
|
||||||
</record>
|
</record>
|
||||||
<record model="ir.action.act_window.view" id="act_optical_equipment_view2">
|
<record model="ir.action.act_window.view" id="act_optical_equipment_view2">
|
||||||
<field name="sequence" eval="50"/>
|
<field name="sequence" eval="20"/>
|
||||||
<field name="view" ref="optical_equipment_view_form"/>
|
<field name="view" ref="optical_equipment_view_form"/>
|
||||||
<field name="act_window" ref="act_optical_equipment"/>
|
<field name="act_window" ref="act_optical_equipment_form"/>
|
||||||
|
</record>
|
||||||
|
<record model="ir.action.act_window.domain" id="act_optical_equipment_form_domain_draft">
|
||||||
|
<field name="name">Draft</field>
|
||||||
|
<field name="sequence" eval="10"/>
|
||||||
|
<field name="domain"
|
||||||
|
eval="[('state', '=', 'draft')]"
|
||||||
|
pyson="1"/>
|
||||||
|
<field name="count" eval="True"/>
|
||||||
|
<field name="act_window" ref="act_optical_equipment_form"/>
|
||||||
|
</record>
|
||||||
|
<record model="ir.action.act_window.domain" id="act_optical_equipment_form_domain_registred">
|
||||||
|
<field name="name">Registred</field>
|
||||||
|
<field name="sequence" eval="20"/>
|
||||||
|
<field name="domain"
|
||||||
|
eval="[('state', '=', 'registred')]"
|
||||||
|
pyson="1"/>
|
||||||
|
<field name="count" eval="True"/>
|
||||||
|
<field name="act_window" ref="act_optical_equipment_form"/>
|
||||||
|
</record>
|
||||||
|
<record model="ir.action.act_window.domain" id="act_optical_equipment_form_domain_contrated">
|
||||||
|
<field name="name">Contrated</field>
|
||||||
|
<field name="sequence" eval="30"/>
|
||||||
|
<field name="domain"
|
||||||
|
eval="[('state', '=', 'contrated')]"
|
||||||
|
pyson="1"/>
|
||||||
|
<field name="count" eval="True"/>
|
||||||
|
<field name="act_window" ref="act_optical_equipment_form"/>
|
||||||
|
</record>
|
||||||
|
<record model="ir.action.act_window.domain" id="act_optical_equipment_form_domain_all">
|
||||||
|
<field name="name">All</field>
|
||||||
|
<field name="sequence" eval="9999"/>
|
||||||
|
<field name="domain"></field>
|
||||||
|
<field name="act_window" ref="act_optical_equipment_form"/>
|
||||||
|
</record>
|
||||||
|
<record model="ir.model.button" id="draft_equipment_button">
|
||||||
|
<field name="name">draft</field>
|
||||||
|
<field name="string">Draft</field>
|
||||||
|
<field name="model" search="[('model', '=', 'optical_equipment.equipment')]"/>
|
||||||
|
</record>
|
||||||
|
<record model="ir.model.button" id="registred_equipment_button">
|
||||||
|
<field name="name">registred</field>
|
||||||
|
<field name="string">Registred</field>
|
||||||
|
<field name="model" search="[('model', '=', 'optical_equipment.equipment')]"/>
|
||||||
</record>
|
</record>
|
||||||
<menuitem parent="menu_equipment"
|
<menuitem parent="menu_equipment"
|
||||||
action="act_optical_equipment"
|
action="act_optical_equipment_form"
|
||||||
sequence="40"
|
sequence="10"
|
||||||
id="menu_optical_equipment"/>
|
id="menu_optical_equipment_form"/>
|
||||||
|
|
||||||
<record model="ir.ui.menu-res.group"
|
<record model="ir.ui.menu-res.group"
|
||||||
id="menu_party_group_equipment_admin">
|
id="menu_party_group_equipment_admin">
|
||||||
<field name="menu" ref="menu_equipment"/>
|
<field name="menu" ref="menu_equipment"/>
|
||||||
|
@ -49,5 +49,10 @@
|
|||||||
<field name="subscription_history"/>
|
<field name="subscription_history"/>
|
||||||
</page>
|
</page>
|
||||||
</notebook>
|
</notebook>
|
||||||
|
<group col="2" colspan="2" id="button">
|
||||||
|
<button name="draft"/>
|
||||||
|
<button name="registred"/>
|
||||||
|
</group>
|
||||||
|
<label name="state"/>
|
||||||
|
<field name="state"/>
|
||||||
</form>
|
</form>
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0"?>
|
<?xml version="1.0"?>
|
||||||
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
|
<!-- 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 repository contains the full copyright notices and license terms.-->
|
||||||
<tree>
|
<tree>
|
||||||
<field name="code"/>
|
<field name="code"/>
|
||||||
<field name="company"/>
|
<field name="company"/>
|
||||||
|
Loading…
Reference in New Issue
Block a user