refactor: Update XPath selector in rating kanban view for improved class matching. Update to Odoo 19
This commit is contained in:
parent
f7e89a5e0e
commit
d412e3401a
15
.gitignore
vendored
Normal file
15
.gitignore
vendored
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
# Python
|
||||||
|
__pycache__/
|
||||||
|
*.py[cod]
|
||||||
|
*$py.class
|
||||||
|
|
||||||
|
# OS
|
||||||
|
.DS_Store
|
||||||
|
Thumbs.db
|
||||||
|
|
||||||
|
# Editor
|
||||||
|
.vscode/
|
||||||
|
.idea/
|
||||||
|
|
||||||
|
# Odoo
|
||||||
|
*.pot
|
||||||
0
CHANGELOG.md
Normal file → Executable file
0
CHANGELOG.md
Normal file → Executable file
0
DOCUMENTATION.md
Normal file → Executable file
0
DOCUMENTATION.md
Normal file → Executable file
0
INSTALL.md
Normal file → Executable file
0
INSTALL.md
Normal file → Executable file
0
USER_GUIDE.md
Normal file → Executable file
0
USER_GUIDE.md
Normal file → Executable file
0
__init__.py
Normal file → Executable file
0
__init__.py
Normal file → Executable file
2
__manifest__.py
Normal file → Executable file
2
__manifest__.py
Normal file → Executable file
@ -1,7 +1,7 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
{
|
{
|
||||||
'name': 'Helpdesk Rating Five Stars',
|
'name': 'Helpdesk Rating Five Stars',
|
||||||
'version': '18.0.1.0.0',
|
'version': '19.0.1.0.0',
|
||||||
'category': 'Services/Helpdesk',
|
'category': 'Services/Helpdesk',
|
||||||
'summary': 'Replace 3-emoticon rating system with 5-star rating system for Helpdesk',
|
'summary': 'Replace 3-emoticon rating system with 5-star rating system for Helpdesk',
|
||||||
'description': """
|
'description': """
|
||||||
|
|||||||
Binary file not shown.
0
__pycache__/__manifest__.cpython-312.pyc
Normal file → Executable file
0
__pycache__/__manifest__.cpython-312.pyc
Normal file → Executable file
Binary file not shown.
0
controllers/__init__.py
Normal file → Executable file
0
controllers/__init__.py
Normal file → Executable file
Binary file not shown.
Binary file not shown.
0
controllers/rating.py
Normal file → Executable file
0
controllers/rating.py
Normal file → Executable file
0
data/mail_templates.xml
Normal file → Executable file
0
data/mail_templates.xml
Normal file → Executable file
0
models/__init__.py
Normal file → Executable file
0
models/__init__.py
Normal file → Executable file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
0
models/helpdesk_ticket.py
Normal file → Executable file
0
models/helpdesk_ticket.py
Normal file → Executable file
0
models/helpdesk_ticket_report.py
Normal file → Executable file
0
models/helpdesk_ticket_report.py
Normal file → Executable file
3
models/rating_rating.py
Normal file → Executable file
3
models/rating_rating.py
Normal file → Executable file
@ -20,7 +20,6 @@ class Rating(models.Model):
|
|||||||
required=True,
|
required=True,
|
||||||
help='Rating value: 0 (no rating), 1-5 (stars)',
|
help='Rating value: 0 (no rating), 1-5 (stars)',
|
||||||
aggregator="avg",
|
aggregator="avg",
|
||||||
tracking=True # Track changes to rating value
|
|
||||||
)
|
)
|
||||||
|
|
||||||
# Computed fields for star display
|
# Computed fields for star display
|
||||||
@ -39,12 +38,10 @@ class Rating(models.Model):
|
|||||||
# Audit fields - track who submitted/modified the rating
|
# Audit fields - track who submitted/modified the rating
|
||||||
feedback = fields.Text(
|
feedback = fields.Text(
|
||||||
string='Feedback',
|
string='Feedback',
|
||||||
tracking=True # Track changes to feedback
|
|
||||||
)
|
)
|
||||||
|
|
||||||
consumed = fields.Boolean(
|
consumed = fields.Boolean(
|
||||||
string='Rating Submitted',
|
string='Rating Submitted',
|
||||||
tracking=True # Track when rating is consumed
|
|
||||||
)
|
)
|
||||||
|
|
||||||
@api.constrains('rating')
|
@api.constrains('rating')
|
||||||
|
|||||||
0
security/helpdesk_rating_security.xml
Normal file → Executable file
0
security/helpdesk_rating_security.xml
Normal file → Executable file
0
security/ir.model.access.csv
Normal file → Executable file
0
security/ir.model.access.csv
Normal file → Executable file
0
static/description/ICON_README.md
Normal file → Executable file
0
static/description/ICON_README.md
Normal file → Executable file
0
static/description/icon.svg
Normal file → Executable file
0
static/description/icon.svg
Normal file → Executable file
|
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.1 KiB |
0
static/description/index.html
Normal file → Executable file
0
static/description/index.html
Normal file → Executable file
0
static/description/widget_demo.html
Normal file → Executable file
0
static/description/widget_demo.html
Normal file → Executable file
0
static/src/README.md
Normal file → Executable file
0
static/src/README.md
Normal file → Executable file
0
static/src/js/rating_stars.js
Normal file → Executable file
0
static/src/js/rating_stars.js
Normal file → Executable file
0
static/src/scss/rating_stars.scss
Normal file → Executable file
0
static/src/scss/rating_stars.scss
Normal file → Executable file
0
static/src/xml/rating_stars.xml
Normal file → Executable file
0
static/src/xml/rating_stars.xml
Normal file → Executable file
0
tests/__init__.py
Normal file → Executable file
0
tests/__init__.py
Normal file → Executable file
0
tests/__pycache__/__init__.cpython-312.pyc
Normal file → Executable file
0
tests/__pycache__/__init__.cpython-312.pyc
Normal file → Executable file
0
tests/__pycache__/test_api_compatibility.cpython-312.pyc
Normal file → Executable file
0
tests/__pycache__/test_api_compatibility.cpython-312.pyc
Normal file → Executable file
0
tests/__pycache__/test_aria_labels.cpython-312.pyc
Normal file → Executable file
0
tests/__pycache__/test_aria_labels.cpython-312.pyc
Normal file → Executable file
0
tests/__pycache__/test_average_calculation.cpython-312.pyc
Normal file → Executable file
0
tests/__pycache__/test_average_calculation.cpython-312.pyc
Normal file → Executable file
0
tests/__pycache__/test_duplicate_rating.cpython-312.pyc
Normal file → Executable file
0
tests/__pycache__/test_duplicate_rating.cpython-312.pyc
Normal file → Executable file
0
tests/__pycache__/test_helpdesk_ticket.cpython-312.pyc
Normal file → Executable file
0
tests/__pycache__/test_helpdesk_ticket.cpython-312.pyc
Normal file → Executable file
0
tests/__pycache__/test_hover_feedback.cpython-312.pyc
Normal file → Executable file
0
tests/__pycache__/test_hover_feedback.cpython-312.pyc
Normal file → Executable file
0
tests/__pycache__/test_integration.cpython-312.pyc
Normal file → Executable file
0
tests/__pycache__/test_integration.cpython-312.pyc
Normal file → Executable file
0
tests/__pycache__/test_keyboard_navigation.cpython-312.pyc
Normal file → Executable file
0
tests/__pycache__/test_keyboard_navigation.cpython-312.pyc
Normal file → Executable file
0
tests/__pycache__/test_no_regression.cpython-312.pyc
Normal file → Executable file
0
tests/__pycache__/test_no_regression.cpython-312.pyc
Normal file → Executable file
0
tests/__pycache__/test_rating_controller.cpython-312.pyc
Normal file → Executable file
0
tests/__pycache__/test_rating_controller.cpython-312.pyc
Normal file → Executable file
0
tests/__pycache__/test_rating_export.cpython-312.pyc
Normal file → Executable file
0
tests/__pycache__/test_rating_export.cpython-312.pyc
Normal file → Executable file
0
tests/__pycache__/test_rating_filtering.cpython-312.pyc
Normal file → Executable file
0
tests/__pycache__/test_rating_filtering.cpython-312.pyc
Normal file → Executable file
0
tests/__pycache__/test_rating_migration.cpython-312.pyc
Normal file → Executable file
0
tests/__pycache__/test_rating_migration.cpython-312.pyc
Normal file → Executable file
0
tests/__pycache__/test_rating_model.cpython-312.pyc
Normal file → Executable file
0
tests/__pycache__/test_rating_model.cpython-312.pyc
Normal file → Executable file
0
tests/__pycache__/test_rating_reports.cpython-312.pyc
Normal file → Executable file
0
tests/__pycache__/test_rating_reports.cpython-312.pyc
Normal file → Executable file
0
tests/__pycache__/test_rating_security.cpython-312.pyc
Normal file → Executable file
0
tests/__pycache__/test_rating_security.cpython-312.pyc
Normal file → Executable file
0
tests/__pycache__/test_rating_views.cpython-312.pyc
Normal file → Executable file
0
tests/__pycache__/test_rating_views.cpython-312.pyc
Normal file → Executable file
0
tests/__pycache__/test_star_highlighting.cpython-312.pyc
Normal file → Executable file
0
tests/__pycache__/test_star_highlighting.cpython-312.pyc
Normal file → Executable file
0
tests/test_api_compatibility.py
Normal file → Executable file
0
tests/test_api_compatibility.py
Normal file → Executable file
0
tests/test_aria_labels.py
Normal file → Executable file
0
tests/test_aria_labels.py
Normal file → Executable file
0
tests/test_average_calculation.py
Normal file → Executable file
0
tests/test_average_calculation.py
Normal file → Executable file
0
tests/test_duplicate_rating.py
Normal file → Executable file
0
tests/test_duplicate_rating.py
Normal file → Executable file
0
tests/test_helpdesk_ticket.py
Normal file → Executable file
0
tests/test_helpdesk_ticket.py
Normal file → Executable file
0
tests/test_hover_feedback.py
Normal file → Executable file
0
tests/test_hover_feedback.py
Normal file → Executable file
0
tests/test_integration.py
Normal file → Executable file
0
tests/test_integration.py
Normal file → Executable file
0
tests/test_keyboard_navigation.py
Normal file → Executable file
0
tests/test_keyboard_navigation.py
Normal file → Executable file
0
tests/test_no_regression.py
Normal file → Executable file
0
tests/test_no_regression.py
Normal file → Executable file
0
tests/test_rating_controller.py
Normal file → Executable file
0
tests/test_rating_controller.py
Normal file → Executable file
0
tests/test_rating_export.py
Normal file → Executable file
0
tests/test_rating_export.py
Normal file → Executable file
0
tests/test_rating_filtering.py
Normal file → Executable file
0
tests/test_rating_filtering.py
Normal file → Executable file
0
tests/test_rating_migration.py
Normal file → Executable file
0
tests/test_rating_migration.py
Normal file → Executable file
0
tests/test_rating_model.py
Normal file → Executable file
0
tests/test_rating_model.py
Normal file → Executable file
0
tests/test_rating_reports.py
Normal file → Executable file
0
tests/test_rating_reports.py
Normal file → Executable file
0
tests/test_rating_security.py
Normal file → Executable file
0
tests/test_rating_security.py
Normal file → Executable file
0
tests/test_rating_views.py
Normal file → Executable file
0
tests/test_rating_views.py
Normal file → Executable file
0
tests/test_star_highlighting.py
Normal file → Executable file
0
tests/test_star_highlighting.py
Normal file → Executable file
0
views/helpdesk_ticket_report_views.xml
Normal file → Executable file
0
views/helpdesk_ticket_report_views.xml
Normal file → Executable file
0
views/helpdesk_ticket_views.xml
Normal file → Executable file
0
views/helpdesk_ticket_views.xml
Normal file → Executable file
2
views/rating_rating_views.xml
Normal file → Executable file
2
views/rating_rating_views.xml
Normal file → Executable file
@ -53,7 +53,7 @@
|
|||||||
<field name="inherit_id" ref="rating.rating_rating_view_kanban_stars"/>
|
<field name="inherit_id" ref="rating.rating_rating_view_kanban_stars"/>
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<!-- Update the star calculation to use 5-star scale -->
|
<!-- Update the star calculation to use 5-star scale -->
|
||||||
<xpath expr="//aside[@class='col-3 me-2']" position="replace">
|
<xpath expr="//aside[hasclass('col-3', 'me-2')]" position="replace">
|
||||||
<aside class="col-3 me-2">
|
<aside class="col-3 me-2">
|
||||||
<field name="rating_stars_filled" invisible="1"/>
|
<field name="rating_stars_filled" invisible="1"/>
|
||||||
<field name="rating_stars_empty" invisible="1"/>
|
<field name="rating_stars_empty" invisible="1"/>
|
||||||
|
|||||||
0
views/rating_templates.xml
Normal file → Executable file
0
views/rating_templates.xml
Normal file → Executable file
Loading…
Reference in New Issue
Block a user