Use class-based views

See #94
This commit is contained in:
Martin Pépin 2017-02-05 17:35:41 +01:00
parent 9aa4782d57
commit 45eb384cfd
3 changed files with 22 additions and 27 deletions

View file

@ -7,8 +7,7 @@ from django.shortcuts import render, get_object_or_404, redirect
from django.core import mail
from django.core.mail import EmailMessage
from django.contrib.auth.models import User
from django.views.generic import ListView
from django.utils.decorators import method_decorator
from django.views.generic import ListView, DetailView
from django.views.decorators.csrf import csrf_exempt
from django.template import loader
from django.conf import settings
@ -32,18 +31,16 @@ class DemandeListView(ListView):
def get_queryset(self):
return PetitCoursDemande.objects.order_by('traitee', '-id').all()
@method_decorator(buro_required)
def dispatch(self, *args, **kwargs):
return super(DemandeListView, self).dispatch(*args, **kwargs)
class DemandeDetailView(DetailView):
model = PetitCoursDemande
template_name = "details_demande_petit_cours.html"
@buro_required
def details(request, demande_id):
demande = get_object_or_404(PetitCoursDemande, id=demande_id)
attributions = PetitCoursAttribution.objects.filter(demande=demande).all()
return render(request, "details_demande_petit_cours.html",
{"demande": demande,
"attributions": attributions})
def get_context_data(self, **kwargs):
context = super(DemandeDetailView, self).get_context_data(**kwargs)
obj = context['object']
context['attributions'] = obj.petitcoursattribution_set.all()
return context
@buro_required