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