[IMP] [FIX] crm_partner_assign: as it inherits from mail.compose.message, updated the form view to avoid crashe; updated mail.compose.message composition mode, that is now an updatable selection field. crm_partner_assign will habe to be massively cleaned with the new mail module.

bzr revid: tde@openerp.com-20120824122928-dof1y1uxv3lkiwly
This commit is contained in:
Thibault Delavallée 2012-08-24 14:29:28 +02:00
parent 545d7843e3
commit fb76f9f037
3 changed files with 24 additions and 23 deletions

View File

@ -32,6 +32,11 @@ class crm_lead_forward_to_partner(osv.osv_memory):
_name = 'crm.lead.forward.to.partner'
_inherit = "mail.compose.message"
def _get_composition_mode_selection(self, cr, uid, context=None):
composition_mode = super(crm_lead_forward_to_partner, self)._get_composition_mode_selection(cr, uid, context=context)
composition_mode.append(('forward', 'Forward'))
return composition_mode
_columns = {
'send_to': fields.selection([('user', 'User'), ('partner', 'Partner'), \
('email', 'Email Address')], 'Send to', required=True),
@ -44,7 +49,6 @@ class crm_lead_forward_to_partner(osv.osv_memory):
_defaults = {
'send_to' : 'email',
'history': 'latest',
'email_from': lambda s, cr, uid, c: s.pool.get('res.users').browse(cr, uid, uid, c).email,
}
def on_change_email(self, cr, uid, ids, user, context=None):
@ -68,19 +72,20 @@ class crm_lead_forward_to_partner(osv.osv_memory):
res = {'value': {'body' : body}}
return res
def on_change_partner(self, cr, uid, ids, partner_id):
def on_change_partners(self, cr, uid, ids, partner_id):
"""This function fills address information based on partner/user selected
"""
if not partner_id:
return {'value' : {'email_to' : False}}
partner_obj = self.pool.get('res.partner')
data = {}
partner = partner_obj.browse(cr, uid, [partner_id])
user_id = partner and partner[0].user_id or False
data.update({'email_from': partner and partner[0].email or "",
'email_cc' : user_id and user_id.user or '',
'user_id': user_id and user_id.id or False})
return {'value' : data}
return {}
# if not partner_id:
# return {'value' : {'email_to' : False}}
# partner_obj = self.pool.get('res.partner')
# data = {}
# partner = partner_obj.browse(cr, uid, [partner_id])
# user_id = partner and partner[0].user_id or False
# data.update({'email_from': partner and partner[0].email or "",
# 'email_cc' : user_id and user_id.user or '',
# 'user_id': user_id and user_id.id or False})
# return {'value' : data}
def action_forward(self, cr, uid, ids, context=None):
"""

View File

@ -17,16 +17,11 @@
on_change="on_change_email(user_id)"/>
</group>
<group col="4" colspan="4" attrs="{'invisible' : [('send_to','!=','partner')]}">
<field name="partner_id" attrs="{'required' : [('send_to','=','partner')]}" on_change="on_change_partner(partner_id)" colspan="2"/>
<field name="partner_ids" attrs="{'required' : [('send_to','=','partner')]}" on_change="on_change_partners(partner_ids)" colspan="2"/>
</group>
</group>
<separator string="" colspan="4"/>
<group col="6" colspan="4">
<field name="email_from" colspan="4" required="1"/>
<field name="email_to" colspan="4" required="1"/>
<field name="email_cc" colspan="4"/>
<field name="email_bcc" colspan="4"/>
<field name="reply_to" colspan="4"/>
<field name="subject" colspan="4" widget="char" size="512"/>
</group>
<separator string="" colspan="4"/>

View File

@ -88,12 +88,13 @@ class mail_compose_message(osv.TransientModel):
result[field] = vals[field]
return result
def _get_composition_mode_selection(self, cr, uid, context=None):
return [('comment', 'Comment a document'), ('reply', 'Reply to a message'), ('mass_mail', 'Mass mailing')]
_columns = {
'composition_mode': fields.selection([
('comment', 'Comment a document'),
('reply', 'Reply to a message'),
('mass_mail', 'Mass mailing')
], string='Composition mode'),
'composition_mode': fields.selection(
lambda s, *a, **k: s._get_composition_mode_selection(*a, **k),
string='Composition mode'),
'partner_ids': fields.many2many('res.partner',
'mail_compose_message_res_partner_rel',
'wizard_id', 'partner_id', 'Additional contacts'),