Please take a moment to rate our services related to the task "Planning and budget"
-
- assigned to Mitchell Admin.
+
+ assigned to Mitchell Admin.
.
@@ -94,7 +94,7 @@
- {{ object.rating_get_partner_id().lang }}
+ {{ object._rating_get_partner().lang }}
diff --git a/addons/project/models/project.py b/addons/project/models/project.py
index 6d80e90a3f9..d8eea1adfa7 100644
--- a/addons/project/models/project.py
+++ b/addons/project/models/project.py
@@ -2273,8 +2273,8 @@ class Task(models.Model):
if rating_template:
task.rating_send_request(rating_template, lang=task.partner_id.lang, force_send=force_send)
- def rating_get_partner_id(self):
- res = super(Task, self).rating_get_partner_id()
+ def _rating_get_partner(self):
+ res = super(Task, self)._rating_get_partner()
if not res and self.project_id.partner_id:
return self.project_id.partner_id
return res
@@ -2292,7 +2292,7 @@ class Task(models.Model):
def _rating_get_parent_field_name(self):
return 'project_id'
- def rating_get_rated_partner_id(self):
+ def _rating_get_operator(self):
""" Overwrite since we have user_ids and not user_id """
tasks_with_one_user = self.filtered(lambda task: len(task.user_ids) == 1 and task.user_ids.partner_id)
return tasks_with_one_user.user_ids.partner_id or self.env['res.partner']
diff --git a/addons/rating/models/rating_mixin.py b/addons/rating/models/rating_mixin.py
index 7001a59592a..da89a483bbd 100644
--- a/addons/rating/models/rating_mixin.py
+++ b/addons/rating/models/rating_mixin.py
@@ -111,17 +111,25 @@ class RatingMixin(models.AbstractModel):
"""
return ['&', '&', ('res_model', '=', self._name), ('res_id', 'in', self.ids), ('consumed', '=', True)]
- def rating_get_partner_id(self):
+ def _rating_get_partner(self):
+ """ Return the customer (partner) that performs the rating.
+
+ :return record: res.partner singleton
+ """
if hasattr(self, 'partner_id') and self.partner_id:
return self.partner_id
return self.env['res.partner']
- def rating_get_rated_partner_id(self):
+ def _rating_get_operator(self):
+ """ Return the operator (partner) that is the person who is rated.
+
+ :return record: res.partner singleton
+ """
if hasattr(self, 'user_id') and self.user_id.partner_id:
return self.user_id.partner_id
return self.env['res.partner']
- def rating_get_access_token(self, partner=None):
+ def _rating_get_access_token(self, partner=None):
""" Return access token linked to existing ratings, or create a new rating
that will create the asked token. An explicit call to access rights is
performed as sudo is used afterwards as this method could be used from
@@ -129,8 +137,8 @@ class RatingMixin(models.AbstractModel):
self.check_access_rights('read')
self.check_access_rule('read')
if not partner:
- partner = self.rating_get_partner_id()
- rated_partner = self.rating_get_rated_partner_id()
+ partner = self._rating_get_partner()
+ rated_partner = self._rating_get_operator()
ratings = self.rating_ids.sudo().filtered(lambda x: x.partner_id.id == partner.id and not x.consumed)
if not ratings:
rating = self.env['rating.rating'].sudo().create({
diff --git a/addons/sale_project/models/project.py b/addons/sale_project/models/project.py
index 39ad9d2a7fd..d1a86881814 100644
--- a/addons/sale_project/models/project.py
+++ b/addons/sale_project/models/project.py
@@ -550,11 +550,9 @@ class ProjectTask(models.Model):
}
return self.action_view_so()
- def rating_get_partner_id(self):
+ def _rating_get_partner(self):
partner = self.partner_id or self.sale_line_id.order_id.partner_id
- if partner:
- return partner
- return super().rating_get_partner_id()
+ return partner or super()._rating_get_partner()
@api.depends('sale_order_id.invoice_status', 'sale_order_id.order_line')
def _compute_task_to_invoice(self):
diff --git a/addons/test_mail_full/models/test_mail_models_mail.py b/addons/test_mail_full/models/test_mail_models_mail.py
index 3c254a0c25d..b6cdd20dd5d 100644
--- a/addons/test_mail_full/models/test_mail_models_mail.py
+++ b/addons/test_mail_full/models/test_mail_models_mail.py
@@ -54,5 +54,5 @@ class MailTestRating(models.Model):
def _rating_apply_get_default_subtype_id(self):
return self.env['ir.model.data']._xmlid_to_res_id("test_mail_full.mt_mail_test_rating_rating_done")
- def rating_get_partner_id(self):
+ def _rating_get_partner(self):
return self.customer_id
diff --git a/addons/test_mail_full/tests/test_rating.py b/addons/test_mail_full/tests/test_rating.py
index 097ac9ff9b3..05f552ea960 100644
--- a/addons/test_mail_full/tests/test_rating.py
+++ b/addons/test_mail_full/tests/test_rating.py
@@ -32,7 +32,7 @@ class TestRatingFlow(TestMailFullCommon, TestMailFullRecipients):
record_rating = self.env['mail.test.rating'].browse(self.record_rating.ids)
# prepare rating token
- access_token = record_rating.rating_get_access_token()
+ access_token = record_rating._rating_get_access_token()
record_rating.invalidate_cache(fnames=['rating_ids'])
# check rating creation
@@ -51,7 +51,7 @@ class TestRatingFlow(TestMailFullCommon, TestMailFullRecipients):
record_messages = record_rating.message_ids
# prepare rating token
- access_token = record_rating.rating_get_access_token()
+ access_token = record_rating._rating_get_access_token()
record_rating.invalidate_cache(fnames=['rating_ids'])
# apply a rate as note (first click)