[FIX] mass_mailing: domain translation
As Admin:
- Set up 2 languages for the installation, e.g. English and French
- Admin language is English, Demo language is French
- Create a `res.partner.category` named 'Test English'
- Assign the category to a newly created partner
- Create a French translation for 'Test English', e.g. 'Test Francais'
As Demo:
- Create a Mass Mailing
- Select a custom domain: ('category_id', '=', 'Test Francais') => it
should match one partner
- Save and validate
Now either:
- manually run the scheduled action "Process Mass Mailing Queue" as
Admin
- wait for the cron to process the mass mailing
No mail will be sent since the domain will be evaluated in the Admin
language, i.e. English. Indeed, the domain
`('category_id', '=', 'Test Francais')` does not match any record in
English.
The solution/workaround is to use the language of the last user who wrote
on the mass mailing.
Closes #20906, Closes #15467, Closes #15445
opw-778922
This commit is contained in:
committed by
Goffin Simon
parent
407b85e329
commit
6bd3bae04e
@@ -836,9 +836,12 @@ class MassMailing(osv.Model):
|
||||
|
||||
for mass_mailing_id in mass_mailing_ids:
|
||||
mass_mailing_record = self.browse(cr, uid, mass_mailing_id, context=context)
|
||||
_uid = mass_mailing_record.write_uid.id or uid
|
||||
_context = self.pool.get("res.users").context_get(cr, _uid, context=context)
|
||||
_context = dict(context or {}, **_context)
|
||||
|
||||
if len(self.get_remaining_recipients(cr, uid, mass_mailing_record, context=context)) > 0:
|
||||
self.write(cr, uid, [mass_mailing_id], {'state': 'sending'}, context=context)
|
||||
self.send_mail(cr, uid, [mass_mailing_id], context=context)
|
||||
if len(self.get_remaining_recipients(cr, uid, mass_mailing_record, context=_context)) > 0:
|
||||
self.write(cr, uid, [mass_mailing_id], {'state': 'sending'}, context=_context)
|
||||
self.send_mail(cr, uid, [mass_mailing_id], context=_context)
|
||||
else:
|
||||
self.write(cr, uid, [mass_mailing_id], {'state': 'done'}, context=context)
|
||||
self.write(cr, uid, [mass_mailing_id], {'state': 'done'}, context=_context)
|
||||
|
||||
Reference in New Issue
Block a user