Merge lp:~openerp-dev/openobject-addons/trunk-lead_notification_imp-pga into lp:openobject-addons

Proposed by Dharmraj Zala(OpenERP)
Status: Needs review
Proposed branch: lp:~openerp-dev/openobject-addons/trunk-lead_notification_imp-pga
Merge into: lp:openobject-addons
Diff against target: 143 lines (+68/-7)
4 files modified
crm_partner_assign/crm_partner_assign.py (+10/-4)
crm_partner_assign/portal_data.xml (+35/-1)
crm_partner_assign/wizard/crm_channel_interested.py (+5/-2)
crm_partner_assign/wizard/crm_forward_to_partner.py (+18/-0)
To merge this branch: bzr merge lp:~openerp-dev/openobject-addons/trunk-lead_notification_imp-pga
Reviewer Review Type Date Requested Status
OpenERP Core Team Pending
Review via email: mp+205899@code.launchpad.net

Description of the change

Hello,

This mp contains some improvements of crm_partner_assign module like
  -- Improved lead assignation notifications
  -- Added new subtypes in lead and partner

Thanks
dja.

To post a comment you must log in.
9023. By Dharmraj Zala(OpenERP)

[MERGE] with latest trunk

9024. By Dharmraj Zala(OpenERP)

[MERGE] with latest trunk

9025. By Dharmraj Zala(OpenERP)

[MERGE] with trunk

9026. By Dharmraj Zala(OpenERP)

[IMP] improved onchange method for assigned partner

9027. By Dharmraj Zala(OpenERP)

[MERGE] with trunk

9028. By Amit Vora(OpenERP)

[MERGE] merge with main branch

9029. By Dharmraj Zala(OpenERP)

[MERGE] with latest trunk

9030. By Amit Vora(OpenERP)

[MERGE] merge with main branch

9031. By Dharmraj Zala(OpenERP)

[MERGE] sync with trunk

9032. By Amit Vora(OpenERP)

[IMP] partner_assign_id use in _tack for notification

9033. By Amit Vora(OpenERP)

[MRG] merge with main branch

9034. By Amit Vora(OpenERP)

[MRG] merge with main branch

9035. By Dharmraj Zala(OpenERP)

[MERGE] sync with trunk-addons

9036. By Dharmraj Zala(OpenERP)

[MERGE] sync with latest trunk

9037. By Amit Vora(OpenERP)

[MRG] merge with main branch

Unmerged revisions

9037. By Amit Vora(OpenERP)

[MRG] merge with main branch

9036. By Dharmraj Zala(OpenERP)

[MERGE] sync with latest trunk

9035. By Dharmraj Zala(OpenERP)

[MERGE] sync with trunk-addons

9034. By Amit Vora(OpenERP)

[MRG] merge with main branch

9033. By Amit Vora(OpenERP)

[MRG] merge with main branch

9032. By Amit Vora(OpenERP)

[IMP] partner_assign_id use in _tack for notification

9031. By Dharmraj Zala(OpenERP)

[MERGE] sync with trunk

9030. By Amit Vora(OpenERP)

[MERGE] merge with main branch

9029. By Dharmraj Zala(OpenERP)

[MERGE] with latest trunk

9028. By Amit Vora(OpenERP)

