[IMP] misc improvement in CRM reported by fhe
bzr revid: fp@tinyerp.com-20100407070345-cfom7eapo0ew633y
This commit is contained in:
parent
b3f8b9e9cc
commit
aca21ec233
|
@ -652,13 +652,11 @@ class crm_case(osv.osv):
|
|||
return True
|
||||
|
||||
def onchange_partner_id(self, cr, uid, ids, part, email=False):
|
||||
|
||||
"""
|
||||
@param self: The object pointer
|
||||
@param cr: the current row, from the database cursor,
|
||||
@param uid: the current user’s ID for security checks,
|
||||
"""
|
||||
|
||||
if not part:
|
||||
return {'value': {'partner_address_id': False,
|
||||
'email_from': False,
|
||||
|
@ -678,7 +676,7 @@ class crm_case(osv.osv):
|
|||
|
||||
data = {}
|
||||
if not add:
|
||||
return {'value': {'email_from': False, 'partner_name2': False}}
|
||||
return {'value': {'email_from': False}}
|
||||
address = self.pool.get('res.partner.address').browse(cr, uid, add)
|
||||
data['email_from'] = address.email
|
||||
return {'value': data}
|
||||
|
|
|
@ -32,7 +32,7 @@ class crm_lead(osv.osv):
|
|||
|
||||
_name = "crm.lead"
|
||||
_description = "Leads Cases"
|
||||
_order = "priority desc, id desc"
|
||||
_order = "priority, id desc"
|
||||
_inherit = ['res.partner.address', 'crm.case']
|
||||
|
||||
def case_open(self, cr, uid, ids, *args):
|
||||
|
|
|
@ -38,7 +38,7 @@ class crm_opportunity(osv.osv):
|
|||
|
||||
_name = "crm.opportunity"
|
||||
_description = "Opportunity Cases"
|
||||
_order = "id desc"
|
||||
_order = "priority,id desc"
|
||||
_inherit = 'crm.case'
|
||||
|
||||
def case_open(self, cr, uid, ids, *args):
|
||||
|
|
|
@ -220,6 +220,7 @@
|
|||
<field name="date_deadline" string="Excepted Closing"/>
|
||||
<field name="section_id"/>
|
||||
<field name="user_id"/>
|
||||
<field name="priority"/>
|
||||
<field name="state"/>
|
||||
<button name="case_open" string="Open"
|
||||
states="draft,pending" type="object"
|
||||
|
@ -302,7 +303,8 @@
|
|||
<group expand="1" string="Group By..." colspan="16">
|
||||
<filter string="Stage" icon="terp-crm" domain="[]"
|
||||
context="{'group_by':'stage_id'}" />
|
||||
|
||||
<filter string="Priority" icon="terp-crm" domain="[]"
|
||||
context="{'group_by':'priority'}" />
|
||||
<filter string="Category" icon="terp-crm"
|
||||
domain="[]" context="{'group_by':'categ_id'}" />
|
||||
|
||||
|
|
|
@ -108,6 +108,14 @@ class crm_phonecall(osv.osv):
|
|||
|
||||
return value
|
||||
|
||||
def onchange_partner_address_id(self, cr, uid, ids, add, email=False):
|
||||
res = super(crm_phonecall, self).onchange_partner_address_id(cr, uid, ids, add, email)
|
||||
res.setdefault('value', {})
|
||||
if add:
|
||||
address = self.pool.get('res.partner.address').browse(cr, uid, add)
|
||||
res['value']['partner_phone'] = address.mobile
|
||||
res['value']['partner_mobile'] = address.phone
|
||||
return res
|
||||
crm_phonecall()
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
|
|
@ -29,19 +29,22 @@ from crm import crm
|
|||
class crm_send_new_email(osv.osv_memory):
|
||||
""" Sends new email for the case"""
|
||||
_name = "crm.send.mail"
|
||||
_description = "Case Send new email"
|
||||
_description = "Send new email"
|
||||
|
||||
_columns = {
|
||||
'email_to' : fields.char('To', size=64, required=True),
|
||||
'email_from' : fields.char('From', size=64, required=True),
|
||||
'email_cc' : fields.char('CC', size=128),
|
||||
'subject': fields.char('Subject', size=128, required=True),
|
||||
'text': fields.text('Message', required=True),
|
||||
'state': fields.selection(crm.AVAILABLE_STATES, string='State'),
|
||||
'doc1': fields.binary("Attachment1"),
|
||||
'doc2': fields.binary("Attachment2"),
|
||||
'doc3': fields.binary("Attachment3"),
|
||||
}
|
||||
'email_to' : fields.char('To', size=64, required=True),
|
||||
'email_from' : fields.char('From', size=64, required=True),
|
||||
'email_cc' : fields.char('CC', size=128),
|
||||
'subject': fields.char('Subject', size=128, required=True),
|
||||
'text': fields.text('Message', required=True),
|
||||
'state': fields.selection(crm.AVAILABLE_STATES, string='Set New State To', required=True),
|
||||
'doc1': fields.binary("Attachment1"),
|
||||
'doc1_fname': fields.char("File Name", size=64),
|
||||
'doc2': fields.binary("Attachment2"),
|
||||
'doc2_fname': fields.char("File Name", size=64),
|
||||
'doc3': fields.binary("Attachment3"),
|
||||
'doc3_fname': fields.char("File Name", size=64),
|
||||
}
|
||||
|
||||
def action_cancel(self, cr, uid, ids, context=None):
|
||||
""" Closes Phonecall to Opportunity form
|
||||
|
@ -51,9 +54,9 @@ class crm_send_new_email(osv.osv_memory):
|
|||
def action_send(self, cr, uid, ids, context=None):
|
||||
""" This sends an email to ALL the addresses of the selected partners.
|
||||
"""
|
||||
|
||||
|
||||
hist_obj = self.pool.get('crm.case.history')
|
||||
|
||||
|
||||
if not context:
|
||||
context = {}
|
||||
|
||||
|
@ -79,12 +82,10 @@ class crm_send_new_email(osv.osv_memory):
|
|||
emails = filter(None, emails)
|
||||
body = data['text']
|
||||
|
||||
if case.user_id.signature:
|
||||
body += '\n\n%s' % (case.user_id.signature)
|
||||
body = case_pool.format_body(body)
|
||||
email_from = data.get('email_from', False)
|
||||
case_pool._history(cr, uid, [case], _('Send'), history=True, email=data['email_to'], details=body, email_from=email_from)
|
||||
|
||||
|
||||
flag = tools.email_send(
|
||||
email_from,
|
||||
emails,
|
||||
|
@ -94,13 +95,13 @@ class crm_send_new_email(osv.osv_memory):
|
|||
reply_to=case.section_id.reply_to,
|
||||
openobject_id=str(case.id),
|
||||
)
|
||||
if flag:
|
||||
if flag:
|
||||
if data['state'] == 'unchanged':
|
||||
pass
|
||||
elif data['state'] == 'done':
|
||||
case_pool.case_close(cr, uid, [case.id])
|
||||
elif data['state'] == 'draft':
|
||||
case_pool.case_reset(cr, uid, [case.id])
|
||||
case_pool.case_reset(cr, uid, [case.id])
|
||||
elif data['state'] in ['cancel', 'open', 'pending']:
|
||||
act = 'case_' + data['state']
|
||||
getattr(case_pool, act)(cr, uid, [case.id])
|
||||
|
@ -141,11 +142,11 @@ class crm_send_new_email(osv.osv_memory):
|
|||
(case.user_id and case.user_id.address_id and \
|
||||
case.user_id.address_id.email) or tools.config.get('email_from',False)})
|
||||
if 'subject' in fields:
|
||||
res.update({'subject': '[%s] %s' %(str(case.id), case.name or '')})
|
||||
res.update({'subject': '[%s] %s' %(str(case.id), case.name or '')})
|
||||
if 'email_cc' in fields:
|
||||
res.update({'email_cc': case.email_cc or ''})
|
||||
if 'text' in fields:
|
||||
res.update({'text': case.description or ''})
|
||||
res.update({'text': '\n\n'+(case.user_id.signature or '') + '\n\n' + (case.description or '')})
|
||||
if 'state' in fields:
|
||||
res.update({'state': 'pending'})
|
||||
return res
|
||||
|
@ -168,8 +169,8 @@ class crm_send_new_email(osv.osv_memory):
|
|||
(case.user_id and case.user_id.address_id and \
|
||||
case.user_id.address_id.email) or hist.email_to or tools.config.get('email_from',False)})
|
||||
if 'text' in fields:
|
||||
header = '-------- Original Message --------'
|
||||
sender = 'From: %s' %(hist.email_from or '')
|
||||
header = '-------- Original Message --------'
|
||||
sender = 'From: %s' %(hist.email_from or '')
|
||||
to = 'To: %s' % (hist.email_to or '')
|
||||
sentdate = 'Date: %s' % (hist.date)
|
||||
desc = '\n%s'%(hist.description)
|
||||
|
@ -177,7 +178,7 @@ class crm_send_new_email(osv.osv_memory):
|
|||
original = '\n'.join(original)
|
||||
res['text']=original
|
||||
if 'subject' in fields:
|
||||
res.update({'subject': '[%s] %s' %(str(case.id), case.name or '')})
|
||||
res.update({'subject': '[%s] %s' %(str(case.id), case.name or '')})
|
||||
if 'state' in fields:
|
||||
res['state']='pending'
|
||||
return res
|
||||
|
@ -214,4 +215,3 @@ class crm_send_new_email(osv.osv_memory):
|
|||
|
||||
crm_send_new_email()
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
|
|
@ -3,27 +3,32 @@
|
|||
<data>
|
||||
|
||||
<!-- Send New Mail view -->
|
||||
|
||||
|
||||
<record model="ir.ui.view" id="crm_send_new_mail_view">
|
||||
<field name="name">crm.new.send.mail.form</field>
|
||||
<field name="model">crm.send.mail</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Send New Mail" col="2">
|
||||
<field name="email_from" />
|
||||
<field name="email_to" />
|
||||
<field name="email_cc" />
|
||||
<field name="subject" />
|
||||
<field name="doc1" />
|
||||
<field name="doc2" />
|
||||
<field name="doc3" />
|
||||
<form string="Send New Mail" col="4">
|
||||
<field name="email_to" />
|
||||
<field name="email_cc"/>
|
||||
<field name="subject" colspan="4"/>
|
||||
<group colspan="4" string="Extended Options" expand="1">
|
||||
<field name="email_from" />
|
||||
<field name="doc1" filename="doc1_fname"/>
|
||||
<field name="doc1_fname"/>
|
||||
<field name="doc2" filename="doc2_fname" />
|
||||
<field name="doc2_fname"/>
|
||||
<field name="doc3" filename="doc3_fname" />
|
||||
<field name="doc3_fname"/>
|
||||
</group>
|
||||
<separator string="" colspan="4"/>
|
||||
<field name="text" nolabel="1" colspan="4"/>
|
||||
<separator colspan="4" string="Set case state to" />
|
||||
<field name="state" />
|
||||
<separator string=" " colspan="4"/>
|
||||
<newline/>
|
||||
<field name="state" />
|
||||
<separator string=" " colspan="4"/>
|
||||
<group colspan="4" col="3" >
|
||||
<label string=" " />
|
||||
<label string=" " />
|
||||
<button name="action_cancel" string="_Cancel" icon="gtk-cancel" special="cancel" />
|
||||
<button name="action_send" type="object" string="_Send" icon="gtk-go-forward" />
|
||||
</group>
|
||||
|
@ -41,10 +46,10 @@
|
|||
<field name="view_id" ref="crm_send_new_mail_view"/>
|
||||
<field name="target">new</field>
|
||||
</record>
|
||||
|
||||
|
||||
<!-- Reply to Mail view -->
|
||||
|
||||
|
||||
|
||||
<!-- Reply to Mail view -->
|
||||
|
||||
<record model="ir.ui.view" id="crm_reply_mail_view">
|
||||
<field name="name">crm.mail.reply.form</field>
|
||||
<field name="model">crm.send.mail</field>
|
||||
|
@ -52,17 +57,17 @@
|
|||
<field name="arch" type="xml">
|
||||
<form string="Reply to last Mail" col="2">
|
||||
<field name="email_from" />
|
||||
<field name="email_to" />
|
||||
<field name="email_cc" />
|
||||
<field name="subject" />
|
||||
<field name="doc1" />
|
||||
<field name="doc2" />
|
||||
<field name="doc3" />
|
||||
<field name="email_to" />
|
||||
<field name="email_cc" />
|
||||
<field name="subject" />
|
||||
<field name="doc1" />
|
||||
<field name="doc2" />
|
||||
<field name="doc3" />
|
||||
<separator string="" colspan="4"/>
|
||||
<field name="text" nolabel="1" colspan="4"/>
|
||||
<separator string=" " colspan="4"/>
|
||||
<separator string=" " colspan="4"/>
|
||||
<group colspan="4" col="3" >
|
||||
<label string=" " />
|
||||
<label string=" " />
|
||||
<button name="action_cancel" string="_Cancel" icon="gtk-cancel" special="cancel" />
|
||||
<button name="action_send" type="object" string="_Send Reply" icon="gtk-go-forward" />
|
||||
</group>
|
||||
|
@ -80,6 +85,6 @@
|
|||
<field name="view_id" ref="crm_reply_mail_view"/>
|
||||
<field name="target">new</field>
|
||||
</record>
|
||||
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
</openerp>
|
||||
|
|
Loading…
Reference in New Issue