diff options
| author | Yannick Tivisse (yti) <yti@odoo.com> | 2020-04-28 09:13:36 +0000 |
|---|---|---|
| committer | Yannick Tivisse <yti@odoo.com> | 2020-06-02 12:11:57 +0000 |
| commit | dadcec593d8328727b17f218c69fa1bc1433686f (patch) | |
| tree | ad4118a8d96351d5b67725112aa863c6a0096b7f /addons/rating | |
| parent | 09ac18776f73b00f28d222ff544bb209682a2637 (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.py | 33 | ||||
| -rw-r--r-- | addons/rating/views/rating_rating_views.xml | 17 |
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> |
