Code source de votes.views

"""
Gère toutes les vues nécessaires pour le serveur Sondage
"""

from django.core.handlers.wsgi import WSGIRequest
from django.shortcuts import render, redirect
import requests
import json

from django.http import HttpResponse, HttpResponseRedirect

# Create your views here.

[docs]def successVote(request: WSGIRequest) -> HttpResponse: """ Renvoie la page de succès Args: request (WSGIRequest): Requête Django Returns: HttpResponse: Page de succès """ return render(request, "success.html")
[docs]def surveyExpired(request: WSGIRequest) -> HttpResponse: """ Renvoie la page d'aucune sondage en cours Args: request (WSGIRequest): Requête Django Returns: HttpResponse: Page aucun sondage """ return render(request, "expired.html")
[docs]def alreadyVoted(request: WSGIRequest) -> HttpResponse: """ Renvoie la page du déjà voté Args: request (WSGIRequest): Requête Django Returns: HttpResponse: Page déjà voté """ return render(request, "already.html")
[docs]def missingInfo(request: WSGIRequest) -> HttpResponse: """ Page d'erreur infos manquantes Args: request (WSGIRequest): Requête Django Returns: HttpResponse: Page infos manquantes """ return render(request, "missing.html")
[docs]def badId(request: WSGIRequest) -> HttpResponse: """ Page d'erreur mauvaise reponse id Args: request (WSGIRequest): Requête Django Returns: HttpResponse: Page mauvaise reponse """ return render(request, "bad.html")
[docs]def index(request: WSGIRequest) -> HttpResponse: """ Page initiale de vote Args: request (WSGIRequest): Requête Django Returns: HttpResponse: Page de vote """ url = requests.get('http://localhost:8000/api/sondages') data = json.loads(url.content) data = json.dumps(data) context = { "data" : data } return render(request, "index.html", context=context)
[docs]def postVote(request: WSGIRequest) -> HttpResponse: """ Gère l'envoie des votes au serveur :ref:`affichage dynamique <affichagedynamique>` Args: request (WSGIRequest): Requête Django Returns: HttpResponse: Page de statut du vote """ if request.method == "POST": username = request.POST.get("username") password = request.POST.get("password") vote = request.POST.get("vote") postVoteRequest = requests.request(method="get", url="http://localhost:8000/api/postVote?vote={}&username={}&password={}".format(vote, username, password)) if postVoteRequest.json()["code"] == 400: return HttpResponseRedirect("/missing") elif postVoteRequest.json()["code"] == 403: if postVoteRequest.json()["message"] == "Les identifiants sont invalides": return HttpResponseRedirect("/bad") elif postVoteRequest.json()["message"] == "A déjà voté": return HttpResponseRedirect("/already") elif postVoteRequest.json()["code"] == 404: return HttpResponseRedirect("/expired") elif postVoteRequest.json()["code"] == 200: return HttpResponseRedirect("/success") else: print(postVoteRequest.json()) else: return redirect("/")