2019-11-10 23:05:39 +01:00
from django . contrib . auth . decorators import login_required
from django . contrib . auth . mixins import LoginRequiredMixin
2019-06-03 00:14:40 +02:00
from django . http import HttpResponseRedirect
2019-06-03 17:57:25 +02:00
from django . shortcuts import render
from django . views import generic
2019-05-27 15:18:57 +02:00
2019-06-03 00:14:40 +02:00
from . forms import IssueForm
2019-05-27 15:18:57 +02:00
from . models import Issue
2019-03-20 22:14:36 +01:00
2019-03-20 23:35:33 +01:00
2019-11-10 23:05:39 +01:00
class IndexView ( LoginRequiredMixin , generic . ListView ) :
2019-06-03 17:57:25 +02:00
template_name = ' issues/index.html '
context_object_name = ' issue_list '
2019-05-27 15:18:57 +02:00
2019-06-03 17:57:25 +02:00
def get_queryset ( self ) :
return Issue . objects . order_by ( ' create_date ' )
2019-11-10 23:05:39 +01:00
class DetailView ( LoginRequiredMixin , generic . DetailView ) :
2019-06-03 17:57:25 +02:00
model = Issue
template_name = ' issues/detail.html '
pk_url_kwarg = ' issue_id '
2019-05-27 15:18:57 +02:00
2019-06-03 00:14:40 +02:00
2019-11-10 23:05:39 +01:00
# class NewIssueForm(LoginRequiredMixin, generic.FormView):
2019-06-03 17:57:25 +02:00
# template_name = 'issues/new.html'
# form_class = IssueForm
# success_url =
2019-06-03 00:14:40 +02:00
2019-11-10 23:05:39 +01:00
@login_required
2019-06-03 00:14:40 +02:00
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 ,
} )