[FIX] rating, rating_{*}: translations

Several translation issues are faced with the rating module:
- the feedback page is always displayed in the admin language
- the feedback emails are always sent in the user's language

One would expect these to be in the partner language.

opw-694718
This commit is contained in:
Nicolas Martinelli
2016-12-01 15:50:11 +01:00
parent d5c24abee5
commit 3653661235
4 changed files with 10 additions and 6 deletions
+5 -3
View File
@@ -21,8 +21,9 @@ class Rating(http.Controller):
1: _("highly dissatisfied"),
10: _("satisfied")
}
rating.sudo().write({'rating': rate, 'consumed': True})
return request.render('rating.rating_external_page_submit', {
rating.write({'rating': rate, 'consumed': True})
lang = rating.partner_id.lang or 'en_US'
return request.env['ir.ui.view'].with_context(lang=lang).render_template('rating.rating_external_page_submit', {
'rating': rating, 'token': token,
'rate_name': rate_names[rate], 'rate': rate
})
@@ -37,7 +38,8 @@ class Rating(http.Controller):
# redirect to the form view if logged person
if request.session.uid:
return werkzeug.utils.redirect('/web#model=%s&id=%s&view_type=form' % (record_sudo._name, record_sudo.id))
return request.render('rating.rating_external_page_view', {
lang = rating.partner_id.lang or 'en_US'
return request.env['ir.ui.view'].with_context(lang=lang).render_template('rating.rating_external_page_view', {
'web_base_url': request.env['ir.config_parameter'].sudo().get_param('web.base.url'),
'rating': rating,
})
+3 -1
View File
@@ -92,8 +92,10 @@ class RatingMixin(models.AbstractModel):
def rating_send_request(self, template, partner=None, rated_partner=None, reuse_rating=True, force_send=True):
""" This method send rating request by email, using a template given
in parameter. """
partner = (partner or self.env['res.partner']).sudo()
for record in self:
template.send_mail(record.id, force_send=force_send)
lang = partner.lang or 'en_US'
template.with_context(lang=lang).send_mail(record.id, force_send=force_send)
@api.multi
def rating_apply(self, rate, token=None, feedback=None, subtype=None):
+1 -1
View File
@@ -41,7 +41,7 @@ class Task(models.Model):
rating_template = task.stage_id.rating_template_id
if rating_template:
force_send = self.env.context.get('force_send', True)
task.rating_send_request(rating_template, reuse_rating=False, force_send=force_send)
task.rating_send_request(rating_template, partner=task.partner_id, reuse_rating=False, force_send=force_send)
def rating_get_partner_id(self):
res = super(Task, self).rating_get_partner_id()
@@ -22,7 +22,7 @@ class ProjectIssue(models.Model):
for issue in self:
rating_template = issue.stage_id.rating_template_id
if rating_template:
issue.rating_send_request(rating_template, reuse_rating=False)
issue.rating_send_request(rating_template, partner=issue.partner_id, reuse_rating=False)
@api.multi
def rating_apply(self, rate, token=None, feedback=None, subtype=None):