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

View file

@ -8,10 +8,10 @@
{% include "details_demande_petit_cours_infos.html" %} {% include "details_demande_petit_cours_infos.html" %}
<hr /> <hr />
<table class="table table-striped"> <table class="table table-striped">
<tr><td><strong>Traitée</strong></td><td> <img src="{% if demande.traitee %}{% static "images/yes.png" %}{% else %}{% static "images/no.png" %}{% endif %}" /></td></tr> <tr><td><strong>Traitée</strong></td><td> <img src="{% if object.traitee %}{% static "images/yes.png" %}{% else %}{% static "images/no.png" %}{% endif %}" /></td></tr>
{% if demande.traitee %} {% if object.traitee %}
<tr><td><strong>Traitée par</strong></td><td> {{ demande.traitee_par }}</td></tr> <tr><td><strong>Traitée par</strong></td><td> {{ object.traitee_par }}</td></tr>
<tr><td><strong>Traitée le</strong></td><td> {{ demande.processed }}</td></tr> <tr><td><strong>Traitée le</strong></td><td> {{ object.processed }}</td></tr>
<tr><td> <tr><td>
<strong>Attributions</strong></td><td> <strong>Attributions</strong></td><td>
<ul> <ul>
@ -23,15 +23,15 @@
</tr> </tr>
{% endif %} {% endif %}
</table> </table>
{% if demande.traitee %} {% if object.traitee %}
<div style="text-align: right;"> <div style="text-align: right;">
<form action="{% url "petits-cours-demande-retraitement" demande.id %}"> <form action="{% url "petits-cours-demande-retraitement" object.id %}">
<input class="btn btn-primary" type="submit" value="Retraiter"> <input class="btn btn-primary" type="submit" value="Retraiter">
</form> </form>
</div> </div>
{% else %} {% else %}
<div style="text-align: right;"> <div style="text-align: right;">
<form action="{% url "petits-cours-demande-traitement" demande.id %}"> <form action="{% url "petits-cours-demande-traitement" object.id %}">
<input class="btn btn-primary" type="submit" value="Traiter"> <input class="btn btn-primary" type="submit" value="Traiter">
</form> </form>
</div> </div>

View file

@ -1,12 +1,9 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
from __future__ import division
from __future__ import print_function
from __future__ import unicode_literals
from django.conf.urls import url 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 import views, petits_cours_views
from gestioncof.decorators import buro_required
export_patterns = [ export_patterns = [
url(r'^members$', views.export_members), url(r'^members$', views.export_members),
@ -24,10 +21,11 @@ petitcours_patterns = [
name='petits-cours-demande'), name='petits-cours-demande'),
url(r'^demande-raw$', petits_cours_views.demande_raw, url(r'^demande-raw$', petits_cours_views.demande_raw,
name='petits-cours-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'), name='petits-cours-demandes-list'),
url(r'^demandes/(?P<demande_id>\d+)$', url(r'^demandes/(?P<pk>\d+)$',
petits_cours_views.details, buro_required(DemandeDetailView.as_view()),
name='petits-cours-demande-details'), name='petits-cours-demande-details'),
url(r'^demandes/(?P<demande_id>\d+)/traitement$', url(r'^demandes/(?P<demande_id>\d+)/traitement$',
petits_cours_views.traitement, petits_cours_views.traitement,