summaryrefslogtreecommitdiff
path: root/sh_helpdesk/models/helpdesk_team.py
blob: 437cd676c953e537a806d9c616a9a8dda9ddd276 (plain)
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
# -*- coding: utf-8 -*-
# Part of Softhealer Technologies.

from odoo import models, fields


class HelpdeskTeam(models.Model):
    _name = 'helpdesk.team'
    _description = 'Helpdesk Team'
    _rec_name = 'name'

    name = fields.Char('Name', required=True,translate=True)
    team_head = fields.Many2one('res.users', 'Team Head', required=True,domain=['|',('share','=',False),('sh_portal_user_access','!=',False)])
    team_members = fields.Many2many('res.users', string="Team Members",domain=['|',('share','=',False),('sh_portal_user_access','!=',False)])
    sh_resource_calendar_id = fields.Many2one('resource.calendar',string="Working Schedule",required=True,default=lambda self: self.env.company.resource_calendar_id)
    sla_count = fields.Integer(compute='_compute_helpdesk_sla')
    
    def _compute_helpdesk_sla(self):
        for record in self:
            record.sla_count = 0
            slas = self.env['helpdesk.ticket'].sudo().search(
            [('team_id', '=', self.id),('sh_sla_status_ids','!=',False)])
            record.sla_count = len(slas.ids)
    
    def action_view_sla(self):
        self.ensure_one()
        slas = self.env['helpdesk.ticket'].sudo().search(
            [('team_id', '=', self.id),('sh_sla_status_ids','!=',False)])
        action = self.env["ir.actions.actions"]._for_xml_id(
            "sh_helpdesk.helpdesk_ticket_action")
        if len(slas) > 1:
            action['domain'] = [('id', 'in', slas.ids)]
        elif len(slas) == 1:
            form_view = [
                (self.env.ref('sh_helpdesk.helpdesk_ticket_form_view').id, 'form')]
            if 'views' in action:
                action['views'] = form_view + \
                    [(state, view)
                     for state, view in action['views'] if view != 'form']
            else:
                action['views'] = form_view
            action['res_id'] = slas.id
        else:
            action = {'type': 'ir.actions.act_window_close'}
        return action