Close Task
"""
request = self.pool.get('res.request')
- for task in self.browse(cr, uid, ids, context=context):
- vals = {}
- project = task.project_id
- if project:
- # Send request to project manager
- if project.warn_manager and project.user_id and (project.user_id.id != uid):
- request.create(cr, uid, {
- 'name': _("Task '%s' closed") % task.name,
- 'state': 'waiting',
- 'act_from': uid,
- 'act_to': project.user_id.id,
- 'ref_partner_id': task.partner_id.id,
- 'ref_doc1': 'project.task,%d'% (task.id,),
- 'ref_doc2': 'project.project,%d'% (project.id,),
- }, context=context)
-
- for parent_id in task.parent_ids:
- if parent_id.state in ('pending','draft'):
- reopen = True
- for child in parent_id.child_ids:
- if child.id != task.id and child.state not in ('done','cancelled'):
- reopen = False
- if reopen:
- self.do_reopen(cr, uid, [parent_id.id], context=context)
- vals.update({'state': 'done'})
- vals.update({'remaining_hours': 0.0})
- if not task.date_end:
- vals.update({ 'date_end':time.strftime('%Y-%m-%d %H:%M:%S')})
- self.write(cr, uid, [task.id],vals, context=context)
- message = _("The task '%s' is done") % (task.name,)
- self.log(cr, uid, task.id, message)
+ # calling do_close from demo data it returns id in string therefor need to convert in list
+ if not isinstance(ids,list): ids = [ids]
+ task = self.browse(cr, uid, ids, context=context)[0]
+ vals = {}
+ project = task.project_id
+ if project:
+ # Send request to project manager
+ if project.warn_manager and project.user_id and (project.user_id.id != uid):
+ request.create(cr, uid, {
+ 'name': _("Task '%s' closed") % task.name,
+ 'state': 'waiting',
+ 'act_from': uid,
+ 'act_to': project.user_id.id,
+ 'ref_partner_id': task.partner_id.id,
+ 'ref_doc1': 'project.task,%d'% (task.id,),
+ 'ref_doc2': 'project.project,%d'% (project.id,),
+ }, context=context)
+
+ for parent_id in task.parent_ids:
+ if parent_id.state in ('pending','draft'):
+ reopen = True
+ for child in parent_id.child_ids:
+ if child.id != task.id and child.state not in ('done','cancelled'):
+ reopen = False
+ if reopen:
+ self.do_reopen(cr, uid, [parent_id.id], context=context)
+ vals.update({'state': 'done'})
+ vals.update({'remaining_hours': 0.0})
+ if not task.date_end:
+ vals.update({ 'date_end':time.strftime('%Y-%m-%d %H:%M:%S')})
+ self.write(cr, uid, [task.id],vals, context=context)
+ message = _("The task '%s' is done") % (task.name,)
+ self.log(cr, uid, task.id, message)
return True
def do_reopen(self, cr, uid, ids, context=None):
return True
def do_open(self, cr, uid, ids, context={}):
- tasks= self.browse(cr, uid, ids, context=context)
- for t in tasks:
- data = {'state': 'open'}
- if not t.date_start:
- data['date_start'] = time.strftime('%Y-%m-%d %H:%M:%S')
- self.write(cr, uid, [t.id], data, context=context)
- message = _("The task '%s' is opened.") % (t.name,)
- self.log(cr, uid, t.id, message)
+ # calling do_open from demo data it returns id in string therefor need to convert in list
+ if not isinstance(ids,list): ids = [ids]
+ task = self.browse(cr, uid, ids, context=context)[0]
+ self.write(cr, uid, [task.id], {'state': 'open'}, context=context)
+ message = _("The task '%s' is opened.") % (task.name)
+ self.log(cr, uid, task.id, message)
return True
def do_draft(self, cr, uid, ids, context={}):
<field eval="time.strftime('%Y-%m-%d')" name="date_end"/>
</record>
+ <function model="project.task" name="do_close" eval="[ref('project_task_11')]"/>
+
<record id="project_task_12" model="project.task">
<field eval="20.0" name="planned_hours"/>
<field name="user_id" ref="project.res_users_developer"/>
<field name="project_id" ref="project.project_integrate_openerp"/>
<field name="name">Integrate Modules</field>
<field name="type_id" ref="project_tt_merge"/>
- <field name="state">done</field>
<field eval="time.strftime('%Y-%m-%d')" name="date_end"/>
</record>
+ <function model="project.task" name="do_close" eval="[ref('project_task_12')]"/>
+
<record id="project_task_13" model="project.task">
<field eval="50.0" name="planned_hours"/>
<field name="user_id" ref="project.res_users_tester"/>
<field name="state">pending</field>
</record>
+ <function model="project.task" name="do_pending" eval="[ref('project_task_13')]"/>
+
<record id="project_task_14" model="project.task">
<field eval="30.0" name="planned_hours"/>
<field name="user_id" ref="project.res_users_tester"/>
<field name="state">pending</field>
</record>
+ <function model="project.task" name="do_pending" eval="[ref('project_task_14')]"/>
+
<record id="project_task_15" model="project.task">
<field eval="15.0" name="planned_hours"/>
<field name="user_id" ref="project.res_users_developer"/>
<field name="project_id" ref="project.project_integrate_openerp"/>
<field name="name">Documentation</field>
<field name="type_id" ref="project_tt_specification"/>
- <field name="state">open</field>
<field name="date_start">06-02-2011</field>
</record>
+ <function model="project.task" name="do_open" eval="[ref('project_task_15')]"/>
+
<record id="project_task_16" model="project.task">
<field eval="10" name="sequence"/>
<field eval="40.0" name="planned_hours"/>
<field name="project_id" ref="project.project_integrate_openerp"/>
<field name="name">Performance Tuning</field>
<field name="type_id" ref="project_tt_specification"/>
- <field name="state">open</field>
<field eval="time.strftime('%Y-%m-%d')" name="date_start"/>
</record>
+ <function model="project.task" name="do_open" eval="[ref('project_task_16')]"/>
+
<record id="project_task_17" model="project.task">
<field eval="5.0" name="planned_hours"/>
<field name="user_id" ref="project.res_users_analyst"/>
<field name="project_id" ref="project.project_integrate_openerp"/>
<field name="name">Deploy and Review on Customer System</field>
<field name="type_id" ref="project_tt_specification"/>
- <field name="state">open</field>
<field eval="time.strftime('%Y-%m-%d')" name="date_start"/>
</record>
+ <function model="project.task" name="do_open" eval="[ref('project_task_17')]"/>
+
<record id="project_task_18" model="project.task">
<field eval="10.0" name="planned_hours"/>
<field name="user_id" ref="project.res_users_analyst"/>
<field name="project_id" ref="project.project_integrate_openerp"/>
<field name="name">Training and Presentation</field>
<field name="type_id" ref="project_tt_specification"/>
- <field name="state">open</field>
<field name="date_start">09-21-2011</field>
</record>
+ <function model="project.task" name="do_open" eval="[ref('project_task_18')]"/>
<!--
Resource: project.project
-->
<field name="project_id" ref="project_project_22"/>
<field name="description">BoM, After sales returns, interventions. Traceability.</field>
<field name="name">Specific adaptation to MRP</field>
- <field name="state">open</field>
<field name="date_start">12-18-2011</field>
</record>
+
+ <function model="project.task" name="do_open" eval="[ref('project_task_116')]"/>
+
<record id="project_task_130" model="project.task">
<field name="planned_hours">16.0</field>
<field name="remaining_hours">16.0</field>
<field model="res.users" name="user_id" search="[('login','=','demo')]"/>
<field name="project_id" ref="project_project_23"/>
<field name="name">Data importation + Doc</field>
- <field name="state">open</field>
<field eval="time.strftime('%Y-%m-%d')" name="date_start"/>
</record>
+
+ <function model="project.task" name="do_open" eval="[ref('project_task_130')]"/>
+
<record id="project_task_131" model="project.task">
<field name="planned_hours">16.0</field>
<field name="remaining_hours">16.0</field>
<field model="res.users" name="user_id" search="[('login','=','demo')]"/>
<field name="project_id" ref="project_project_23"/>
<field name="name">Modifications asked by the customer.</field>
- <field name="state">open</field>
<field name="date_start">08-13-2011</field>
</record>
+
+ <function model="project.task" name="do_open" eval="[ref('project_task_131')]"/>
+
<record id="project_task_184" model="project.task">
<field name="planned_hours">16.0</field>
<field name="remaining_hours">16.0</field>
<field name="priority">0</field>
<field name="project_id" ref="project_project_21"/>
<field name="name">Customer analysis + Architecture</field>
- <field name="state">open</field>
<field name="date_start">12-17-2011</field>
</record>
+
+ <function model="project.task" name="do_open" eval="[ref('project_task_184')]"/>
+
<record id="project_task_186" model="project.task">
<field name="sequence">15</field>
<field name="planned_hours">8.0</field>
<field model="res.users" name="user_id" search="[('login','=','demo')]"/>
<field name="project_id" ref="project_project_21"/>
<field name="name">Internal testing + Software Install</field>
- <field name="state">open</field>
<field name="date_start">09-15-2011</field>
</record>
+
+ <function model="project.task" name="do_open" eval="[ref('project_task_186')]"/>
+
<record id="project_task_188" model="project.task">
<field name="sequence">17</field>
<field name="planned_hours">16.0</field>
<field name="type_id" ref="project_tt_development"/>
<field model="res.users" name="user_id" search="[('login','=','demo')]"/>
<field name="priority">2</field>
- <field name="state">open</field>
<field name="project_id" ref="project_project_21"/>
<field name="name">Analysis, Data Importation</field>
<field name="date_start">10-07-2011</field>
</record>
+
+ <function model="project.task" name="do_open" eval="[ref('project_task_188')]"/>
+
<record id="project_task_189" model="project.task">
<field name="sequence">20</field>
<field name="planned_hours">16.0</field>
<field name="remaining_hours">16.0</field>
- <field name="state">open</field>
<field model="res.users" name="user_id" search="[('login','=','demo')]"/>
<field name="project_id" ref="project_project_23"/>
<field name="name">Parameters</field>
<field name="type_id" ref="project_tt_specification"/>
<field name="date_start">11-09-2011</field>
</record>
+
+ <function model="project.task" name="do_open" eval="[ref('project_task_189')]"/>
+
<record id="project_task_190" model="project.task">
<field name="sequence">20</field>
<field name="planned_hours">32.0</field>
<field name="remaining_hours">32.0</field>
<field model="res.users" name="user_id" search="[('login','=','demo')]"/>
- <field name="state">open</field>
<field name="project_id" ref="project_project_21"/>
<field name="name">Start of the doc redaction + MRP</field>
- <field eval="time.strftime('%Y-%m-%d')" name="date_start"/>
<field name="type_id" ref="project_tt_testing"/>
</record>
+
+ <function model="project.task" name="do_open" eval="[ref('project_task_190')]"/>
+
</data>
</openerp>