[MERGE] merge with main branch

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'crm_partner_assign/crm_partner_assign.py'
--- crm_partner_assign/crm_partner_assign.py 2013-12-02 15:09:25 +0000
+++ crm_partner_assign/crm_partner_assign.py 2014-05-16 09:54:03 +0000
@@ -86,6 +86,12 @@
8686
87class crm_lead(osv.osv):87class crm_lead(osv.osv):
88 _inherit = "crm.lead"88 _inherit = "crm.lead"
89 _track = {
90 'partner_assigned_id': {
91 # this is only an heuristics; depending on your particular stage configuration it may not match all 'new' stages
92 'crm_partner_assign.mt_crm_partner_lead_assign': lambda self, cr, uid, obj, ctx=None: obj.partner_assigned_id,
93 },
94 }
89 _columns = {95 _columns = {
90 'partner_latitude': fields.float('Geo Latitude'),96 'partner_latitude': fields.float('Geo Latitude'),
91 'partner_longitude': fields.float('Geo Longitude'),97 'partner_longitude': fields.float('Geo Longitude'),
@@ -105,10 +111,10 @@
105 else:111 else:
106 partners = self.pool.get('res.partner').browse(cr, uid, [partner_assigned_id], context=context)112 partners = self.pool.get('res.partner').browse(cr, uid, [partner_assigned_id], context=context)
107 user_id = partners[0] and partners[0].user_id.id or False113 user_id = partners[0] and partners[0].user_id.id or False
108 return {'value':114 values = {'date_assign': fields.date.context_today(self,cr,uid,context=context)}
109 {'date_assign': fields.date.context_today(self,cr,uid,context=context),115 if user_id:
110 'user_id' : user_id}116 values.update({'user_id' : user_id})
111 }117 return {'value': values}
112118
113 def action_assign_partner(self, cr, uid, ids, context=None):119 def action_assign_partner(self, cr, uid, ids, context=None):
114 return self.assign_partner(cr, uid, ids, partner_id=False, context=context)120 return self.assign_partner(cr, uid, ids, partner_id=False, context=context)
115121
=== modified file 'crm_partner_assign/portal_data.xml'
--- crm_partner_assign/portal_data.xml 2013-10-08 14:57:30 +0000
+++ crm_partner_assign/portal_data.xml 2014-05-16 09:54:03 +0000
@@ -31,4 +31,38 @@
31 </record>31 </record>
3232
33 </data>33 </data>
34</openerp>34 <data noupdate="1">
35
36 <record id="mt_lead_accept" model="mail.message.subtype">
37 <field name="name">Partner Accept</field>
38 <field name="res_model">crm.lead</field>
39 <field name="default" eval="False"/>
40 <field name="description">Partner Accept</field>
41 </record>
42
43 <record id="mt_lead_refused" model="mail.message.subtype">
44 <field name="name">Partner Refused</field>
45 <field name="res_model">crm.lead</field>
46 <field name="default" eval="False"/>
47 <field name="description">Partner Refused</field>
48 </record>
49
50 <record id="mt_crm_partner_lead_assign" model="mail.message.subtype">
51 <field name="name">Lead Assign</field>
52 <field name="res_model">crm.lead</field>
53 <field name="default" eval="False"/>
54 <field name="hidden" eval="True"/>
55 <field name="description">Lead Assign</field>
56 </record>
57
58 <record id="mt_partner_lead_assign" model="mail.message.subtype">
59 <field name="name">Lead Assign</field>
60 <field name="res_model">res.partner</field>
61 <field name="default" eval="False"/>
62 <field name="description">Lead Assign</field>
63 <field name="parent_id" eval="ref('mt_crm_partner_lead_assign')"/>
64 <field name="relation_field">partner_assigned_id</field>
65 </record>
66
67 </data>
68 </openerp>
3569
=== modified file 'crm_partner_assign/wizard/crm_channel_interested.py'
--- crm_partner_assign/wizard/crm_channel_interested.py 2014-04-04 12:54:50 +0000
+++ crm_partner_assign/wizard/crm_channel_interested.py 2014-05-16 09:54:03 +0000
@@ -53,6 +53,9 @@
53 values = {'partner_assigned_id': False}53 values = {'partner_assigned_id': False}
54 user = self.pool.get('res.users').browse(cr, uid, uid, context=context)54 user = self.pool.get('res.users').browse(cr, uid, uid, context=context)
55 partner_ids = self.pool.get('res.partner').search(cr, SUPERUSER_ID, [('id', 'child_of', user.partner_id.commercial_partner_id.id)], context=context)55 partner_ids = self.pool.get('res.partner').search(cr, SUPERUSER_ID, [('id', 'child_of', user.partner_id.commercial_partner_id.id)], context=context)
56 if wizard.comment:
57 message += '<p>%s</p>' % wizard.comment
58 lead_obj.message_post(cr, uid, context.get('active_ids'), body=_(message),subtype="crm_partner_assign.mt_lead_refused", context=context)
56 lead_obj.message_unsubscribe(cr, SUPERUSER_ID, context.get('active_ids', []), partner_ids, context=None)59 lead_obj.message_unsubscribe(cr, SUPERUSER_ID, context.get('active_ids', []), partner_ids, context=None)
57 try:60 try:
58 stage_id = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'crm_partner_assign', stage)[1]61 stage_id = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'crm_partner_assign', stage)[1]
@@ -60,13 +63,13 @@
60 stage_id = False63 stage_id = False
61 if stage_id:64 if stage_id:
62 values.update({'stage_id': stage_id})65 values.update({'stage_id': stage_id})
66
63 if wizard.comment:67 if wizard.comment:
64 message += '<p>%s</p>' % wizard.comment68 message += '<p>%s</p>' % wizard.comment
65 for active_id in context.get('active_ids', []):
66 lead_obj.message_post(cr, uid, active_id, body=message, subtype="mail.mt_comment", context=context)
67 if values:69 if values:
68 lead_obj.write(cr, SUPERUSER_ID, context.get('active_ids', []), values)70 lead_obj.write(cr, SUPERUSER_ID, context.get('active_ids', []), values)
69 if wizard.interested:71 if wizard.interested:
72 lead_obj.message_post(cr, uid, context.get('active_ids'), body=_(message),subtype="crm_partner_assign.mt_lead_accept", context=context)
70 for lead in lead_obj.browse(cr, uid, context.get('active_ids', []), context=context):73 for lead in lead_obj.browse(cr, uid, context.get('active_ids', []), context=context):
71 lead_obj.convert_opportunity(cr, SUPERUSER_ID, [lead.id], lead.partner_id and lead.partner_id.id or None, context=None)74 lead_obj.convert_opportunity(cr, SUPERUSER_ID, [lead.id], lead.partner_id and lead.partner_id.id or None, context=None)
72 return {75 return {
7376
=== modified file 'crm_partner_assign/wizard/crm_forward_to_partner.py'
--- crm_partner_assign/wizard/crm_forward_to_partner.py 2014-01-16 10:39:10 +0000
+++ crm_partner_assign/wizard/crm_forward_to_partner.py 2014-05-16 09:54:03 +0000
@@ -79,6 +79,7 @@
7979
80 def action_forward(self, cr, uid, ids, context=None):80 def action_forward(self, cr, uid, ids, context=None):
81 lead_obj = self.pool.get('crm.lead')81 lead_obj = self.pool.get('crm.lead')
82 partner_obj = self.pool.get('res.partner')
82 record = self.browse(cr, uid, ids[0], context=context)83 record = self.browse(cr, uid, ids[0], context=context)
83 email_template_obj = self.pool.get('email.template')84 email_template_obj = self.pool.get('email.template')
84 try:85 try:
@@ -143,8 +144,25 @@
143 values['section_id'] = partner_leads['partner'].user_id.default_section_id.id144 values['section_id'] = partner_leads['partner'].user_id.default_section_id.id
144 lead_obj.write(cr, uid, lead_ids, values)145 lead_obj.write(cr, uid, lead_ids, values)
145 self.pool.get('crm.lead').message_subscribe(cr, uid, lead_ids, [partner_id], context=context)146 self.pool.get('crm.lead').message_subscribe(cr, uid, lead_ids, [partner_id], context=context)
147 message = self._prepare_notify_message(partner_leads['leads'], partner_leads['partner'].name)
148 partner_obj.message_post(cr, uid, [partner_id], body=message,subtype="crm_partner_assign.mt_partner_lead_assign", context=context)
146 return True149 return True
147150
151 def _prepare_notify_message(self, leads, partner_name):
152 child_message, lead, link = '<ol>', False, False
153 for lead_dict in leads:
154 link = "#model=crm.lead&id=%s" % (lead_dict['lead_id'].id)
155 lead = lead_dict['lead_id']
156 child_message += '<li> <a href="%s">%s</a></li>'%(link,lead.name)
157 child_message += '</ol>'
158 message = '<ul><li><b>Assign to:</b> %s </li>'%(partner_name)
159 if len(leads) == 1:
160 message += '<li><b>Lead: <a href="%s">%s</a> </b> </li>'%(link,lead.name)
161 else:
162 message += '<li><b>Leads: %s</li>'%(child_message)
163 message += '</b></li></ul>'
164 return message
165
148 def get_lead_portal_url(self, cr, uid, lead_id, type, context=None):166 def get_lead_portal_url(self, cr, uid, lead_id, type, context=None):
149 action = type == 'opportunity' and 'action_portal_opportunities' or 'action_portal_leads'167 action = type == 'opportunity' and 'action_portal_opportunities' or 'action_portal_leads'
150 try:168 try:

Subscribers

People subscribed via source and target branches

to all changes: