helpdesk_rating_five_stars/static/description/index.html
2025-11-26 10:39:26 +07:00

483 lines
18 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Helpdesk Rating Five Stars</title>
<style>
body {
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
line-height: 1.6;
max-width: 900px;
margin: 0 auto;
padding: 20px;
color: #333;
background-color: #f9f9f9;
}
.container {
background-color: white;
padding: 40px;
border-radius: 8px;
box-shadow: 0 2px 10px rgba(0,0,0,0.1);
}
h1 {
color: #875A7B;
border-bottom: 3px solid #875A7B;
padding-bottom: 15px;
margin-bottom: 20px;
font-size: 2.5em;
}
h2 {
color: #875A7B;
margin-top: 40px;
margin-bottom: 15px;
font-size: 1.8em;
border-left: 4px solid #875A7B;
padding-left: 15px;
}
h3 {
color: #666;
margin-top: 25px;
margin-bottom: 10px;
font-size: 1.3em;
}
.feature {
margin: 12px 0;
padding-left: 30px;
position: relative;
}
.feature:before {
content: "⭐";
position: absolute;
left: 0;
font-size: 1.2em;
}
.warning {
background-color: #fff3cd;
border-left: 4px solid #ffc107;
padding: 15px;
margin: 20px 0;
border-radius: 4px;
}
.info {
background-color: #d1ecf1;
border-left: 4px solid #17a2b8;
padding: 15px;
margin: 20px 0;
border-radius: 4px;
}
.success {
background-color: #d4edda;
border-left: 4px solid #28a745;
padding: 15px;
margin: 20px 0;
border-radius: 4px;
}
ol, ul {
margin: 15px 0;
padding-left: 30px;
}
li {
margin: 8px 0;
}
code {
background-color: #f4f4f4;
padding: 2px 6px;
border-radius: 3px;
font-family: 'Courier New', monospace;
color: #c7254e;
}
.code-block {
background-color: #f4f4f4;
padding: 15px;
border-radius: 5px;
border: 1px solid #ddd;
overflow-x: auto;
margin: 15px 0;
}
.screenshot {
max-width: 100%;
border: 1px solid #ddd;
border-radius: 5px;
margin: 15px 0;
}
table {
width: 100%;
border-collapse: collapse;
margin: 20px 0;
}
th, td {
border: 1px solid #ddd;
padding: 12px;
text-align: left;
}
th {
background-color: #875A7B;
color: white;
}
tr:nth-child(even) {
background-color: #f9f9f9;
}
.badge {
display: inline-block;
padding: 4px 8px;
border-radius: 3px;
font-size: 0.85em;
font-weight: bold;
margin-right: 5px;
}
.badge-version {
background-color: #875A7B;
color: white;
}
.badge-category {
background-color: #17a2b8;
color: white;
}
</style>
</head>
<body>
<div class="container">
<h1>⭐ Helpdesk Rating Five Stars</h1>
<p>
<span class="badge badge-version">Odoo 18</span>
<span class="badge badge-category">Helpdesk</span>
<span class="badge badge-category">Customer Satisfaction</span>
</p>
<p style="font-size: 1.1em; color: #666;">
Transform your customer feedback experience by replacing Odoo's standard
3-emoticon rating system with an intuitive 5-star rating system. Gain more
granular insights into customer satisfaction and improve your helpdesk service quality.
</p>
<h2>✨ Key Features</h2>
<div class="feature">5-star rating system (1-5 stars) replacing the standard 0-3 emoticon system</div>
<div class="feature">Interactive star rating widget with hover effects for web forms</div>
<div class="feature">Clickable star links in email rating requests for one-click feedback</div>
<div class="feature">Automatic migration of existing ratings from 0-3 to 0-5 scale</div>
<div class="feature">Enhanced rating reports and analytics with 0-5 scale calculations</div>
<div class="feature">Beautiful star display in backend ticket views (form, tree, kanban)</div>
<div class="feature">Responsive design optimized for mobile and desktop</div>
<div class="feature">Accessible UI with keyboard navigation and ARIA labels</div>
<div class="feature">Full compatibility with Odoo's rating API and other modules</div>
<div class="feature">Duplicate rating prevention with automatic update logic</div>
<h2>📋 Requirements</h2>
<ul>
<li><strong>Odoo Version:</strong> 18.0 or higher</li>
<li><strong>Required Modules:</strong> helpdesk, rating, mail, web</li>
<li><strong>Python Version:</strong> 3.10 or higher</li>
<li><strong>Database:</strong> PostgreSQL 12 or higher</li>
</ul>
<h2>🚀 Installation</h2>
<div class="warning">
<strong>⚠️ Important:</strong> Before installing, it's recommended to backup your database,
especially if you have existing rating data. The module will automatically migrate
existing ratings from the 0-3 scale to the 0-5 scale.
</div>
<h3>Step 1: Copy Module to Addons Directory</h3>
<p>Copy the <code>helpdesk_rating_five_stars</code> folder to your Odoo addons directory:</p>
<div class="code-block">
<code>cp -r helpdesk_rating_five_stars /path/to/odoo/addons/</code>
</div>
<p>Or if using custom addons directory:</p>
<div class="code-block">
<code>cp -r helpdesk_rating_five_stars /path/to/custom/addons/</code>
</div>
<h3>Step 2: Update Addons Path (if needed)</h3>
<p>Ensure your <code>odoo.conf</code> includes the addons directory:</p>
<div class="code-block">
<code>addons_path = /path/to/odoo/addons,/path/to/custom/addons</code>
</div>
<h3>Step 3: Restart Odoo Server</h3>
<p>Restart your Odoo server to load the new module:</p>
<div class="code-block">
<code>sudo systemctl restart odoo</code>
</div>
<p>Or if running manually:</p>
<div class="code-block">
<code>./odoo-bin -c /path/to/odoo.conf</code>
</div>
<h3>Step 4: Update Apps List</h3>
<ol>
<li>Log in to Odoo as an administrator</li>
<li>Go to <strong>Apps</strong> menu</li>
<li>Click the <strong>Update Apps List</strong> button</li>
<li>Click <strong>Update</strong> in the confirmation dialog</li>
</ol>
<h3>Step 5: Install the Module</h3>
<ol>
<li>In the Apps menu, remove the "Apps" filter to show all modules</li>
<li>Search for "Helpdesk Rating Five Stars"</li>
<li>Click the <strong>Install</strong> button</li>
<li>Wait for installation to complete (migration runs automatically)</li>
</ol>
<div class="success">
<strong>✅ Installation Complete!</strong> The module is now active and all existing
ratings have been migrated to the 0-5 scale.
</div>
<h2>⚙️ Configuration</h2>
<p>
The module works out of the box with zero configuration required. However, you can
customize certain aspects if needed:
</p>
<h3>Email Templates</h3>
<p>
To customize the rating request email template:
</p>
<ol>
<li>Go to <strong>Settings → Technical → Email → Templates</strong></li>
<li>Search for "Helpdesk Rating Request"</li>
<li>Edit the template to customize the email content and styling</li>
<li>The star links are automatically generated and should not be removed</li>
</ol>
<h3>Star Icon Customization</h3>
<p>
The module uses Unicode star characters (⭐) by default. To use custom icons:
</p>
<ol>
<li>Edit <code>static/src/scss/rating_stars.scss</code></li>
<li>Modify the star icon styles or replace with custom images</li>
<li>Restart Odoo and clear browser cache</li>
</ol>
<h3>Rating Migration Mapping</h3>
<p>
The default migration mapping converts old ratings as follows:
</p>
<table>
<thead>
<tr>
<th>Old Rating (0-3)</th>
<th>New Rating (0-5)</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>0</td>
<td>0</td>
<td>No rating / Not rated</td>
</tr>
<tr>
<td>1 (😞 Unhappy)</td>
<td>3 (⭐⭐⭐)</td>
<td>Neutral / Average</td>
</tr>
<tr>
<td>2 (😐 Okay)</td>
<td>4 (⭐⭐⭐⭐)</td>
<td>Good / Satisfied</td>
</tr>
<tr>
<td>3 (😊 Happy)</td>
<td>5 (⭐⭐⭐⭐⭐)</td>
<td>Excellent / Very Satisfied</td>
</tr>
</tbody>
</table>
<h2>📖 Usage Examples</h2>
<h3>Example 1: Customer Rating via Email</h3>
<ol>
<li>Customer receives a rating request email after ticket is closed</li>
<li>Email contains 5 clickable star links</li>
<li>Customer clicks on the 4th star to give a 4-star rating</li>
<li>System records the rating and redirects to a thank you page</li>
<li>Helpdesk agent sees 4 filled stars in the ticket view</li>
</ol>
<h3>Example 2: Customer Rating via Web Form</h3>
<ol>
<li>Customer clicks "Rate this ticket" link in email or portal</li>
<li>Web form displays 5 interactive stars</li>
<li>Customer hovers over stars to preview rating</li>
<li>Customer clicks on desired star to select rating</li>
<li>Customer submits the form</li>
<li>Rating is saved and displayed in backend views</li>
</ol>
<h3>Example 3: Viewing Rating Statistics</h3>
<ol>
<li>Helpdesk manager navigates to <strong>Helpdesk → Reporting → Ratings</strong></li>
<li>Dashboard shows average ratings calculated on 0-5 scale</li>
<li>Manager can filter by rating value (1-5 stars)</li>
<li>Manager can group ratings by team, agent, or time period</li>
<li>Export includes rating values in 0-5 range</li>
</ol>
<h3>Example 4: Viewing Ratings in Ticket Views</h3>
<p><strong>Form View:</strong></p>
<ul>
<li>Open any helpdesk ticket</li>
<li>Rating is displayed as filled stars in the rating section</li>
<li>Example: 3-star rating shows ⭐⭐⭐☆☆</li>
</ul>
<p><strong>List View:</strong></p>
<ul>
<li>Navigate to <strong>Helpdesk → Tickets</strong></li>
<li>Rating column shows compact star display</li>
<li>Sort and filter by rating value</li>
</ul>
<p><strong>Kanban View:</strong></p>
<ul>
<li>Switch to kanban view in tickets</li>
<li>Each ticket card shows star rating</li>
<li>Quick visual feedback on customer satisfaction</li>
</ul>
<h3>Example 5: Handling Duplicate Ratings</h3>
<ol>
<li>Customer rates a ticket with 3 stars</li>
<li>Customer changes their mind and clicks the rating link again</li>
<li>Customer selects 5 stars</li>
<li>System updates the existing rating to 5 stars (no duplicate created)</li>
<li>Confirmation message indicates rating was updated</li>
</ol>
<h2>🔧 Troubleshooting</h2>
<h3>Stars Not Displaying in Backend</h3>
<p><strong>Solution:</strong></p>
<ul>
<li>Clear browser cache and reload the page</li>
<li>Ensure the module is properly installed and activated</li>
<li>Check browser console for JavaScript errors</li>
<li>Verify that static files are being served correctly</li>
</ul>
<h3>Email Rating Links Not Working</h3>
<p><strong>Solution:</strong></p>
<ul>
<li>Verify that the rating token is valid and not expired</li>
<li>Check that the base URL is configured correctly in Odoo settings</li>
<li>Ensure the rating controller route is accessible</li>
<li>Check server logs for any errors</li>
</ul>
<h3>Migration Issues</h3>
<p><strong>Solution:</strong></p>
<ul>
<li>Check the Odoo server logs for migration errors</li>
<li>Verify database permissions for the Odoo user</li>
<li>If migration fails, uninstall the module, fix issues, and reinstall</li>
<li>Contact support if data integrity issues occur</li>
</ul>
<h3>Rating Values Outside 1-5 Range</h3>
<p><strong>Solution:</strong></p>
<ul>
<li>The module enforces validation constraints</li>
<li>Invalid values are rejected with error messages</li>
<li>Check for custom code that might bypass validation</li>
<li>Review database constraints are properly applied</li>
</ul>
<h2>🔒 Security & Access Control</h2>
<p>The module implements the following security measures:</p>
<ul>
<li><strong>Token-based authentication:</strong> Rating submissions require valid tokens</li>
<li><strong>Public access:</strong> Customers can submit ratings without logging in</li>
<li><strong>Restricted modification:</strong> Only authorized users can modify ratings in backend</li>
<li><strong>Audit logging:</strong> All rating changes are logged for accountability</li>
<li><strong>Input validation:</strong> All rating values are validated server-side</li>
<li><strong>SQL injection prevention:</strong> Uses Odoo ORM for all database operations</li>
</ul>
<h2>🌐 Accessibility Features</h2>
<p>The module is designed with accessibility in mind:</p>
<ul>
<li><strong>Keyboard navigation:</strong> Use arrow keys to navigate stars, Enter to select</li>
<li><strong>ARIA labels:</strong> Screen readers announce star ratings correctly</li>
<li><strong>Touch-friendly:</strong> Stars are sized appropriately for mobile devices</li>
<li><strong>High contrast:</strong> Star colors meet WCAG 2.1 AA standards</li>
<li><strong>Focus indicators:</strong> Clear visual feedback for keyboard users</li>
</ul>
<h2>🔄 Compatibility</h2>
<p>This module is compatible with:</p>
<ul>
<li>Odoo 18 Community and Enterprise editions</li>
<li>All standard Odoo modules that use the rating system</li>
<li>Custom modules that properly inherit from rating.rating</li>
<li>Multi-company configurations</li>
<li>Multi-language installations (translatable strings)</li>
</ul>
<div class="info">
<strong> Note:</strong> The module maintains full API compatibility with Odoo's
standard rating system, ensuring no breaking changes for other modules.
</div>
<h2>📊 Technical Details</h2>
<h3>Module Structure</h3>
<ul>
<li><strong>Models:</strong> Extends rating.rating and helpdesk.ticket</li>
<li><strong>Controllers:</strong> Custom rating submission controller</li>
<li><strong>Views:</strong> Enhanced backend views with star display</li>
<li><strong>Templates:</strong> Email and web form templates</li>
<li><strong>JavaScript:</strong> OWL-based star rating widget</li>
<li><strong>Styles:</strong> SCSS for star styling and responsive design</li>
</ul>
<h3>Database Changes</h3>
<ul>
<li>No new tables created</li>
<li>Modifies constraints on rating.rating.rating field</li>
<li>Adds computed fields for star display</li>
<li>Migration script updates existing rating values</li>
</ul>
<h2>🆘 Support</h2>
<p>For support and assistance:</p>
<ul>
<li>Contact your Odoo administrator for installation help</li>
<li>Review the module documentation in the <code>static/description/</code> directory</li>
<li>Check the Odoo server logs for error messages</li>
<li>Consult the module source code for technical details</li>
</ul>
<h2>📝 License</h2>
<p>
This module is licensed under LGPL-3. See the LICENSE file for details.
</p>
<h2>👥 Credits</h2>
<p>
Developed for Odoo 18 Helpdesk application enhancement.
</p>
<hr style="margin: 40px 0; border: none; border-top: 2px solid #875A7B;">
<p style="text-align: center; color: #666; font-size: 0.9em;">
<strong>Helpdesk Rating Five Stars</strong> | Version 1.0 | Odoo 18
</p>
</div>
</body>
</html>