[imp] changed state of data in demo deta by calling methods and improved code of...
authorHardik Ansodariy (OpenERP) <han@tinyerp.com>
Fri, 11 Nov 2011 13:33:14 +0000 (19:03 +0530)
committerHardik Ansodariy (OpenERP) <han@tinyerp.com>
Fri, 11 Nov 2011 13:33:14 +0000 (19:03 +0530)
bzr revid: han@tinyerp.com-20111111133314-r5hlk85oqrxjecr5

addons/project/project.py
addons/project/project_demo.xml

index 791d8c9..230eeb9 100644 (file)
@@ -624,37 +624,39 @@ class task(osv.osv):
         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):
@@ -698,14 +700,12 @@ class task(osv.osv):
         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={}):
index 6bb01cf..eec3da5 100644 (file)
             <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>