Compare commits

...

6 Commits

6 changed files with 43 additions and 9 deletions

View File

@ -1,6 +1,7 @@
# UniSquat
Application pour trouver rapidement les salles disponibles dans l'Université de Strasbourg.
C'est utile aux élèves qui cherchent un coin pour travailler ou manger, comme aux enseignants en détresse à cause d'un changement de salle imprévu.
Cette application dispose d'une interface Web fonctionnant avec Flask ( [voir la demo][homepage] ).

17
app.py
View File

@ -170,6 +170,15 @@ def free_rooms() :
# Récupération de la liste des départements :
dept_filen = "data/dept_list.txt"
dept_list = ro.get_depts(dept_filen)
# Vérifie qu'il n'y a pas de mauvais départements demandés
for d in dident_list:
try:
int(d)
except:
return render_template("error.html",error="Identifiant de département invalide !", **GLOBAL_CONTEXT)
if int(d)<0 or int(d)>=len(dept_list):
return render_template("error.html",error="Identifiant de département invalide !", **GLOBAL_CONTEXT)
dident_list.sort()
# Récupération des départements choisis à partir des données du formulaire :
i = 0
@ -216,7 +225,13 @@ def free_rooms() :
if i<len(dident_list)-1:
change_date_str += "&"
i+=1
context = {"free_rooms":free_rooms, "frooms_disp":frooms_disp, "depts_str":depts_str, "dident_list":dident_list, "date_str":date_str, "change_date_str":change_date_str, "favs":len(favs_ids)>0}
# Générer le lien pour enlever les favoris séléctionnés
nofavslink = "/app/free-rooms?"
for dept in dident_list:
nofavslink+="dept="+str(dept)+"&"
nofavslink = nofavslink[:-1] # Enlever le dernier &
context = {"free_rooms":free_rooms, "frooms_disp":frooms_disp, "depts_str":depts_str, "dident_list":dident_list, "date_str":date_str, "change_date_str":change_date_str, "favs":len(favs_ids)>0,"nofavslink":nofavslink}
# Crée un log de la date et des départements demandés ( pour des futures statistiques )
log = {}

View File

@ -175,7 +175,7 @@ dt .details {
font-size: 80%;
}
input[type="submit"], button{
input[type="submit"], button, .button{
background: var(--bg-light);
border-style: solid;
border-width: 1px;
@ -184,9 +184,10 @@ input[type="submit"], button{
border-radius: 10px;
transition: background 0.1s;
color: var(--fg);
text-decoration: none;
}
input[type="submit"]:hover, button:hover {
input[type="submit"]:hover, button:hover, .button:hover {
background: var(--bg-dark);
color: var(--fg);
}

View File

@ -4,6 +4,7 @@
<div class="dropdown">
<button class="dropbtn">Menu</button>
<div class="dropdown-content">
<a href="/">À propos</a>
<a href="/app">Lancer</a>
<a href="/stats">Statistiques du site</a>
<a href="{{SOURCE}}">Code source</a>

View File

@ -9,14 +9,27 @@
<body>
{% include "base.html" %}
<main>
{% if favs: %}<p>Attention, tu as des favoris de précisé, les résultats sont donc filtrés et tu ne vois pas toute les salles !</p>{% endif %}
Départements sélectionnés :
<b>{{ depts_str }}</b>
{% if favs: %}
<div class="flex">
<p>Attention, tu as des favoris de précisé, les résultats sont donc filtrés et tu ne vois pas toute les salles !</p>
</div>
<div class="flex">
<a class="button" href="{{ nofavslink }}">Retirer</a>
</div>
{% endif %}
<div class="flex">
<p>
Départements sélectionnés : <br>
<b>{{ depts_str }}</b>
</p>
</div>
<div class="flex">
{% if date_str != "" : %}
<b>Le {{ date_str }}</b>
{% endif %}
</div>
<div class="flex">
<button onClick="location.href='/app/date-select{{change_date_str}}'">Choisir une date</button>
<a class="button" href='/app/date-select{{change_date_str}}'>Choisir une date</a>
</div>
<h1>Disponibles maintenant</h1>
<div class="flex-container">

View File

@ -11,10 +11,13 @@
<main>
<p id="greet">Bienvenue sur UniSquat !</p>
<div class="flex">
<button onClick="location.href='/app'">Démarrer</button>
<a href='/app' class="button">Démarrer</a>
</div>
<h2>Qu'est ce que c'est ?</h2>
<p>UniSquat est un outil permettant de connaître les salles actuellement libres à l'Université de Strasbourg. Sélectionnez vos départements, et les salles libres (ou prochainement libres) s'afficheront !</p>
<p>
UniSquat est un outil permettant de connaître les salles actuellement libres à l'Université de Strasbourg. Sélectionnez vos départements, et les salles libres (ou prochainement libres) s'afficheront !<br>
C'est utile aux élèves qui cherchent un coin pour travailler ou manger, comme aux enseignants en détresse à cause d'un changement de salle imprévu.
</p>
<h2>Comment ça marche ?</h2>
<p>L'Université de Strasbourg met à disposition l'emploi du temps des salles en ligne, et permet de télécharger ces emplois du temps sous la forme d'un fichier ICalendar. Notre outil télécharge les fichiers en lien avec le(s) département(s) sélectionné(s), les met en commun, et les analyse pour afficher les salles libres.</p>
<h2>Et c'est développé par qui ?</h2>