[IMP] misc improvement in CRM reported by fhe

bzr revid: fp@tinyerp.com-20100407070345-cfom7eapo0ew633y
This commit is contained in:
Fabien Pinckaers 2010-04-07 09:03:45 +02:00
parent b3f8b9e9cc
commit aca21ec233
7 changed files with 71 additions and 58 deletions

View File

@ -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 users 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}

View File

@ -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):

View File

@ -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):

View File

@ -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'}" />

View File

@ -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:

View File

@ -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:

View File

@ -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>