[IMP] project: wizard should open if warn_manager or warn_customer on close task

bzr revid: hmo@tinyerp.com-20100922103820-nkap8mj0wnw51y0n
This commit is contained in:
Harry (OpenERP) 2010-09-22 16:08:20 +05:30
parent e067fa17a8
commit 40cf6cc857
4 changed files with 33 additions and 22 deletions

View File

@ -519,6 +519,26 @@ class task(osv.osv):
res['fields'][f]['string'] = res['fields'][f]['string'].replace('Hours',tm)
return res
def action_close(self, cr, uid, ids, context=None):
# This action open wizard to send email to partner or project manager after close task.
project_id = len(ids) and ids[0] or False
if not project_id: return False
task = self.browse(cr, uid, project_id, context=context)
project = task.project_id
res = self.do_close(cr, uid, [project_id], context=context)
if project.warn_manager or project.warn_customer:
return {
'name': _('Send Email after close task'),
'view_type': 'form',
'view_mode': 'form',
'res_model': 'project.task.close',
'type': 'ir.actions.act_window',
'target': 'new',
'nodestroy': True,
'context': {'active_id': task.id}
}
return res
def do_close(self, cr, uid, ids, context=None):
"""
Close Task

View File

@ -112,9 +112,9 @@
<newline />
<group expand="0" string="Group By..." colspan="4" col="20" groups="base.group_extended">
<filter string="Manager" name="Manager" icon="terp-personal" domain = "[]" context="{'group_by':'user_id'}"/>
<filter string="Partner" name="Partner" icon="terp-partner" domain = "[]" context="{'group_by':'partner_id'}" help="Parent Project"/>
<filter string="Partner" name="Partner" icon="terp-partner" domain = "[]" context="{'group_by':'partner_id'}"/>
<separator orientation="vertical"/>
<filter string="Parent" name="Parent" icon="terp-folder-blue" domain = "[]" context="{'group_by':'parent_id'}"/>
<filter string="Parent" name="Parent" help="Parent Project" icon="terp-folder-blue" domain = "[]" context="{'group_by':'parent_id'}"/>
</group>
</search>
</field>
@ -241,7 +241,7 @@
<button name="%(action_project_task_reevaluate)d" states="done,cancelled" string="Reactivate" type="action" icon="gtk-convert" context="{'button_reactivate':True}" />
<button name="do_pending" states="open" string="Pending" type="object" icon="gtk-media-pause"/>
<button groups="base.group_extended" name="%(action_project_task_delegate)d" states="pending,open" string="Delegate" type="action" icon="gtk-sort-descending"/>
<button name="%(action_project_task_close)d" states="pending,open" string="Done" type="action" icon="terp-dialog-close"/>
<button name="action_close" states="pending,open" string="Done" type="object" icon="terp-dialog-close"/>
<button name="do_cancel" states="draft,open,pending" string="Cancel" type="object" icon="gtk-cancel"/>
</group>
</page>
@ -320,7 +320,7 @@
<field name="state" invisible="context.get('set_visible',False)"/>
<button name="do_open" states="pending,draft,done,cancel" string="Start Task" type="object" icon="gtk-execute" help="For changing to open state" invisible="context.get('set_visible',False)"/>
<button groups="base.group_extended" name="%(action_project_task_delegate)d" states="pending,open,draft" string="Delegate" type="action" icon="gtk-sort-descending" help="For changing to delegate state"/>
<button name="%(action_project_task_close)d" states="draft,pending,open" string="Done" type="action" icon="gtk-apply" help="For changing to done state"/>
<button name="action_close" states="draft,pending,open" string="Done" type="object" icon="gtk-apply" help="For changing to done state"/>
<button name="do_cancel" states="draft,open,pending" string="Cancel" type="object" icon="gtk-cancel" help="For cancelling the task"/>
</tree>
</field>

View File

@ -56,24 +56,18 @@ class project_task_close(osv.osv_memory):
partner = task.partner_id or task.project_id.partner_id
if 'description' in fields:
res.update({'description': task.description})
res.update({'description': task.description or False})
if 'manager_warn' in fields:
res.update({'manager_warn': project.warn_manager})
res.update({'manager_warn': project.warn_manager or False})
if 'partner_warn' in fields:
res.update({'partner_warn': project.warn_customer})
res.update({'partner_warn': project.warn_customer or False})
if 'manager_email' in fields:
res.update({'manager_email': manager and manager.user_email or False})
if partner and len(partner.address) and 'partner_email' in fields:
res.update({'partner_email': partner.address[0].email})
return res
def done(self, cr, uid, ids, context=None):
task_pool = self.pool.get('project.task')
task_id = context.get('active_id', False)
res = task_pool.do_close(cr, uid, [task_id], context=context)
return res
def confirm(self, cr, uid, ids, context=None):
def send(self, cr, uid, ids, context=None):
if context is None:
context = {}
@ -83,7 +77,6 @@ class project_task_close(osv.osv_memory):
return {}
task = task_pool.browse(cr, uid, task_id, context=context)
for data in self.browse(cr, uid, ids, context=context):
res = task_pool.do_close(cr, uid, [task.id], context=context)
if res:
# Send Warn Message by Email to Manager and Customer
if data.manager_warn and not data.manager_email:

View File

@ -3,12 +3,11 @@
<data>
<record id="view_project_task_close" model="ir.ui.view">
<field name="name">Done Task</field>
<field name="name">Send Email</field>
<field name="model">project.task.close</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Done Task" >
<separator string="Done Task and Inform to Project Manager or Customer by Email " colspan="4"/>
<form string="Send Email" >
<group colspan="4" col="4">
<field name="manager_warn" invisible="1"/>
<field name="manager_email" widget="email" attrs="{'invisible':[('manager_warn','=',False)], 'required':[('manager_warn','=',True)]}"/>
@ -21,16 +20,15 @@
<group colspan="2" col="2">
</group>
<group colspan="2" col="3">
<button icon="gtk-close" special="cancel" string="_Cancel"/>
<button icon="gtk-jump-to" string="_Done" special="cancel" name="done" type="object"/>
<button icon="terp-mail-message-new" string="_Send+Done" name="confirm" type="object"/>
<button icon="gtk-cancel" special="cancel" string="_Cancel"/>
<button icon="terp-mail-message-new" string="_Send" name="send" type="object"/>
</group>
</form>
</field>
</record>
<record id="action_project_task_close" model="ir.actions.act_window">
<field name="name">Done Task</field>
<field name="name">Send Email</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">project.task.close</field>
<field name="view_type">form</field>