From de7903ffc98cfa1ed7bb51725a788452c9286e2f Mon Sep 17 00:00:00 2001 From: "Harry (OpenERP)" Date: Fri, 27 Aug 2010 16:26:11 +0530 Subject: [PATCH] [REF] project: refactor code for close task bzr revid: hmo@tinyerp.com-20100827105611-4eeazhomqs2su86a --- addons/project/__openerp__.py | 4 +- addons/project/project.py | 48 ++---- addons/project/project_view.xml | 4 +- addons/project/wizard/__init__.py | 2 +- addons/project/wizard/project_close_task.py | 145 ------------------ .../wizard/project_close_task_view.xml | 43 ------ addons/project/wizard/project_task_close.py | 120 +++++++++++++++ .../wizard/project_task_close_view.xml | 42 +++++ 8 files changed, 180 insertions(+), 228 deletions(-) delete mode 100644 addons/project/wizard/project_close_task.py delete mode 100644 addons/project/wizard/project_close_task_view.xml create mode 100644 addons/project/wizard/project_task_close.py create mode 100644 addons/project/wizard/project_task_close_view.xml diff --git a/addons/project/__openerp__.py b/addons/project/__openerp__.py index b0e3880c243..284d69211e4 100644 --- a/addons/project/__openerp__.py +++ b/addons/project/__openerp__.py @@ -31,14 +31,13 @@ work done on tasks, eso. It is able to render planning, order tasks, eso. Dashboard for project members that includes: * List of my open tasks - * List of messages * Members list of project - * Issues """, "init_xml": [], "update_xml": [ "security/project_security.xml", "wizard/project_task_delegate_view.xml", + "wizard/project_task_close_view.xml", "security/ir.model.access.csv", "project_data.xml", "project_view.xml", @@ -46,7 +45,6 @@ work done on tasks, eso. It is able to render planning, order tasks, eso. "project_installer.xml", "res_partner_view.xml", "report/project_report_view.xml", - "wizard/project_close_task_view.xml", "board_project_view.xml", 'board_project_manager_view.xml' ], diff --git a/addons/project/project.py b/addons/project/project.py index dfba5cc46c2..94a7795f586 100644 --- a/addons/project/project.py +++ b/addons/project/project.py @@ -487,18 +487,17 @@ class task(osv.osv): res['fields'][f]['string'] = res['fields'][f]['string'].replace('Hours',tm) return res - def do_close(self, cr, uid, ids, *args): - mail_send = False - mod_obj = self.pool.get('ir.model.data') - request = self.pool.get('res.request') - tasks = self.browse(cr, uid, ids) - task_id = ids[0] - cntx = {} - if len(args): - cntx = args[0] - for task in tasks: + def do_close(self, cr, uid, ids, context=None): + """ + Close Task + """ + if context is None: + context = {} + request_pool = self.pool.get('res.request') + for task in self.browse(cr, uid, ids, context=context): 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, @@ -509,12 +508,7 @@ class task(osv.osv): 'ref_doc1': 'project.task,%d'% (task.id,), 'ref_doc2': 'project.project,%d'% (project.id,), }) - elif (project.warn_manager or project.warn_customer) and cntx.get('mail_send',True): - cntx.update({'send_manager': project.warn_manager, 'send_partner': project.warn_customer}) - mail_send = True - message = _('Task ') + " '" + task.name + "' "+ _("is Done.") - self.log(cr, uid, task.id, message) - + for parent_id in task.parent_ids: if parent_id.state in ('pending','draft'): reopen = True @@ -523,24 +517,10 @@ class task(osv.osv): reopen = False if reopen: self.do_reopen(cr, uid, [parent_id.id]) - if mail_send: - model_data_ids = mod_obj.search(cr,uid,[('model','=','ir.ui.view'),('name','=','view_project_close_task')]) - resource_id = mod_obj.read(cr, uid, model_data_ids, fields=['res_id'])[0]['res_id'] - cntx.update({'task_id': task_id}) - return { - 'name': _('Email Send to Customer'), - 'view_type': 'form', - 'context': cntx, # improve me - 'view_mode': 'tree,form', - 'res_model': 'close.task', - 'views': [(resource_id,'form')], - 'type': 'ir.actions.act_window', - 'target': 'new', - 'nodestroy': True - } - else: - self.write(cr, uid, [task_id], {'state': 'done', 'date_end':time.strftime('%Y-%m-%d %H:%M:%S'), 'remaining_hours': 0.0}) - return False + self.write(cr, uid, [task.id], {'state': 'done', 'date_end':time.strftime('%Y-%m-%d %H:%M:%S'), 'remaining_hours': 0.0}) + message = _('Task ') + " '" + task.name + "' "+ _("is Done.") + self.log(cr, uid, task.id, message) + return True def do_reopen(self, cr, uid, ids, *args): request = self.pool.get('res.request') diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml index 8e1c6eba815..926355089b8 100644 --- a/addons/project/project_view.xml +++ b/addons/project/project_view.xml @@ -267,7 +267,7 @@