Reviewers: ,


Please review this at http://codereview.tryton.org/290002/

Affected files:
  M work.py
  M work.xml


Index: work.py
===================================================================

--- a/work.py
+++ b/work.py
@@ -61,11 +61,7 @@
     state = fields.Selection([
             ('opened', 'Opened'),
             ('done', 'Done'),
-            ], 'State',
-        states={
-            'invisible': Eval('type') != 'task',
-            'required': Eval('type') == 'task',
-            }, select=True, depends=['type'])
+            ], 'State', required=True, select=True)
     sequence = fields.Integer('Sequence')

     def default_type(self):
@@ -107,6 +103,18 @@
                  'timesheet work by task/project!'),
         ]
         self._order.insert(0, ('sequence', 'ASC'))
+        self._constraints += [
+            ('check_state',
+ 'A work can not be closed if its children are still opened'),
+            ]
+
+    def check_state(self, ids):
+        for work in self.browse(ids):
+            if ((work.state == 'opened' and work.parent.state == 'done')
+                    or (work.state == 'done'
+ and any(c.state == 'opened' for c in work.children))):
+                return False
+        return True

     def get_parent(self, ids, name):
         res = dict.fromkeys(ids, None)

Index: work.xml
===================================================================

--- a/work.xml
+++ b/work.xml
@@ -59,21 +59,6 @@
                 ]]>
             </field>
         </record>
-        <!-- list view for projects (wihtout type and state fields) -->
-        <record model="ir.ui.view" id="work_view_list3">
-            <field name="model">project.work</field>
-            <field name="type">tree</field>
-            <field name="arch" type="xml">
-                <![CDATA[
-                <tree string="Projects">
-                    <field name="name"/>
- <field name="hours" widget="float_time" float_time="company_work_time"/> - <field name="total_effort" widget="float_time" float_time="company_work_time"/>
-                    <field name="active" tree_invisible="1"/>
-                </tree>
-                ]]>
-            </field>
-        </record>
         <record model="ir.ui.view" id="work_view_form">
             <field name="model">project.work</field>
             <field name="type">form</field>
@@ -190,7 +175,7 @@
         <record model="ir.action.act_window.view"
             id="act_project_form_view1">
             <field name="sequence" eval="10"/>
-            <field name="view" ref="work_view_list3"/>
+            <field name="view" ref="work_view_list2"/>
             <field name="act_window" ref="act_project_form"/>
         </record>
         <record model="ir.action.act_window.view"



--
[email protected] mailing list

Reply via email to