diff --git a/addons/crm_partner_assign/__init__.py b/addons/crm_partner_assign/__init__.py
index 8d4bf993aff..bb4a3bb53be 100644
--- a/addons/crm_partner_assign/__init__.py
+++ b/addons/crm_partner_assign/__init__.py
@@ -19,7 +19,7 @@
#
##############################################################################
-import partner_geo_assign
+import crm_partner_assign
import wizard
import report
diff --git a/addons/crm_partner_assign/__openerp__.py b/addons/crm_partner_assign/__openerp__.py
index cb952606e76..b9b21ca7a6a 100644
--- a/addons/crm_partner_assign/__openerp__.py
+++ b/addons/crm_partner_assign/__openerp__.py
@@ -44,6 +44,7 @@ You can also use the geolocalization without using the GPS coordinates.
'res_partner_view.xml',
'wizard/crm_forward_to_partner_view.xml',
'crm_lead_view.xml',
+ 'crm_partner_assign_data.xml',
'report/crm_lead_report_view.xml',
'report/crm_partner_report_view.xml',
],
diff --git a/addons/crm_partner_assign/partner_geo_assign.py b/addons/crm_partner_assign/crm_partner_assign.py
similarity index 99%
rename from addons/crm_partner_assign/partner_geo_assign.py
rename to addons/crm_partner_assign/crm_partner_assign.py
index 8bf693082d5..b13a75a2591 100644
--- a/addons/crm_partner_assign/partner_geo_assign.py
+++ b/addons/crm_partner_assign/crm_partner_assign.py
@@ -71,7 +71,6 @@ class res_partner_grade(osv.osv):
_defaults = {
'active': lambda *args: 1
}
-res_partner_grade()
class res_partner_activation(osv.osv):
_name = 'res.partner.activation'
@@ -82,7 +81,6 @@ class res_partner_activation(osv.osv):
'name' : fields.char('Name', size=32, required=True),
}
-res_partner_activation()
class res_partner(osv.osv):
_inherit = "res.partner"
@@ -120,7 +118,6 @@ class res_partner(osv.osv):
'date_localization': fields.date.context_today(self,cr,uid,context=context)
}, context=context)
return True
-res_partner()
class crm_lead(osv.osv):
_inherit = "crm.lead"
@@ -261,7 +258,7 @@ class crm_lead(osv.osv):
res_partner_ids[lead.id] = partner_id
break
return res_partner_ids
-crm_lead()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+
diff --git a/addons/crm_partner_assign/crm_partner_assign_data.xml b/addons/crm_partner_assign/crm_partner_assign_data.xml
new file mode 100644
index 00000000000..889376d84c7
--- /dev/null
+++ b/addons/crm_partner_assign/crm_partner_assign_data.xml
@@ -0,0 +1,44 @@
+
+
+
+
+ Lead forward
+
+ Fwd: Lead: ${object.name}
+
+
+
+
+
+Here is a lead that might interrest you.
+
+
+Please keep me informed about your actions about it so that i can keep an
+accurate follow-up of it and help you in the sale cycle.
+
+
+Your account manager,
+${object.user_id.name},
+${object.user_id.email}
+
+
+
+${ctx["mail_body"] | safe}
+
+
+% if ctx["history_mode"] in ('whole'):
+ % for message in object.message_ids:
+ ---- Original Message (${message.date or ''}) ----
+ ${message.body | safe}
+ % endfor
+% endif
+% if ctx['history_mode'] == 'latest':
+ ---- Original Message (${object.message_ids[0].date or ''}) ----
+ ${object.message_ids[0].body | safe}
+% endif
+ ]]>
+
+
+
diff --git a/addons/crm_partner_assign/wizard/crm_forward_to_partner.py b/addons/crm_partner_assign/wizard/crm_forward_to_partner.py
index d209faeac0b..13720aae93c 100644
--- a/addons/crm_partner_assign/wizard/crm_forward_to_partner.py
+++ b/addons/crm_partner_assign/wizard/crm_forward_to_partner.py
@@ -29,18 +29,6 @@ class crm_lead_forward_to_partner(osv.TransientModel):
_name = 'crm.lead.forward.to.partner'
_inherit = "mail.compose.message"
- def default_get(self, cr, uid, fields, context=None):
- if context is None:
- context = {}
- # set as comment, perform overrided document-like action that calls get_record_data
- old_mode = context.get('default_composition_mode', 'forward')
- context['default_composition_mode'] = 'comment'
- res = super(crm_lead_forward_to_partner, self).default_get(cr, uid, fields, context=context)
- # back to forward mode
- context['default_composition_mode'] = old_mode
- res['composition_mode'] = context['default_composition_mode']
- return res
-
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'))
@@ -53,37 +41,54 @@ class crm_lead_forward_to_partner(osv.TransientModel):
'attachment_ids': fields.many2many('ir.attachment',
'lead_forward_to_partner_attachment_rel',
'wizard_id', 'attachment_id', 'Attachments'),
- 'history_mode': fields.selection([('info', 'Case Information'),
+ 'history_mode': fields.selection([('info', 'Internal notes'),
('latest', 'Latest email'), ('whole', 'Whole Story')],
'Send history', required=True),
}
_defaults = {
- 'history_mode': 'latest',
+ 'history_mode': 'whole',
}
+ def default_get(self, cr, uid, fields, context=None):
+ if context is None:
+ context = {}
+ # set as comment, perform overrided document-like action that calls get_record_data
+ old_mode = context.get('default_composition_mode', 'forward')
+ context['default_composition_mode'] = 'comment'
+ res = super(crm_lead_forward_to_partner, self).default_get(cr, uid, fields, context=context)
+ # back to forward mode
+ context['default_composition_mode'] = old_mode
+ res['composition_mode'] = context['default_composition_mode']
+ return res
+
def get_record_data(self, cr, uid, model, res_id, context=None):
""" Override of mail.compose.message, to add default values coming
form the related lead.
"""
+ if context is None:
+ context = {}
res = super(crm_lead_forward_to_partner, self).get_record_data(cr, uid, model, res_id, context=context)
if model not in ('crm.lead') or not res_id:
return res
- lead_obj = self.pool.get(model)
- lead = lead_obj.browse(cr, uid, res_id, context=context)
- subject = '%s: %s - %s' % (_('Fwd'), _('Lead forward'), lead.name)
- body = self._get_message_body(cr, uid, lead, 'info', context=context)
- res.update({
- 'subject': subject,
- 'body': body,
- })
+ template_id = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'crm_partner_assign', 'crm_partner_assign_email_template')[1]
+ context['history_mode'] = context.get('history_mode','whole')
+ mail_body_fields = ['partner_id', 'partner_name', 'title', 'function', 'street', 'street2', 'zip', 'city', 'country_id', 'state_id', 'email_from', 'phone', 'fax', 'mobile', 'description']
+ lead = self.pool.get('crm.lead').browse(cr, uid, res_id, context=context)
+ context['mail_body'] = self.pool.get('crm.lead')._mail_body(cr, uid, lead, mail_body_fields, context=context)
+ template = self.generate_email_for_composer(cr, uid, template_id, res_id, context)
+ res['subject'] = template['subject']
+ res['body'] = template['body']
return res
def on_change_history_mode(self, cr, uid, ids, history_mode, model, res_id, context=None):
""" Update body when changing history_mode """
+ if context is None:
+ context = {}
if model and model == 'crm.lead' and res_id:
lead = self.pool.get(model).browse(cr, uid, res_id, context=context)
- body = self._get_message_body(cr, uid, lead, history_mode, context=context)
+ context['history_mode'] = history_mode
+ body = self.get_record_data(cr, uid, 'crm.lead', res_id, context=context)['body']
return {'value': {'body': body}}
def create(self, cr, uid, values, context=None):
@@ -115,46 +120,5 @@ class crm_lead_forward_to_partner(osv.TransientModel):
return self.send_mail(cr, uid, ids, context=context)
- def _get_info_body(self, cr, uid, lead, context=None):
- field_names = []
- proxy = self.pool.get(lead._name)
- if lead.type == 'opportunity':
- field_names += ['partner_id']
- field_names += [
- 'partner_name' , 'title', 'function', 'street', 'street2',
- 'zip', 'city', 'country_id', 'state_id', 'email_from',
- 'phone', 'fax', 'mobile', 'categ_id', 'description',
- ]
- return proxy._mail_body(cr, uid, lead, field_names, context=context)
-
- def _get_message_body(self, cr, uid, lead, history_mode='whole', context=None):
- """ This function gets whole communication history and returns as top
- posting style
- #1: form a body, based on the lead
- #2: append to the body the communication history, based on the
- history_mode parameter
-
- - info: Forward the case information
- - latest: Send the latest history
- - whole: Send the whole history
-
- :param lead: browse_record on crm.lead
- :param history_mode: 'whole' or 'latest'
- """
- mail_message = self.pool.get('mail.message')
- body = self._get_info_body(cr, uid, lead, context=context)
- if history_mode not in ('whole', 'latest'):
- return body or ''
- for message in lead.message_ids:
- header = '-------- Original Message --------'
- sentdate = 'Date: %s' % (message.date or '')
- desc = '\n%s'%(message.body)
- original = [header, sentdate, desc, '\n']
- original = '\n'.join(original)
- body += original
- if history_mode == 'latest':
- break
- return body or ''
-
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: