Formatage du code selon PEP-8

This commit is contained in:
Hugo Roussille 2017-03-31 02:51:58 +02:00
parent a8428f1b41
commit c4a3c1a92a

View file

@ -5,11 +5,10 @@ import hashlib
import time import time
import json import json
from datetime import timedelta from datetime import timedelta
from more_itertools import unique_everseen
from custommail.shortcuts import ( from custommail.shortcuts import (
send_mass_custom_mail, send_custom_mail, render_custom_mail send_mass_custom_mail, send_custom_mail, render_custom_mail
) )
from more_itertools import unique_everseen
from django.shortcuts import render, get_object_or_404 from django.shortcuts import render, get_object_or_404
from django.contrib.auth.decorators import login_required from django.contrib.auth.decorators import login_required
from django.contrib import messages from django.contrib import messages
@ -17,7 +16,8 @@ from django.db import models, transaction
from django.core import serializers from django.core import serializers
from django.db.models import Count, Q, Sum from django.db.models import Count, Q, Sum
from django.forms.models import inlineformset_factory from django.forms.models import inlineformset_factory
from django.http import HttpResponseBadRequest, HttpResponseRedirect, HttpResponse from django.http import HttpResponseBadRequest, HttpResponseRedirect,\
HttpResponse
from django.core.urlresolvers import reverse from django.core.urlresolvers import reverse
from django.conf import settings from django.conf import settings
from django.utils import timezone, formats from django.utils import timezone, formats
@ -642,7 +642,8 @@ def descriptions_spectacles(request, tirage_id):
"La variable GET 'location' doit contenir un entier") "La variable GET 'location' doit contenir un entier")
return render(request, 'descriptions.html', {'shows': shows_qs.all()}) return render(request, 'descriptions.html', {'shows': shows_qs.all()})
def catalogue(request,request_type):
def catalogue(request, request_type):
""" """
Vue destinée à communiquer avec un client AJAX, fournissant soit : Vue destinée à communiquer avec un client AJAX, fournissant soit :
- la liste des tirages - la liste des tirages
@ -650,23 +651,33 @@ def catalogue(request,request_type):
- les descriptions d'un tirage (filtrées selon la catégorie et la salle) - les descriptions d'un tirage (filtrées selon la catégorie et la salle)
""" """
if request_type == "list": if request_type == "list":
# Dans ce cas on retourne la liste des tirages et de leur id sous forme de JSON # Dans ce cas on retourne la liste des tirages et de leur id en JSON
data_return = [{'id':tirage.id, 'title':tirage.title} for tirage in Tirage.objects.filter(appear_catalogue = True).all()] data_return = [
{'id': tirage.id, 'title': tirage.title}
for tirage in Tirage.objects.filter(appear_catalogue=True).all()
]
return HttpResponse(json.dumps(data_return)) return HttpResponse(json.dumps(data_return))
if request_type == "details": if request_type == "details":
# Dans ce cas on retourne une liste des catégories et des salles du tirage # Dans ce cas on retourne une liste des catégories et des salles
try : try:
tirage_id = request.GET.get('id', '') tirage_id = request.GET.get('id', '')
tirage = get_object_or_404(Tirage, id=tirage_id) tirage = get_object_or_404(Tirage, id=tirage_id)
except: except:
return HttpResponseBadRequest() return HttpResponseBadRequest()
categories = list(unique_everseen([str(spectacle.category) for spectacle in tirage.spectacle_set.all()])) categories = list(unique_everseen([
str(spectacle.category)
for spectacle in tirage.spectacle_set.all()
]))
categories.remove('None') categories.remove('None')
locations = list(unique_everseen([str(spectacle.location) for spectacle in tirage.spectacle_set.all()])) locations = list(unique_everseen([
data_return = [{'categories':categories, 'locations':locations}] str(spectacle.location)
for spectacle in tirage.spectacle_set.all()
]))
data_return = [{'categories': categories, 'locations': locations}]
return HttpResponse(json.dumps(data_return)) return HttpResponse(json.dumps(data_return))
if request_type == "descriptions": if request_type == "descriptions":
# Ici on retourne les descriptions correspondant à la catégorie et à la salle spécifiées # Ici on retourne les descriptions correspondant à la catégorie et
# à la salle spécifiées
locations = {} locations = {}
for salle in Salle.objects.all(): for salle in Salle.objects.all():
locations[salle.name] = salle.id locations[salle.name] = salle.id
@ -680,20 +691,48 @@ def catalogue(request,request_type):
if category_name: if category_name:
shows_qs = shows_qs.filter(category__name=category_name) shows_qs = shows_qs.filter(category__name=category_name)
if location_name: if location_name:
shows_qs = shows_qs.filter(location__id=locations[location_name]) shows_qs = shows_qs.filter(
location__id=locations[location_name])
except: except:
return HttpResponseBadRequest("Impossible de trouver des résultats correspondant à ces caractéristiques") return HttpResponseBadRequest(
"Impossible de trouver des résultats correspondant \
à ces caractéristiques")
def getImgUrl(obj): def getImgUrl(obj):
""" Cette fonction permet de gérer les cas où il n'y a pas d'image """ """
Cette fonction permet de gérer les cas il n'y a pas d'image
"""
try: try:
return obj.image.url return obj.image.url
except: except:
return '' return ''
specquotes = lambda spectacle: [{'author': str(quote.author), 'text': str(quote.text)} for quote in Quote.objects.filter(spectacle = spectacle).all()] def specquotes(spectacle): [
{'author': str(quote.author), 'text': str(quote.text)}
for quote in Quote.objects.filter(spectacle = spectacle).all()
]
# On convertit les descriptions à envoyer en une liste facilement JSONifiable (il devrait y avoir un moyen plus efficace en redéfinissant le serializer de JSON) # On convertit les descriptions à envoyer en une liste facilement
data_return = [{'title': spectacle.title, 'category': str(spectacle.category), 'date': str(formats.date_format(timezone.localtime(spectacle.date), "SHORT_DATETIME_FORMAT")), 'location': str(spectacle.location), 'vips': spectacle.vips, 'description': spectacle.description, 'slots_description': spectacle.slots_description, 'quotes': specquotes(spectacle),'image': getImgUrl(spectacle), 'ext_link': spectacle.ext_link, 'price': spectacle.price, 'slots': spectacle.slots} for spectacle in shows_qs.all()] # JSONifiable (il devrait y avoir un moyen plus efficace en
# redéfinissant le serializer de JSON)
data_return = [{
'title': spectacle.title,
'category': str(spectacle.category),
'date': str(formats.date_format(
timezone.localtime(spectacle.date),
"SHORT_DATETIME_FORMAT")),
'location': str(spectacle.location),
'vips': spectacle.vips,
'description': spectacle.description,
'slots_description': spectacle.slots_description,
'quotes': specquotes(spectacle),
'image': getImgUrl(spectacle),
'ext_link': spectacle.ext_link,
'price': spectacle.price,
'slots': spectacle.slots
}
for spectacle in shows_qs.all()
]
return HttpResponse(json.dumps(data_return)) return HttpResponse(json.dumps(data_return))
return HttpResponseBadRequest() # Si la requête n'est pas de la forme attendue, on quitte avec une erreur # Si la requête n'est pas de la forme attendue, on quitte avec une erreur
return HttpResponseBadRequest()