77 lines
3.6 KiB
XML
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>
|