-
-
Notifications
You must be signed in to change notification settings - Fork 335
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
51874a8
commit 7c67d0e
Showing
12 changed files
with
327 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
from . import models |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
{ | ||
'name': 'Helpdesk Management Rating', | ||
'summary': """ | ||
This module allows the customer to rate the assistance received | ||
on a ticket. | ||
""", | ||
'version': '11.0.1.0.0', | ||
'license': 'AGPL-3', | ||
'author': 'Domatix', | ||
'website': 'https://www.domatix.com', | ||
'category': 'Productivity', | ||
'depends': ['helpdesk_mgmt', 'rating'], | ||
'data': [ | ||
'data/helpdesk_data.xml', | ||
'views/helpdesk_ticket_menu.xml', | ||
'views/helpdesk_ticket_view.xml', | ||
'views/helpdesk_ticket_stage_view.xml', | ||
], | ||
'qweb': [], | ||
'demo': [], | ||
'test': [], | ||
'installable': True, | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,90 @@ | ||
<?xml version="1.0" encoding="UTF-8"?> | ||
<odoo> | ||
<data noupdate="1"> | ||
<record id="mt_ticket_rating" model="mail.message.subtype"> | ||
<field name="name">Ticket Rating</field> | ||
<field name="res_model">helpdesk.ticket</field> | ||
<field name="default" eval="True"/> | ||
<field name="description">Ratings</field> | ||
</record> | ||
|
||
<record id="rating_ticket_email_template" model="mail.template"> | ||
<field name="name">Helpdesk Ticket: Rating Request</field> | ||
<field name="model_id" ref="helpdesk_mgmt.model_helpdesk_ticket"/> | ||
<field name="email_from">${object.rating_get_rated_partner_id().email or '' | safe}</field> | ||
<field name="email_to">${object.rating_get_partner_id().email or '' | safe}</field> | ||
<field name="subject">Satisfaction Survey of the ticket ${object.number} - ${object.name}</field> | ||
<field name="partner_to">${object.rating_get_partner_id().id}</field> | ||
<field name="auto_delete" eval="True"/> | ||
<field name="body_html"><![CDATA[ | ||
% set access_token = object.rating_get_access_token() | ||
<div style="background:#F0F0F0;color:#515166;padding:10px 0px;font-family:Arial,Helvetica,sans-serif;font-size:14px;"> | ||
<table style="width:600px;margin:5px auto;"> | ||
<tbody> | ||
<tr><td> | ||
<a href="/"><img src="/web/binary/company_logo" style="vertical-align:baseline;max-width:100px;" /></a> | ||
</td><td style="text-align:right;vertical-align:middle;"> | ||
Satisfaction Survey | ||
</td></tr> | ||
</tbody> | ||
</table> | ||
<table style="width:600px;margin:0px auto;background:white;border:1px solid #e1e1e1;"> | ||
<tbody> | ||
<tr><td style="padding:15px 20px 10px 20px;"> | ||
<p>Hello,</p> | ||
<p>Please take a moment to rate our services related to the ticket "<strong>${object.number} - ${object.name}</strong>" | ||
assigned to <strong>${object.rating_get_rated_partner_id().name}</strong>.</p> | ||
<p>We appreciate your feedback. It helps us to improve continuously.</p> | ||
</td></tr> | ||
<tr><td style="padding:10px 20px"> | ||
<table summary="o_mail_notification" style="width:100%;border-top:1px solid #e1e1e1;"> | ||
<tr> | ||
<td style="text-align:center;"> | ||
<h2 style="font-weight:300;font-size:18px;"> | ||
Tell us how you feel about our service: | ||
</h2> | ||
<div style="text-color: #888888">(click on one of these smileys)</div> | ||
</td> | ||
</tr> | ||
<tr> | ||
<td style="padding:10px 10px;"> | ||
<table style="width:100%;text-align:center;"> | ||
<tr> | ||
<td> | ||
<a href="/rating/${access_token}/10"> | ||
<img alt="Satisfied" src="/rating/static/src/img/rating_10.png" title="Satisfied"/> | ||
</a> | ||
</td> | ||
<td> | ||
<a href="/rating/${access_token}/5"> | ||
<img alt="Not satisfied" src="/rating/static/src/img/rating_5.png" title="Not satisfied"/> | ||
</a> | ||
</td> | ||
<td> | ||
<a href="/rating/${access_token}/1"> | ||
<img alt="Highly Dissatisfied" src="/rating/static/src/img/rating_1.png" title="Highly Dissatisfied"/> | ||
</a> | ||
</td> | ||
</tr> | ||
</table> | ||
</td> | ||
</tr> | ||
</table> | ||
</td></tr> | ||
<tr><td style="padding:15px 20px 10px 20px;">${(object.user_id.signature or '')| safe}</td></tr> | ||
</tbody> | ||
</table> | ||
<table style="width:600px;margin:auto;text-align:center;font-size:12px;"> | ||
<tbody> | ||
<tr><td style="padding-top:10px;color:#afafaf;"> | ||
% if object.rating_status == 'stage_change': | ||
<p>This customer survey has been sent because your ticket has been moved to the stage <b>${object.stage_id.name}</b></p> | ||
% endif | ||
</td></tr> | ||
</tbody> | ||
</table> | ||
</div> | ||
]]></field> | ||
</record> | ||
</data> | ||
</odoo> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
from . import helpdesk_ticket | ||
from . import helpdesk_ticket_stage |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,70 @@ | ||
from openerp import models, api, fields, _ | ||
from odoo.tools.safe_eval import safe_eval | ||
|
||
|
||
class HelpdeskTicket(models.Model): | ||
_name = 'helpdesk.ticket' | ||
_inherit = ['helpdesk.ticket', 'rating.mixin'] | ||
|
||
positive_rate_percentage = fields.Integer( | ||
string='Positive Rates Percentage', | ||
compute="_compute_percentage", | ||
store=True, | ||
default=-1) | ||
|
||
rating_status = fields.Selection( | ||
[('stage_change', 'Rating when changing stage'), | ||
('no_rate', 'No rating')], | ||
string='Customer Rating', default="stage_change", require=True) | ||
|
||
@api.depends('rating_ids.rating') | ||
def _compute_percentage(self): | ||
for ticket in self: | ||
activity = ticket.rating_get_grades() | ||
ticket.positive_rate_percentage = activity['great'] * 100 / \ | ||
sum(activity.values()) if sum(activity.values()) else -1 | ||
|
||
@api.multi | ||
def write(self, vals): | ||
res = super(HelpdeskTicket, self).write(vals) | ||
if 'stage_id' in vals and vals.get('stage_id'): | ||
stage = self.env['helpdesk.ticket.stage'].search([('id', '=', vals.get('stage_id'))]) | ||
if(stage.rating_mail_template_id): | ||
self._send_ticket_rating_mail(force_send=False) | ||
return res | ||
|
||
def _send_ticket_rating_mail(self, force_send=False): | ||
# for ticket in self: | ||
if self.rating_status == 'stage_change': | ||
survey_template = self.stage_id.rating_mail_template_id | ||
if survey_template: | ||
self.rating_send_request(survey_template, | ||
lang=self.partner_id.lang, | ||
force_send=force_send) | ||
|
||
@api.multi | ||
def rating_apply(self, rate, token=None, feedback=None, subtype=None): | ||
return super(HelpdeskTicket, self).rating_apply(rate, token=token, feedback=feedback, subtype="helpdesk_mgmt_rating.mt_ticket_rating") | ||
|
||
def rating_get_partner_id(self): | ||
res = super(HelpdeskTicket, self).rating_get_partner_id() | ||
if not res and self.partner_id: | ||
return self.partner_id | ||
return res | ||
|
||
def rating_get_parent_model_name(self, vals): | ||
return 'helpdesk.ticket' | ||
|
||
def rating_get_ticket_id(self): | ||
return self.id | ||
|
||
@api.multi | ||
def action_view_ticket_rating(self): | ||
action = self.env['ir.actions.act_window'].for_xml_id( | ||
'helpdesk_mgmt_rating', 'helpdesk_ticket_rating_action') | ||
action['name'] = _('Ticket Rating') | ||
action_context = safe_eval(action['context']) \ | ||
if action['context'] else {} | ||
action_context.update(self._context) | ||
action_context.pop('group_by', None) | ||
return dict(action, context=action_context) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
from openerp import models, api, fields, _ | ||
|
||
|
||
class HelpdeskTicketStage(models.Model): | ||
_inherit = 'helpdesk.ticket.stage' | ||
|
||
rating_mail_template_id = fields.Many2one( | ||
'mail.template', | ||
string="Rating Email Template", | ||
domain=[('model', '=', 'helpdesk.ticket')], | ||
help="If set, an email will be sent to the customer " | ||
"with a rating survey when the ticket reaches this stage.") |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
To configure this module, you need to: | ||
#. Edit or create stages. | ||
#. Edit or create tickets. | ||
|
||
Stages | ||
~~~~~~ | ||
#. Go to *Helpdesk > Configuration > Stages* to edit or create new stages. | ||
#. Edit or create a new stage. | ||
#. Set the name for the stage. | ||
#. You can select the Email template for rating. | ||
|
||
Tickets | ||
~~~~~~~ | ||
#. Go to *Helpdesk > Ticket* to edit or create new tickets. | ||
#. Edit or create a new ticket. | ||
#. Set the name for the ticket. | ||
#. Select if the ticket should be qualified or not. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
* `Domatix <https://www.domatix.com>`_: | ||
|
||
* Samuel Calvo |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
This module adds the posibility to rate the assistance received through helpdesk tickets. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
<?xml version="1.0" encoding="UTF-8"?> | ||
<odoo> | ||
<data> | ||
<record id="all_helpdesk_ticket_rating_action" model="ir.actions.act_window"> | ||
<field name="name">Customer Rating</field> | ||
<field name="type">ir.actions.act_window</field> | ||
<field name="res_model">rating.rating</field> | ||
<field name="view_mode">kanban</field> | ||
<field name="view_type">form</field> | ||
<field name="domain">[('res_model', '=', 'helpdesk.ticket'), ('consumed', '=', True)]</field> | ||
<field name="help" type="html"> | ||
<p> | ||
There are no rated tickets at this moment. | ||
</p> | ||
</field> | ||
</record> | ||
|
||
<record id="helpdesk_ticket_rating_action" model="ir.actions.act_window"> | ||
<field name="name"></field> | ||
<field name="type">ir.actions.act_window</field> | ||
<field name="res_model">rating.rating</field> | ||
<field name="view_mode">kanban</field> | ||
<field name="view_type">form</field> | ||
<field name="domain">[('consumed','=',True), ('res_model','=','helpdesk.ticket'), ('res_id', '=', active_id)]</field> | ||
<field name="help" type="html"> | ||
<p> | ||
There are no ratings for this ticket at the moment. | ||
</p> | ||
</field> | ||
</record> | ||
|
||
<menuitem id="helpdesk_ticket_rating_menu" name="Customer Rating" parent="helpdesk_mgmt.helpdesk_ticket_reporting_menu" | ||
action="all_helpdesk_ticket_rating_action" sequence="50"/> | ||
</data> | ||
</odoo> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
<?xml version="1.0" encoding="UTF-8"?> | ||
<odoo> | ||
<record id="view_helpdesk_ticket_stage_form_inherit" model="ir.ui.view"> | ||
<field name="name">view.helpdesk.ticket.stage.form.inherit</field> | ||
<field name="model">helpdesk.ticket.stage</field> | ||
<field name="inherit_id" ref="helpdesk_mgmt.view_helpdesk_ticket_stage_form"/> | ||
<field name="arch" type="xml"> | ||
<xpath expr="//field[@name='mail_template_id']" position="after"> | ||
<field name="rating_mail_template_id"/> | ||
</xpath> | ||
</field> | ||
</record> | ||
|
||
<record id="view_helpdesk_ticket_stage_tree_inherit" model="ir.ui.view"> | ||
<field name="name">view.helpdesk.ticket.stage.tree.inherit</field> | ||
<field name="model">helpdesk.ticket.stage</field> | ||
<field name="inherit_id" ref="helpdesk_mgmt.view_helpdesk_ticket_stage_tree"/> | ||
<field name="arch" type="xml"> | ||
<xpath expr="//field[@name='mail_template_id']" position="after"> | ||
<field name="rating_mail_template_id"/> | ||
</xpath> | ||
</field> | ||
</record> | ||
</odoo> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
<?xml version="1.0" encoding="UTF-8"?> | ||
<odoo> | ||
<record id="view_helpdesk_ticket_kanban_inherit" model="ir.ui.view"> | ||
<field name="name">view.helpdesk.ticket.kanban.inherit</field> | ||
<field name="model">helpdesk.ticket</field> | ||
<field name="inherit_id" ref="helpdesk_mgmt.view_helpdesk_ticket_kanban"/> | ||
<field name="arch" type="xml"> | ||
<xpath expr="//div[hasclass('oe_kanban_bottom_left')]" position="inside"> | ||
<field name="positive_rate_percentage" invisible="1"/> | ||
<b> | ||
<t t-if="record.positive_rate_percentage.value == -1"> | ||
<i class="fa fa-smile-o"/> No rating yet | ||
</t> | ||
<t t-if="record.positive_rate_percentage.value != -1"> | ||
<a name="action_view_ticket_rating" type="object"> | ||
<i class="fa fa-smile-o"/> <t t-esc="record.positive_rate_percentage.value"/>% | ||
</a> | ||
</t> | ||
</b> | ||
</xpath> | ||
<xpath expr="//ul[hasclass('dropdown-menu')]/li[2]" position="after"> | ||
<li><a name="action_view_ticket_rating" type="object">Customer Rating</a></li> | ||
</xpath> | ||
</field> | ||
</record> | ||
|
||
<record id="ticket_view_form_inherit" model="ir.ui.view"> | ||
<field name="name">ticket.view.form.inherit</field> | ||
<field name="model">helpdesk.ticket</field> | ||
<field name="inherit_id" ref="helpdesk_mgmt.ticket_view_form"/> | ||
<field name="arch" type="xml"> | ||
<xpath expr="//div[hasclass('oe_title')]" position="before"> | ||
<field name="positive_rate_percentage" invisible="1"/> | ||
<div class="oe_button_box" name="button_box"> | ||
<button name="action_view_ticket_rating" type="object" class="oe_stat_button" icon="fa fa-smile-o" | ||
attrs="{'invisible': [('positive_rate_percentage', '=', -1)]}"> | ||
<field name="rating_count" widget="statinfo" string="Ratings"/> | ||
</button> | ||
</div> | ||
</xpath> | ||
<xpath expr="//group[@name='main']/group[2]" position="after"> | ||
<group> | ||
<field name="rating_status" widget="radio"/> | ||
</group> | ||
</xpath> | ||
</field> | ||
</record> | ||
|
||
</odoo> |