diff --git a/logs_collector/collector/forms.py b/logs_collector/collector/forms.py index e69de29..5a7d42c 100644 --- a/logs_collector/collector/forms.py +++ b/logs_collector/collector/forms.py @@ -0,0 +1,9 @@ +from django.forms import ModelForm + +from .models import Ticket + + +class TicketForm(ModelForm): + class Meta: + model = Ticket + fields = ['number', 'platform', 'resolved', 'note'] diff --git a/logs_collector/collector/templates/collector/includes/navigation.html b/logs_collector/collector/templates/collector/includes/navigation.html index d585a9d..3111eb4 100644 --- a/logs_collector/collector/templates/collector/includes/navigation.html +++ b/logs_collector/collector/templates/collector/includes/navigation.html @@ -52,10 +52,18 @@ </li> {% endfor %} <li><hr class="dropdown-divider" /></li> - <li><a class="dropdown-item" href="{% url 'collector:tickets' %}"><i class="bi bi-funnel"></i> Reset filter</a></li> + <li> + <a class="dropdown-item" href="{% url 'collector:tickets' %}"> + <i class="bi bi-funnel"></i> Reset filter + </a> + </li> </ul> </li> - <li class="nav-item"><a class="nav-link" aria-current="page" href="#"><i class="bi bi-pencil-square"></i> New</a></li> + <li class="nav-item"> + <a class="nav-link" aria-current="page" href="{% url 'collector:create' %}"> + <i class="bi bi-pencil-square"></i> New + </a> + </li> </ul> <!-- Search --> <ul class="navbar-nav flex-row flex-wrap me-md-auto"> diff --git a/logs_collector/collector/templates/collector/ticket_create.html b/logs_collector/collector/templates/collector/ticket_create.html new file mode 100644 index 0000000..d274bbb --- /dev/null +++ b/logs_collector/collector/templates/collector/ticket_create.html @@ -0,0 +1,16 @@ +{% extends 'collector/base.html' %} +{% load static %} +{% block title %}<title>Collector - create</title>{% endblock title %} +{% block main %} +<div class="container mt-3"> + <div class="row"> + <form action="{% url 'collector:create' %}" method="post"> + {% csrf_token %} + {{ form.as_p }} + <button type="submit" class="btn btn-success"> + Create + </button> + </form> + </div> +</div> +{% endblock main %} diff --git a/logs_collector/collector/templates/collector/delete_ticket.html b/logs_collector/collector/templates/collector/ticket_delete.html similarity index 82% rename from logs_collector/collector/templates/collector/delete_ticket.html rename to logs_collector/collector/templates/collector/ticket_delete.html index 5391216..96a67b3 100644 --- a/logs_collector/collector/templates/collector/delete_ticket.html +++ b/logs_collector/collector/templates/collector/ticket_delete.html @@ -4,7 +4,7 @@ {% include 'collector/includes/navbar.html' %} <div class="container mt-5"> <div class="row"> - <form method="post" action="{% url 'delete' ticket.number %}"> + <form method="post" action="{% url 'collector:delete' ticket.number %}"> {% csrf_token %} <button type="button" @@ -12,7 +12,7 @@ data-bs-dismiss="modal" >Cancel</button> <button - type="button" + type="submit" class="btn btn-danger btn-archive-eraser" data-bs-dismiss="modal" >Delete</button> diff --git a/logs_collector/collector/urls.py b/logs_collector/collector/urls.py index d675415..81b94aa 100644 --- a/logs_collector/collector/urls.py +++ b/logs_collector/collector/urls.py @@ -9,6 +9,13 @@ urlpatterns = [ # ▀▄▀▄▀ ██▄ █▄█ # -- -- -- -- -- + # CREATE: + path( + 'tickets/create/', + views.CreateTicket.as_view(), + name='create' + ), + # READ: path( '', diff --git a/logs_collector/collector/views.py b/logs_collector/collector/views.py index 2b3d7ba..3edcffc 100644 --- a/logs_collector/collector/views.py +++ b/logs_collector/collector/views.py @@ -8,7 +8,7 @@ from django.urls import reverse_lazy from rest_framework import status # from rest_framework.response import Response -from .models import Archive, Ticket, Platform +from .models import Archive, Ticket from .utils import is_ajax @@ -28,17 +28,22 @@ class ArchiveHandlerView(LoginRequiredMixin, SingleObjectMixin, generic.View): return JsonResponse({'file': path}, status=status.HTTP_200_OK) +class CreateTicket(LoginRequiredMixin, generic.CreateView): + model = Ticket + template_name = 'collector/ticket_create.html' + fields = ['number', 'platform', 'resolved', 'note'] + + def form_valid(self, form): + form.instance.user = self.request.user + return super().form_valid(form) + + class ListAllTickets(generic.ListView): model = Ticket template_name = 'collector/tickets.html' context_object_name = 'tickets' paginate_by = 5 - # 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 @@ -52,11 +57,6 @@ class ListPlatformTickets(generic.ListView): 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 @@ -65,15 +65,10 @@ class DetailTicket(generic.DetailView): slug_field = 'number' slug_url_kwarg = 'ticket' - def get_context_data(self, **kwargs): - context = super().get_context_data(**kwargs) - context['platforms'] = Platform.objects.all() - return context - class DeleteTicket(generic.DeleteView): model = Ticket - template_name = 'collector/delete_ticket.html' + template_name = 'collector/ticket_delete.html' context_object_name = 'ticket' slug_field = 'number' slug_url_kwarg = 'ticket'