diff --git a/equipment.py b/equipment.py
index d52f335..58617fc 100644
--- a/equipment.py
+++ b/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
diff --git a/equipment.xml b/equipment.xml
index 5d29471..4528483 100644
--- a/equipment.xml
+++ b/equipment.xml
@@ -15,11 +15,17 @@
name="Equipment"
sequence="40"
id="menu_equipment"/>
+
+
+ Equipments
+ optical_equipment.equipment
+
-
+
optical_equipment.equipment
tree
optical_equipment_tree
@@ -30,19 +36,63 @@
optical_equipment_form
-
+
-
+
-
+
-
+
+
+
+ Draft
+
+
+
+
+
+
+ Registred
+
+
+
+
+
+
+ Contrated
+
+
+
+
+
+
+ All
+
+
+
+
+
+ draft
+ Draft
+
+
+
+ registred
+ Registred
+
+ action="act_optical_equipment_form"
+ sequence="10"
+ id="menu_optical_equipment_form"/>
+