1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
|
# -*- coding: utf-8 -*-
# Part of Softhealer Technologies.
from odoo import models, fields, api
class ResCompany(models.Model):
_inherit = 'res.company'
category = fields.Boolean('Category')
sub_category = fields.Boolean('Sub Category')
customer_rating = fields.Boolean('Customer Rating')
auto_close_ticket = fields.Boolean('Auto Close Ticket')
close_days = fields.Integer('No of Days')
new_stage_id = fields.Many2one(
'helpdesk.stages', string="Draft/New Stage")
done_stage_id = fields.Many2one('helpdesk.stages', string="Resolved Stage")
cancel_stage_id = fields.Many2one('helpdesk.stages', string="Cancel Stage")
allocation_mail_template_id = fields.Many2one(
'mail.template', string='Ticket Allocation To User Mail Template')
reply_mail_template_id = fields.Many2one(
'mail.template', string='Ticket Reply Mail Template')
dashboard_filter = fields.Many2many(
'helpdesk.stages', 'rel_company_stage_counter', string="Dashbaord Filter", required=True)
dashboard_tables = fields.Many2many(
'helpdesk.stages', 'rel_company_stage_tables', string="Dashbaord Tables", required=True)
reopen_stage_id = fields.Many2one(
'helpdesk.stages', string="Re-Opened Stage")
close_stage_id = fields.Many2one('helpdesk.stages', string="Closed Stage")
sh_default_team_id = fields.Many2one(
'helpdesk.team', string="Default Team")
sh_default_user_id = fields.Many2one(
'res.users', string="Default Assign User")
sh_display_multi_user = fields.Boolean('Display Multi Users ?')
sh_configure_activate = fields.Boolean(
'Manage Products')
sh_display_ticket_reminder = fields.Boolean('Ticket Reminder ?')
sh_ticket_product_detail = fields.Boolean(
"Ticket Product details in Message?", default=True)
sh_signature = fields.Boolean("Signature?", default=True)
sh_display_in_chatter = fields.Boolean(
"Display in Chatter Message?", default=True)
sh_pdf_in_message = fields.Boolean(
"Send Report URL in Message?", default=True)
sh_ticket_url_in_message = fields.Boolean("Send Ticket URL in Message?", default=True)
sh_receive_email_seeing_ticket = fields.Boolean('Get email when customer view ticket ?')
sh_auto_add_customer_as_follower = fields.Boolean('Auto add customer as follower when create ticket ?',default=True)
class HelpdeskSettings(models.TransientModel):
_inherit = 'res.config.settings'
company_id = fields.Many2one('res.company', string='Company', required=True,
default=lambda self: self.env.company)
category = fields.Boolean(
string='Category', related='company_id.category', readonly=False)
sub_category = fields.Boolean(
string='Sub Category', related='company_id.sub_category', readonly=False)
customer_rating = fields.Boolean(
string='Customer Rating', related='company_id.customer_rating', readonly=False)
auto_close_ticket = fields.Boolean(
string='Auto Close Ticket', related='company_id.auto_close_ticket', readonly=False)
close_days = fields.Integer(
string='No of Days', related='company_id.close_days', readonly=False)
new_stage_id = fields.Many2one('helpdesk.stages', string="Draft/New Stage",
related='company_id.new_stage_id', readonly=False)
done_stage_id = fields.Many2one(
'helpdesk.stages', string="Resolved Stage", related='company_id.done_stage_id', readonly=False)
cancel_stage_id = fields.Many2one(
'helpdesk.stages', string="Cancel Stage", related='company_id.cancel_stage_id', readonly=False)
allocation_mail_template_id = fields.Many2one(
'mail.template', string='Ticket Allocation To User Mail Template', related='company_id.allocation_mail_template_id', readonly=False)
reply_mail_template_id = fields.Many2one(
'mail.template', string='Ticket Reply Mail Template', related='company_id.reply_mail_template_id', readonly=False)
dashboard_filter = fields.Many2many('helpdesk.stages', 'rel_company_stage_counter',
string="Dashbaord Filter", related="company_id.dashboard_filter", readonly=False, required=True)
dashboard_tables = fields.Many2many('helpdesk.stages', 'rel_company_stage_tables',
string="Dashbaord Tables", related="company_id.dashboard_tables", readonly=False, required=True)
reopen_stage_id = fields.Many2one(
'helpdesk.stages', string="Re-Opened Stage", readonly=False, related='company_id.reopen_stage_id')
close_stage_id = fields.Many2one(
'helpdesk.stages', string="Closed Stage", readonly=False, related='company_id.close_stage_id')
sh_default_team_id = fields.Many2one(
'helpdesk.team', string="Default Team", readonly=False, related='company_id.sh_default_team_id')
sh_default_user_id = fields.Many2one(
'res.users', string="Default Assign User", readonly=False, related='company_id.sh_default_user_id')
sh_display_multi_user = fields.Boolean(
'Display Multi Users ?', related='company_id.sh_display_multi_user', readonly=False)
sh_configure_activate = fields.Boolean(
'Manage Products', related='company_id.sh_configure_activate', readonly=False)
sh_display_ticket_reminder = fields.Boolean('Ticket Reminder ?',related='company_id.sh_display_ticket_reminder',readonly=False)
sh_ticket_product_detail = fields.Boolean(
"Ticket Product details in Message?",related='company_id.sh_ticket_product_detail',readonly=False)
sh_signature = fields.Boolean("Signature?",related='company_id.sh_signature',readonly=False)
sh_display_in_chatter = fields.Boolean(
"Display in Chatter Message?",related='company_id.sh_display_in_chatter',readonly=False)
sh_pdf_in_message = fields.Boolean(
"Send Report URL in Message?",related='company_id.sh_pdf_in_message',readonly=False)
sh_ticket_url_in_message = fields.Boolean("Send Ticket URL in Message?",related='company_id.sh_ticket_url_in_message',readonly=False)
sh_receive_email_seeing_ticket = fields.Boolean('Get email when customer view ticket ?',related='company_id.sh_receive_email_seeing_ticket',readonly=False)
sh_auto_add_customer_as_follower = fields.Boolean('Auto add customer as follower when create ticket ?',related='company_id.sh_auto_add_customer_as_follower',readonly=False)
@ api.onchange('sh_default_team_id')
def onchange_sh_default_team_id(self):
if self.sh_default_team_id:
domain = {}
domain = {'sh_default_user_id': [
('id', 'in', self.sh_default_team_id.team_members.ids)]}
return {'domain': domain}
|