Add: prototype create ticket view

This commit is contained in:
Stepan Zhukovsky 2023-08-05 15:43:48 +09:00
parent 06648a237a
commit 38f1cb14ae
6 changed files with 56 additions and 21 deletions

View File

@ -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']

View File

@ -52,10 +52,18 @@
</li> </li>
{% endfor %} {% endfor %}
<li><hr class="dropdown-divider" /></li> <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> </ul>
</li> </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> </ul>
<!-- Search --> <!-- Search -->
<ul class="navbar-nav flex-row flex-wrap me-md-auto"> <ul class="navbar-nav flex-row flex-wrap me-md-auto">

View File

@ -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 %}

View File

@ -4,7 +4,7 @@
{% include 'collector/includes/navbar.html' %} {% include 'collector/includes/navbar.html' %}
<div class="container mt-5"> <div class="container mt-5">
<div class="row"> <div class="row">
<form method="post" action="{% url 'delete' ticket.number %}"> <form method="post" action="{% url 'collector:delete' ticket.number %}">
{% csrf_token %} {% csrf_token %}
<button <button
type="button" type="button"
@ -12,7 +12,7 @@
data-bs-dismiss="modal" data-bs-dismiss="modal"
>Cancel</button> >Cancel</button>
<button <button
type="button" type="submit"
class="btn btn-danger btn-archive-eraser" class="btn btn-danger btn-archive-eraser"
data-bs-dismiss="modal" data-bs-dismiss="modal"
>Delete</button> >Delete</button>

View File

@ -9,6 +9,13 @@ urlpatterns = [
# ▀▄▀▄▀ ██▄ █▄█ # ▀▄▀▄▀ ██▄ █▄█
# -- -- -- -- -- # -- -- -- -- --
# CREATE:
path(
'tickets/create/',
views.CreateTicket.as_view(),
name='create'
),
# READ: # READ:
path( path(
'', '',

View File

@ -8,7 +8,7 @@ from django.urls import reverse_lazy
from rest_framework import status from rest_framework import status
# from rest_framework.response import Response # from rest_framework.response import Response
from .models import Archive, Ticket, Platform from .models import Archive, Ticket
from .utils import is_ajax from .utils import is_ajax
@ -28,17 +28,22 @@ class ArchiveHandlerView(LoginRequiredMixin, SingleObjectMixin, generic.View):
return JsonResponse({'file': path}, status=status.HTTP_200_OK) 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): class ListAllTickets(generic.ListView):
model = Ticket model = Ticket
template_name = 'collector/tickets.html' template_name = 'collector/tickets.html'
context_object_name = 'tickets' context_object_name = 'tickets'
paginate_by = 5 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): class ListPlatformTickets(generic.ListView):
model = Ticket model = Ticket
@ -52,11 +57,6 @@ class ListPlatformTickets(generic.ListView):
platform__name=self.kwargs.get('platform') 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): class DetailTicket(generic.DetailView):
model = Ticket model = Ticket
@ -65,15 +65,10 @@ class DetailTicket(generic.DetailView):
slug_field = 'number' slug_field = 'number'
slug_url_kwarg = 'ticket' 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): class DeleteTicket(generic.DeleteView):
model = Ticket model = Ticket
template_name = 'collector/delete_ticket.html' template_name = 'collector/ticket_delete.html'
context_object_name = 'ticket' context_object_name = 'ticket'
slug_field = 'number' slug_field = 'number'
slug_url_kwarg = 'ticket' slug_url_kwarg = 'ticket'