summaryrefslogtreecommitdiff
path: root/sh_helpdesk/models/helpdesk_ticket_update_wizard.py
diff options
context:
space:
mode:
authorstephanchrst <stephanchrst@gmail.com>2022-05-10 17:14:58 +0700
committerstephanchrst <stephanchrst@gmail.com>2022-05-10 17:14:58 +0700
commit1ca3b3df3421961caec3b747a364071c80f5c7da (patch)
tree6778a1f0f3f9b4c6e26d6d87ccde16e24da6c9d6 /sh_helpdesk/models/helpdesk_ticket_update_wizard.py
parentb57188be371d36d96caac4b8d65a40745c0e972c (diff)
initial commit
Diffstat (limited to 'sh_helpdesk/models/helpdesk_ticket_update_wizard.py')
-rw-r--r--sh_helpdesk/models/helpdesk_ticket_update_wizard.py87
1 files changed, 87 insertions, 0 deletions
diff --git a/sh_helpdesk/models/helpdesk_ticket_update_wizard.py b/sh_helpdesk/models/helpdesk_ticket_update_wizard.py
new file mode 100644
index 0000000..5e9c342
--- /dev/null
+++ b/sh_helpdesk/models/helpdesk_ticket_update_wizard.py
@@ -0,0 +1,87 @@
+# -*- coding: utf-8 -*-
+# Part of Softhealer Technologies.
+from odoo import fields, models, _, api
+from odoo.exceptions import UserError
+
+
+class MassUpdateWizard(models.TransientModel):
+
+ _name = "sh.helpdesk.ticket.mass.update.wizard"
+ _description = "Mass Update Wizard"
+
+ helpdesks_ticket_ids = fields.Many2many(comodel_name='helpdesk.ticket')
+ check_assign_to = fields.Boolean(string='Asssign To', default=False)
+ assign_to = fields.Many2one(comodel_name='res.users',
+ string='Assign To',
+ domain=[('share', '=', False)])
+ check_sh_display_multi_user = fields.Boolean()
+ check_assign_to_multiuser = fields.Boolean(default=False,
+ string="Assign Multi User")
+ ticket_update_type = fields.Selection([
+ ('add', 'Add'),
+ ('replace', 'Replace'),
+ ],
+ default="add",
+ string="Ticket Type Update")
+ assign_to_multiuser = fields.Many2many('res.users',
+ string="Assign Multi Users",
+ domain=[('share', '=', False)])
+
+ check_helpdesks_state = fields.Boolean(default=False, string="Stage")
+ helpdesk_stages = fields.Many2one('helpdesk.stages', string="Stage")
+
+ check_add_remove = fields.Boolean(string="Add/Remove", default=False)
+ followers = fields.Many2many('res.partner', string="Followers")
+
+ ticket_follower_update_type = fields.Selection([
+ ('add', 'Add'),
+ ('remove', 'Remove'),
+ ],
+ default="add",
+ string="Ticket Type Update")
+
+ def update_record(self):
+
+ # <-- ASSIGN TO UPDATE -->
+
+ if self.check_assign_to == True:
+ self.helpdesks_ticket_ids.write({'user_id': self.assign_to.id})
+
+ # <-- ASSIGN MULTIUSER UPDATE -->
+
+ if self.check_assign_to_multiuser == True:
+
+ if self.ticket_update_type == 'add':
+ get_list = []
+ for rec in self.helpdesks_ticket_ids.sh_user_ids:
+ if rec:
+ get_list.append(rec.id)
+ for rec1 in self.assign_to_multiuser:
+ if rec1:
+ get_list.append(rec1.id)
+ self.helpdesks_ticket_ids.write(
+ {'sh_user_ids': [(6, 0, get_list)]})
+
+ if self.ticket_update_type == "replace":
+ self.helpdesks_ticket_ids.write(
+ {'sh_user_ids': [(6, 0, self.assign_to_multiuser.ids)]})
+
+ # <-- STATE UPDATE -->
+
+ if self.check_helpdesks_state == True:
+ for rec in self.helpdesks_ticket_ids:
+ if self.helpdesk_stages:
+ rec.stage_id = self.helpdesk_stages.id
+
+ # <-- ADD/REMOVE FOLLOWER UPDATE -->
+
+ for rec in self.helpdesks_ticket_ids:
+ ids_list = []
+ if self.ticket_follower_update_type == "add":
+ rec.message_subscribe(partner_ids=self.followers.ids)
+ if self.ticket_follower_update_type == "remove":
+ for follower in self.followers.ids:
+ if follower in rec.message_partner_ids.ids:
+ ids_list.append(follower)
+ final_list = ids_list
+ rec.message_unsubscribe(partner_ids=final_list) \ No newline at end of file