Code source de Affichage.views

"""
Gère toutes les vues correspondantes à l'affichage sur les écrans
"""

from django.http import HttpResponse
from django.shortcuts import render
from ApiServer.models import Screens
from django.core.handlers.wsgi import WSGIRequest

[docs]def affichageEcran(request: WSGIRequest) -> HttpResponse: """ Rédirige l'user à l'écran demandé via le paramètre name Args: request (WSGIRequest): Requête Django name (str): Paramètre passé à la requête, nom de code de l'écran voulu, si trouvé alors il renvoie l'écran, si non alors il renvoie l'écran ``base``, celui par défaut. Returns: HttpResponse: Ecran correspondant à la demande """ #Lien vers l'écran en cas d'erreurs path = "Affichage/base.html" context = {"description": "Base"} #Récupération du paramètre nom pour connaitre l'écran que l'on veut afficher screenName = request.GET.get("name", "") #Si screenName est bien renseigné if screenName: #Recherche dans la bdd s'il y a un écran qui correspond au paramètre donné screens = Screens.objects.all().filter(code_name = screenName) #S'il y a bien un écran qui correspond au paramètre if len(screens) > 0: #On récupère le nom du fichier associé à la page associé à l'écran s'il y en a un if screens[0].page: path = "Affichage/" + screens[0].page.filename context = {"description": screens[0].page.description} return render(request, path, context)