diff options
| author | stephanchrst <stephanchrst@gmail.com> | 2022-05-10 17:14:58 +0700 |
|---|---|---|
| committer | stephanchrst <stephanchrst@gmail.com> | 2022-05-10 17:14:58 +0700 |
| commit | 1ca3b3df3421961caec3b747a364071c80f5c7da (patch) | |
| tree | 6778a1f0f3f9b4c6e26d6d87ccde16e24da6c9d6 /sh_helpdesk/models/helpdesk_ticket_update_wizard.py | |
| parent | b57188be371d36d96caac4b8d65a40745c0e972c (diff) | |
initial commit
Diffstat (limited to 'sh_helpdesk/models/helpdesk_ticket_update_wizard.py')
| -rw-r--r-- | sh_helpdesk/models/helpdesk_ticket_update_wizard.py | 87 |
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 |
