From 45eb384cfd6c096d53e4b9e94ee96e15fff15800 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20P=C3=A9pin?= Date: Sun, 5 Feb 2017 17:35:41 +0100 Subject: [PATCH] Use class-based views See #94 --- gestioncof/petits_cours_views.py | 21 ++++++++----------- .../details_demande_petit_cours.html | 14 ++++++------- gestioncof/urls.py | 14 ++++++------- 3 files changed, 22 insertions(+), 27 deletions(-) diff --git a/gestioncof/petits_cours_views.py b/gestioncof/petits_cours_views.py index ec32358d..3228ccd1 100644 --- a/gestioncof/petits_cours_views.py +++ b/gestioncof/petits_cours_views.py @@ -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 diff --git a/gestioncof/templates/details_demande_petit_cours.html b/gestioncof/templates/details_demande_petit_cours.html index b51c0dc0..1a0ed240 100644 --- a/gestioncof/templates/details_demande_petit_cours.html +++ b/gestioncof/templates/details_demande_petit_cours.html @@ -8,10 +8,10 @@ {% include "details_demande_petit_cours_infos.html" %}
- - {% if demande.traitee %} - - + + {% if object.traitee %} + + {% endif %}
Traitée
Traitée par {{ demande.traitee_par }}
Traitée le {{ demande.processed }}
Traitée
Traitée par {{ object.traitee_par }}
Traitée le {{ object.processed }}
Attributions
    @@ -23,15 +23,15 @@
- {% if demande.traitee %} + {% if object.traitee %}
-
+
{% else %}
-
+
diff --git a/gestioncof/urls.py b/gestioncof/urls.py index ad108005..9a562e7e 100644 --- a/gestioncof/urls.py +++ b/gestioncof/urls.py @@ -1,12 +1,9 @@ # -*- coding: utf-8 -*- -from __future__ import division -from __future__ import print_function -from __future__ import unicode_literals - from django.conf.urls import url -from gestioncof.petits_cours_views import DemandeListView +from gestioncof.petits_cours_views import DemandeListView, DemandeDetailView from gestioncof import views, petits_cours_views +from gestioncof.decorators import buro_required export_patterns = [ url(r'^members$', views.export_members), @@ -24,10 +21,11 @@ petitcours_patterns = [ name='petits-cours-demande'), url(r'^demande-raw$', petits_cours_views.demande_raw, name='petits-cours-demande-raw'), - url(r'^demandes$', DemandeListView.as_view(), + url(r'^demandes$', + buro_required(DemandeListView.as_view()), name='petits-cours-demandes-list'), - url(r'^demandes/(?P\d+)$', - petits_cours_views.details, + url(r'^demandes/(?P\d+)$', + buro_required(DemandeDetailView.as_view()), name='petits-cours-demande-details'), url(r'^demandes/(?P\d+)/traitement$', petits_cours_views.traitement,