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

96 lines
4.9 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<odoo>
<!--
Helpdesk Ticket Report Views with 5-Star Rating Display
This file extends the helpdesk ticket analysis report views to ensure
proper display and handling of the 0-5 star rating scale.
Requirements: 4.1, 4.2, 4.4, 4.5
- Requirement 4.1: Display ratings using the 0-5 scale in reports
- Requirement 4.2: Calculate average ratings based on the 0-5 scale
- Requirement 4.4: Use 0-5 scale for filtering and grouping
- Requirement 4.5: Include 0-5 scale values in exports
-->
<!-- Extend Pivot View to Show 0-5 Scale -->
<record id="helpdesk_ticket_view_pivot_analysis_five_stars" model="ir.ui.view">
<field name="name">helpdesk.ticket.report.analysis.pivot.five.stars</field>
<field name="model">helpdesk.ticket.report.analysis</field>
<field name="inherit_id" ref="helpdesk.helpdesk_ticket_view_pivot_analysis"/>
<field name="arch" type="xml">
<!-- Make rating_avg visible and update label -->
<xpath expr="//field[@name='rating_avg']" position="attributes">
<attribute name="invisible">0</attribute>
<attribute name="string">Average Rating (0-5)</attribute>
</xpath>
<!-- Add rating_last_value as an optional measure -->
<xpath expr="//field[@name='rating_avg']" position="after">
<field name="rating_last_value" type="measure" string="Last Rating (1-5)" invisible="1"/>
</xpath>
</field>
</record>
<!-- Extend Graph View to Show 0-5 Scale -->
<record id="helpdesk_ticket_view_graph_analysis_five_stars" model="ir.ui.view">
<field name="name">helpdesk.ticket.report.analysis.graph.five.stars</field>
<field name="model">helpdesk.ticket.report.analysis</field>
<field name="inherit_id" ref="helpdesk.helpdesk_ticket_view_graph_analysis"/>
<field name="arch" type="xml">
<!-- Make rating_avg visible and update label -->
<xpath expr="//field[@name='rating_avg']" position="attributes">
<attribute name="invisible">0</attribute>
<attribute name="string">Average Rating (0-5)</attribute>
</xpath>
<!-- Add rating_last_value as an optional measure -->
<xpath expr="//field[@name='rating_avg']" position="after">
<field name="rating_last_value" type="measure" string="Last Rating (1-5)" invisible="1"/>
</xpath>
</field>
</record>
<!-- Extend List View to Show Rating Values -->
<record id="helpdesk_ticket_report_analysis_view_tree_five_stars" model="ir.ui.view">
<field name="name">helpdesk.ticket.report.analysis.list.five.stars</field>
<field name="model">helpdesk.ticket.report.analysis</field>
<field name="inherit_id" ref="helpdesk.helpdesk_ticket_report_analysis_view_tree"/>
<field name="arch" type="xml">
<!-- Add rating fields to the list view -->
<xpath expr="//field[@name='stage_id']" position="after">
<field name="rating_last_value" optional="show" string="Last Rating (1-5)"/>
<field name="rating_avg" optional="hide" string="Avg Rating (0-5)"/>
</xpath>
</field>
</record>
<!-- Extend Search View to Add Rating Filters -->
<record id="helpdesk_ticket_report_analysis_view_search_five_stars" model="ir.ui.view">
<field name="name">helpdesk.ticket.report.analysis.search.five.stars</field>
<field name="model">helpdesk.ticket.report.analysis</field>
<field name="inherit_id" ref="helpdesk.helpdesk_ticket_report_analysis_view_search"/>
<field name="arch" type="xml">
<!-- Add rating-based filters -->
<xpath expr="//filter[@name='my_ticket']" position="after">
<separator/>
<filter string="Highly Rated (4-5 stars)" name="filter_high_rating"
domain="[('rating_last_value', '&gt;=', 4)]"/>
<filter string="Medium Rated (3 stars)" name="filter_medium_rating"
domain="[('rating_last_value', '&gt;=', 3), ('rating_last_value', '&lt;', 4)]"/>
<filter string="Low Rated (1-2 stars)" name="filter_low_rating"
domain="[('rating_last_value', '&gt;=', 1), ('rating_last_value', '&lt;', 3)]"/>
<filter string="Has Rating" name="filter_has_rating"
domain="[('rating_last_value', '&gt;', 0)]"/>
</xpath>
<!-- Add rating grouping options -->
<xpath expr="//group" position="inside">
<filter string="Rating Level" name="group_by_rating_level"
context="{'group_by': 'rating_last_value'}"/>
</xpath>
</field>
</record>
</odoo>