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 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.exceptions import UserError
|
||||
|
||||
class OpticalEquipment(ModelSQL, ModelView):
|
||||
class OpticalEquipment(Workflow, ModelSQL, ModelView):
|
||||
'Optical Equipment'
|
||||
__name__ = 'optical_equipment.equipment'
|
||||
|
||||
code_readonly = fields.Function(
|
||||
fields.Boolean("Code Readonly"), 'get_code_readonly')
|
||||
|
||||
code = fields.Char(
|
||||
"Code", select=True,states={
|
||||
'readonly': Eval('code_readonly', False),
|
||||
})
|
||||
"Code", select=True,states={'readonly': True })
|
||||
|
||||
state = fields.Selection([
|
||||
('draft', "Draft"),
|
||||
('registred', "Registred"),
|
||||
('contrated', "Contrated")
|
||||
], "State",
|
||||
required=True, readonly=True, sort=False)
|
||||
|
||||
company = fields.Many2One('company.company', "Company")
|
||||
location = fields.Many2One('stock.location', "Location")
|
||||
propietary = fields.Many2One('party.party', "Propietary")
|
||||
@ -59,6 +67,14 @@ class OpticalEquipment(ModelSQL, ModelView):
|
||||
('serial_unique', Unique(t, t.serial),
|
||||
'optical_equipment.msg_serial_unique')
|
||||
]
|
||||
cls._transitions = ({
|
||||
('draft', 'registred'),
|
||||
('registred', 'contrated'),
|
||||
})
|
||||
cls._buttons.update({
|
||||
'draft': {},
|
||||
'registred': {}})
|
||||
|
||||
|
||||
def default_code_readonly(cls):
|
||||
pool = Pool()
|
||||
@ -69,6 +85,10 @@ class OpticalEquipment(ModelSQL, ModelView):
|
||||
def get_code_readonly(self, name):
|
||||
return self.default_code_readonly()
|
||||
|
||||
@classmethod
|
||||
def default_state(cls):
|
||||
return 'draft'
|
||||
|
||||
@classmethod
|
||||
def _new_code(cls):
|
||||
pool = Pool()
|
||||
@ -78,3 +98,15 @@ class OpticalEquipment(ModelSQL, ModelView):
|
||||
if sequence:
|
||||
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,9 +15,15 @@
|
||||
name="Equipment"
|
||||
sequence="40"
|
||||
id="menu_equipment"/>
|
||||
<!--
|
||||
<record model="ir.action.act_window" id="act_optical_equipment">
|
||||
<field name="name">Equipments</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 model="ir.ui.view" id="optical_equipment_view_tree">
|
||||
<field name="model">optical_equipment.equipment</field>
|
||||
@ -30,19 +36,63 @@
|
||||
<field name="name">optical_equipment_form</field>
|
||||
</record>
|
||||
<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="act_window" ref="act_optical_equipment"/>
|
||||
<field name="act_window" ref="act_optical_equipment_form"/>
|
||||
</record>
|
||||
<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="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>
|
||||
<menuitem parent="menu_equipment"
|
||||
action="act_optical_equipment"
|
||||
sequence="40"
|
||||
id="menu_optical_equipment"/>
|
||||
action="act_optical_equipment_form"
|
||||
sequence="10"
|
||||
id="menu_optical_equipment_form"/>
|
||||
|
||||
<record model="ir.ui.menu-res.group"
|
||||
id="menu_party_group_equipment_admin">
|
||||
<field name="menu" ref="menu_equipment"/>
|
||||
|
@ -49,5 +49,10 @@
|
||||
<field name="subscription_history"/>
|
||||
</page>
|
||||
</notebook>
|
||||
|
||||
<group col="2" colspan="2" id="button">
|
||||
<button name="draft"/>
|
||||
<button name="registred"/>
|
||||
</group>
|
||||
<label name="state"/>
|
||||
<field name="state"/>
|
||||
</form>
|
||||
|
Loading…
Reference in New Issue
Block a user