|
|
|
from django.views.generic import TemplateView, DetailView
|
|
|
|
from django.utils.translation import ugettext as _
|
|
|
|
|
|
|
|
from common.permissions import PermissionsMixin, IsValidUser
|
|
|
|
from .models import Ticket
|
|
|
|
from . import mixins
|
|
|
|
|
|
|
|
|
|
|
|
class TicketListView(PermissionsMixin, TemplateView):
|
|
|
|
template_name = 'tickets/ticket_list.html'
|
|
|
|
permission_classes = (IsValidUser,)
|
|
|
|
|
|
|
|
def get_context_data(self, **kwargs):
|
|
|
|
assign = self.request.GET.get('assign', '0') == '1'
|
|
|
|
context = super().get_context_data(**kwargs)
|
|
|
|
assigned_open_count = Ticket.get_assigned_tickets(self.request.user)\
|
|
|
|
.filter(status=Ticket.STATUS_OPEN).count()
|
|
|
|
context.update({
|
|
|
|
'app': _("Tickets"),
|
|
|
|
'action': _("Ticket list"),
|
|
|
|
'assign': assign,
|
|
|
|
'assigned_open_count': assigned_open_count
|
|
|
|
})
|
|
|
|
return context
|
|
|
|
|
|
|
|
|
|
|
|
class TicketDetailView(PermissionsMixin, mixins.TicketMixin, DetailView):
|
|
|
|
template_name = 'tickets/ticket_detail.html'
|
|
|
|
permission_classes = (IsValidUser,)
|
|
|
|
queryset = Ticket.objects.all()
|
|
|
|
|
|
|
|
def get_context_data(self, **kwargs):
|
|
|
|
ticket = self.get_object()
|
|
|
|
has_action_perm = ticket.is_assignee(self.request.user)
|
|
|
|
context = super().get_context_data(**kwargs)
|
|
|
|
context.update({
|
|
|
|
'app': _("Tickets"),
|
|
|
|
'action': _("Ticket detail"),
|
|
|
|
'has_action_perm': has_action_perm,
|
|
|
|
})
|
|
|
|
return context
|