43 lines
1.1 KiB
Python
43 lines
1.1 KiB
Python
from django.contrib.auth.decorators import login_required
|
|
from django.contrib.auth.mixins import LoginRequiredMixin
|
|
from django.http import HttpResponseRedirect
|
|
from django.shortcuts import render
|
|
from django.views import generic
|
|
|
|
from .forms import IssueForm
|
|
from .models import Issue
|
|
|
|
|
|
class IndexView(LoginRequiredMixin, generic.ListView):
|
|
template_name = 'issues/index.html'
|
|
context_object_name = 'issue_list'
|
|
|
|
def get_queryset(self):
|
|
return Issue.objects.order_by('create_date')
|
|
|
|
|
|
class DetailView(LoginRequiredMixin, generic.DetailView):
|
|
model = Issue
|
|
template_name = 'issues/detail.html'
|
|
pk_url_kwarg = 'issue_id'
|
|
|
|
|
|
# class NewIssueForm(LoginRequiredMixin, generic.FormView):
|
|
# template_name = 'issues/new.html'
|
|
# form_class = IssueForm
|
|
# success_url =
|
|
|
|
@login_required
|
|
def new(request):
|
|
if request.method == 'POST':
|
|
form = IssueForm(request.POST)
|
|
if form.is_valid():
|
|
new_issue = form.save()
|
|
return HttpResponseRedirect('/issues/{}'.format(new_issue.id))
|
|
else:
|
|
form = IssueForm()
|
|
|
|
return render(request, 'issues/new.html', {
|
|
'form': form,
|
|
})
|