Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 1 addition & 24 deletions helpdesk_portal_restriction/controllers/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,34 +21,11 @@ def _get_teams(self):
else:
return False

def _get_category(self):
def _get_categories(self, **kw):
return (
http.request.env.user.partner_id.helpdesk_category_ids
if http.request.env.user.partner_id.helpdesk_category_ids
else http.request.env["helpdesk.ticket.category"].search(
[("active", "=", True)]
)
)

@http.route("/new/ticket", type="http", auth="user", website=True)
def create_new_ticket(self, **kw):
session_info = http.request.env["ir.http"].session_info()
email = http.request.env.user.email
name = http.request.env.user.name
company = request.env.company
return http.request.render(
"helpdesk_mgmt.portal_create_ticket",
{
"categories": self._get_category(),
"teams": self._get_teams(),
"email": email,
"name": name,
"ticket_team_id_required": (
company.helpdesk_mgmt_portal_team_id_required
),
"ticket_category_id_required": (
company.helpdesk_mgmt_portal_category_id_required
),
"max_upload_size": session_info["max_file_upload_size"],
},
)
1 change: 1 addition & 0 deletions helpdesk_portal_restriction/models/__init__.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
from . import helpdesk_ticket
from . import helpdesk_ticket_category
from . import helpdesk_ticket_team
from . import res_partner
20 changes: 20 additions & 0 deletions helpdesk_portal_restriction/models/helpdesk_ticket.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
from odoo import api, models
from odoo.osv.expression import AND


class HelpdeskTicket(models.Model):
_inherit = "helpdesk.ticket"

@api.model
def _search(self, domain, offset=0, limit=None, order=None):
if not self.env.su and self.env.user.has_group("base.group_portal"):
partner = self.env.user.partner_id.sudo()
if partner.helpdesk_team_ids:
domain = AND(
[domain, [("team_id", "in", partner.helpdesk_team_ids.ids)]]
)
if partner.helpdesk_category_ids:
domain = AND(
[domain, [("category_id", "in", partner.helpdesk_category_ids.ids)]]
)
return super()._search(domain, offset=offset, limit=limit, order=order)
1 change: 0 additions & 1 deletion helpdesk_portal_restriction/models/res_partner.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ class ResPartner(models.Model):
"helpdesk.ticket.team",
"helpdesk_partner_ids",
string="Available teams",
required=True,
)

helpdesk_category_ids = fields.Many2many(
Expand Down
Loading