summaryrefslogtreecommitdiff
path: root/addons/rating
diff options
context:
space:
mode:
authorYannick Tivisse (yti) <yti@odoo.com>2020-04-28 09:13:36 +0000
committerYannick Tivisse <yti@odoo.com>2020-06-02 12:11:57 +0000
commitdadcec593d8328727b17f218c69fa1bc1433686f (patch)
treead4118a8d96351d5b67725112aa863c6a0096b7f /addons/rating
parent09ac18776f73b00f28d222ff544bb209682a2637 (diff)
[IMP] project: Improve global UX (back2basics)
Improve the onboarding of new users and clean a few screens. Task ID: 2237996 closes odoo/odoo#50284 Related: odoo/enterprise#10536 Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com> Co-authored-by: dmonzonis <mod@odoo.com>
Diffstat (limited to 'addons/rating')
-rw-r--r--addons/rating/models/rating.py33
-rw-r--r--addons/rating/views/rating_rating_views.xml17
2 files changed, 36 insertions, 14 deletions
diff --git a/addons/rating/models/rating.py b/addons/rating/models/rating.py
index 7c0ee789177..3d3ed658c29 100644
--- a/addons/rating/models/rating.py
+++ b/addons/rating/models/rating.py
@@ -31,17 +31,28 @@ class Rating(models.Model):
def _default_access_token(self):
return uuid.uuid4().hex
+ @api.model
+ def _selection_target_model(self):
+ return [(model.model, model.name) for model in self.env['ir.model'].search([])]
+
+ create_date = fields.Datetime(string="Submitted on")
res_name = fields.Char(string='Resource name', compute='_compute_res_name', store=True, help="The name of the rated resource.")
res_model_id = fields.Many2one('ir.model', 'Related Document Model', index=True, ondelete='cascade', help='Model of the followed resource')
res_model = fields.Char(string='Document Model', related='res_model_id.model', store=True, index=True, readonly=True)
res_id = fields.Integer(string='Document', required=True, help="Identifier of the rated object", index=True)
+ resource_ref = fields.Reference(
+ string='Resource Ref', selection='_selection_target_model',
+ compute='_compute_resource_ref', readonly=True)
parent_res_name = fields.Char('Parent Document Name', compute='_compute_parent_res_name', store=True)
parent_res_model_id = fields.Many2one('ir.model', 'Parent Related Document Model', index=True, ondelete='cascade')
parent_res_model = fields.Char('Parent Document Model', store=True, related='parent_res_model_id.model', index=True, readonly=False)
parent_res_id = fields.Integer('Parent Document', index=True)
+ parent_ref = fields.Reference(
+ string='Parent Ref', selection='_selection_target_model',
+ compute='_compute_parent_ref', readonly=True)
rated_partner_id = fields.Many2one('res.partner', string="Rated person", help="Owner of the rated resource")
partner_id = fields.Many2one('res.partner', string='Customer', help="Author of the rating")
- rating = fields.Float(string="Rating Number", group_operator="avg", default=0, help="Rating value: 0=Unhappy, 5=Happy")
+ rating = fields.Float(string="Rating Value", group_operator="avg", default=0, help="Rating value: 0=Unhappy, 5=Happy")
rating_image = fields.Binary('Image', compute='_compute_rating_image')
rating_text = fields.Selection([
('satisfied', 'Satisfied'),
@@ -50,13 +61,29 @@ class Rating(models.Model):
('no_rating', 'No Rating yet')], string='Rating', store=True, compute='_compute_rating_text', readonly=True)
feedback = fields.Text('Comment', help="Reason of the rating")
message_id = fields.Many2one(
- 'mail.message', string="Linked message",
+ 'mail.message', string="Message",
index=True, ondelete='cascade',
help="Associated message when posting a review. Mainly used in website addons.")
- is_internal = fields.Boolean('Employee Only', readonly=False, related='message_id.is_internal', store=True)
+ is_internal = fields.Boolean('Visible Internally Only', readonly=False, related='message_id.is_internal', store=True)
access_token = fields.Char('Security Token', default=_default_access_token, help="Access token to set the rating of the value")
consumed = fields.Boolean(string="Filled Rating", help="Enabled if the rating has been filled.")
+ @api.depends('res_model', 'res_id')
+ def _compute_resource_ref(self):
+ for rating in self:
+ if rating.res_model and rating.res_model in self.env:
+ rating.resource_ref = '%s,%s' % (rating.res_model, rating.res_id or 0)
+ else:
+ rating.resource_ref = None
+
+ @api.depends('parent_res_model', 'parent_res_id')
+ def _compute_parent_ref(self):
+ for rating in self:
+ if rating.parent_res_model and rating.parent_res_model in self.env:
+ rating.parent_ref = '%s,%s' % (rating.parent_res_model, rating.parent_res_id or 0)
+ else:
+ rating.parent_ref = None
+
@api.depends('parent_res_model', 'parent_res_id')
def _compute_parent_res_name(self):
for rating in self:
diff --git a/addons/rating/views/rating_rating_views.xml b/addons/rating/views/rating_rating_views.xml
index 9ed2ca1029e..06c566c2f2f 100644
--- a/addons/rating/views/rating_rating_views.xml
+++ b/addons/rating/views/rating_rating_views.xml
@@ -12,7 +12,7 @@
<field name="partner_id"/>
<field name="rating_text" decoration-danger="rating_text == 'highly_dissatisfied'" decoration-warning="rating_text == 'not_satisfied'" decoration-success="rating_text == 'satisfied'"/>
<field name="feedback"/>
- <field name="create_date" string="Submitted on"/>
+ <field name="create_date"/>
</tree>
</field>
</record>
@@ -23,17 +23,12 @@
<field name="arch" type="xml">
<form string="Rating" create="false">
<sheet>
- <div class="oe_button_box" name="button_box">
- <button class="oe_stat_button" type="object" name="action_open_rated_object" icon="fa-file">
- <div class="o_form_field o_stat_info">
- <span class="o_stat_text">Resource</span>
- </div>
- </button>
- </div>
<group>
<group>
- <field name="res_name" string="Document"/>
- <field name="parent_res_name" string="Parent Holder"/>
+ <field name="resource_ref" string="Document"/>
+ <field name="res_name" string="Document" invisible="1"/>
+ <field name="parent_ref" string="Parent Holder"/>
+ <field name="parent_res_name" string="Parent Holder" invisible="1"/>
<field name="rated_partner_id"/>
<field name="rating" invisible="1"/>
<field name="is_internal"/>
@@ -46,7 +41,7 @@
<strong><field name="rating_text"/></strong>
</div>
</div>
- <field name="create_date" string="Submitted on"/>
+ <field name="create_date"/>
<field name="feedback" attrs="{'invisible': [('feedback','=',False)]}"/>
</group>
</group>