helpdesk_rating_five_stars/views/rating_rating_views.xml
2025-11-26 10:39:26 +07:00

77 lines
3.6 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<odoo>
<!--
Backend Rating Views with 5-Star Display
This file extends the standard Odoo rating views to display 5-star ratings
instead of the default 3-emoticon system.
Requirements: 4.3, 5.1
- Requirement 4.3: Display individual ratings in backend views with star icons
- Requirement 5.1: Display ratings as filled star icons in ticket views
-->
<!-- Extend Rating List/Tree View to Show Stars -->
<record id="rating_rating_view_tree_stars" model="ir.ui.view">
<field name="name">rating.rating.list.stars</field>
<field name="model">rating.rating</field>
<field name="inherit_id" ref="rating.rating_rating_view_tree"/>
<field name="arch" type="xml">
<!-- Add rating value field and computed star fields -->
<xpath expr="//field[@name='rating_text']" position="before">
<field name="rating" optional="show" string="Rating (0-5)"/>
<field name="rating_stars_filled" optional="hide"/>
<field name="rating_stars_empty" optional="hide"/>
</xpath>
<!-- Modify rating_text to show stars representation -->
<xpath expr="//field[@name='rating_text']" position="attributes">
<attribute name="string">Rating Stars</attribute>
</xpath>
</field>
</record>
<!-- Extend Rating Form View to Show Stars -->
<record id="rating_rating_view_form_stars" model="ir.ui.view">
<field name="name">rating.rating.form.stars</field>
<field name="model">rating.rating</field>
<field name="inherit_id" ref="rating.rating_rating_view_form"/>
<field name="arch" type="xml">
<!-- Add rating value field after rating_text -->
<xpath expr="//field[@name='rating_text']" position="after">
<field name="rating" readonly="1" string="Rating Value (0-5)"/>
<field name="rating_stars_filled" invisible="1"/>
<field name="rating_stars_empty" invisible="1"/>
</xpath>
</field>
</record>
<!-- Override the default kanban view to use 5-star display -->
<record id="rating_rating_view_kanban_five_stars" model="ir.ui.view">
<field name="name">rating.rating.kanban.five.stars</field>
<field name="model">rating.rating</field>
<field name="inherit_id" ref="rating.rating_rating_view_kanban_stars"/>
<field name="arch" type="xml">
<!-- Update the star calculation to use 5-star scale -->
<xpath expr="//aside[@class='col-3 me-2']" position="replace">
<aside class="col-3 me-2">
<field name="rating_stars_filled" invisible="1"/>
<field name="rating_stars_empty" invisible="1"/>
<div class="display-3 fw-bold text-center text-primary mb-2" t-esc="record.rating.raw_value"/>
<div class="text-center">
<i t-foreach="[...Array(record.rating_stars_filled.raw_value).keys()]" t-as="num" t-key="num"
class="fa fa-star text-warning"
aria-label="A filled star"
role="img"/>
<i t-foreach="[...Array(record.rating_stars_empty.raw_value).keys()]" t-as="num" t-key="num"
class="fa fa-star-o text-black-25"
aria-label="An empty star"
role="img"/>
</div>
</aside>
</xpath>
</field>
</record>
</odoo>