feat: add ticket solution closure loop

This commit is contained in:
hailin
2026-07-02 10:11:30 +08:00
parent 0ea4a3c853
commit a6df96ebb0
18 changed files with 435 additions and 68 deletions

View File

@@ -7,6 +7,7 @@ from apps.solutions.schemas import (
SolutionOut,
TicketSolutionLinkIn,
TicketSolutionLinkOut,
TicketSolutionOut,
)
from apps.tickets.models import Ticket
@@ -38,6 +39,25 @@ def list_solutions(request, status: str | None = None):
return queryset[:100]
@router.get("/tickets/{ticket_id}", response=list[TicketSolutionOut])
def list_ticket_solutions(request, ticket_id: int):
require_permission(request, "solution.view")
queryset = TicketSolutionLink.objects.select_related("solution", "ticket").filter(
ticket_id=ticket_id
)
return [
{
"id": link.id,
"ticket_id": link.ticket_id,
"solution_id": link.solution_id,
"link_type": link.link_type,
"solution": link.solution,
"created_at": link.created_at,
}
for link in queryset
]
@router.get("/{solution_id}", response=SolutionOut)
def get_solution(request, solution_id: int):
require_permission(request, "solution.view")