[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:
parent
e067fa17a8
commit
40cf6cc857
|
@ -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
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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>
|
||||
|
|
Loading…
Reference in New Issue