logs-collector/logs_collector/collector/views.py

82 lines
2.3 KiB
Python
Raw Normal View History

# from django.shortcuts import render
2023-08-01 08:47:27 +02:00
from django.http import FileResponse, JsonResponse, Http404
2023-07-29 06:56:42 +02:00
from django.views import generic
2023-07-31 06:53:39 +02:00
from rest_framework import status
2023-08-01 08:47:27 +02:00
# from rest_framework.response import Response
2023-07-31 06:53:39 +02:00
2023-07-29 06:56:42 +02:00
from .models import Archive, Ticket, Platform
2023-07-25 08:29:17 +02:00
2023-07-31 06:53:39 +02:00
class ArchiveHandlerView(generic.View):
def get(self, request, path):
try:
file = Archive.objects.get(file=path)
except Archive.DoesNotExist:
return Http404
return FileResponse(file.file)
def delete(self, request, path):
try:
file = Archive.objects.get(file=path)
file.delete()
2023-08-01 08:47:27 +02:00
return JsonResponse(
{
'file': path,
'status': status.HTTP_200_OK
},
status=status.HTTP_200_OK
)
except Archive.DoesNotExist:
return JsonResponse(
{
'file': path,
'status': status.HTTP_204_NO_CONTENT
},
status=status.HTTP_204_NO_CONTENT
)
2023-07-31 06:53:39 +02:00
2023-07-29 06:56:42 +02:00
class ListAllTickets(generic.ListView):
model = Ticket
template_name = 'collector/tickets.html'
context_object_name = 'tickets'
2023-07-29 09:36:08 +02:00
paginate_by = 5
2023-07-29 06:56:42 +02:00
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['platforms'] = Platform.objects.all()
return context
class ListPlatformTickets(generic.ListView):
model = Ticket
template_name = 'collector/tickets.html'
context_object_name = 'tickets'
allow_empty = False
2023-07-29 09:36:08 +02:00
paginate_by = 5
2023-07-29 06:56:42 +02:00
def get_queryset(self):
return Ticket.objects.filter(
platform__name=self.kwargs.get('platform')
)
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['platforms'] = Platform.objects.all()
return context
class DetailTicket(generic.DetailView):
model = Ticket
template_name = 'collector/ticket.html'
context_object_name = 'ticket'
2023-07-29 06:56:42 +02:00
def get_object(self, queryset=None):
return Ticket.objects.get(number=self.kwargs.get('ticket'))
2023-07-29 06:56:42 +02:00
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['platforms'] = Platform.objects.all()
return context