Compare commits

...

4 Commits

Author SHA1 Message Date
antux18 52f8945c2d Modification de l'affichage billboard :
- Suppression du caroussel et passage à un affichage sur page statique
- Changement de la taille du texte et des marges
- Changement de l'alignement
2024-03-31 19:17:26 +02:00
antux18 ac15771b37 Correction message d'erreur. 2024-03-31 17:55:49 +02:00
antux18 c77b166a9d Correction d'un bug qui empêchait de démarrer si le fichier des logs est invalide.
Commentaires.
2024-03-31 17:53:14 +02:00
antux18 b427f86d8b Correction d'une erreur qui empêchait de télécharger un calendrier pour un jour du mois qui n'existe pas pour le mois suivant.
Modification du message d'erreur.
2024-03-31 17:43:25 +02:00
4 changed files with 36 additions and 33 deletions

8
app.py
View File

@ -76,7 +76,11 @@ app = Flask(__name__)
logs = [] logs = []
if os.path.isfile(LOG_FILE): if os.path.isfile(LOG_FILE):
with open(LOG_FILE,"r") as f: with open(LOG_FILE,"r") as f:
logs = json.loads(f.read()) try:
logs = json.loads(f.read())
# On supprime le fichier s'il est invalide :
except json.decoder.JSONDecodeError:
os.remove(LOG_FILE)
# Fonctions : # Fonctions :
def save_logs(logs): def save_logs(logs):
@ -300,7 +304,7 @@ def free_rooms(api = False, rq = None) :
if GLOBAL_CONTEXT["DEBUG"] : if GLOBAL_CONTEXT["DEBUG"] :
print(errdetails) print(errdetails)
return render_template("error.html", return render_template("error.html",
error="Le serveur Unistra a rencontré une erreur ! Veuillez réessayer plus tard.") error="Désolé, une erreur est survenue. UniSquat ne peut pas continuer.")
# Création d'un dictionnaire avec les infos des salles : # Création d'un dictionnaire avec les infos des salles :
frooms_disp = dict() # Mise en forme des infos pour la page Web frooms_disp = dict() # Mise en forme des infos pour la page Web

View File

@ -245,16 +245,17 @@ def get_tot_rooms(datet, depts, ignore_list) :
margintime = 1 margintime = 1
# Récupération du calendrier de chaque département, # Récupération du calendrier de chaque département,
# sur une période de 'margintime' mois : # sur une période de 'margintime' mois.
# On choisit comme jour le 28, car tous les mois ont au moins 28 jours.
cals = list() # Liste des EDT des départements choisis cals = list() # Liste des EDT des départements choisis
for d in depts : for d in depts :
if datet.month < 12 : if datet.month < 12 :
result = sched_get(datet, d.link, result = sched_get(datet, d.link,
datet.replace(month = datet.month + margintime), datet.replace(day = 28, month = datet.month + margintime),
NO_CACHE) NO_CACHE)
else : else :
result = sched_get(datet, d.link, result = sched_get(datet, d.link,
datet.replace(month = 1, year = datet.year + 1), datet.replace(day = 28, month = 1, year = datet.year + 1),
NO_CACHE) NO_CACHE)
# # Utilisation du module 'ics' pour le tri du calendrier dans l'ordre # # Utilisation du module 'ics' pour le tri du calendrier dans l'ordre
# # chronologique : # # chronologique :

View File

@ -9,29 +9,30 @@ body {
background: var(--bg); background: var(--bg);
color: var(--fg); color: var(--fg);
font-family: "ubuntu", sans-serif; font-family: "ubuntu", sans-serif;
margin: 0px;
} }
h1, h2 { h1, h2 {
text-align: center; text-align: center;
font-size: 6vh; font-size: 5vh;
} }
h2 { h2 {
font-size: 5vh; font-size: 4vh;
font-weight: normal; font-weight: normal;
margin-bottom: 8vh; /* margin-bottom: 8vh; */
} }
.slider { overflow: hidden; /* .slider {
} overflow: hidden;
} */
.slide-track { .slide-track {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
gap: 3vw; justify-content: space-evenly;
animation: scroll 40s linear infinite; gap: 2vw;
width: 3000vh; /* Pas bô, mais on va faire avec en attendant... */ /* animation: scroll 40s linear infinite; */
/* width: 3000vh; Pas bô, mais on va faire avec en attendant... */
} }
.room { .room {
@ -42,26 +43,26 @@ h2 {
border-color: var(--bg-dark); border-color: var(--bg-dark);
border-radius: 3vw; border-radius: 3vw;
padding: 1vw; padding: 1vw;
height: 17vh; height: 10vh;
color: var(--bg); color: var(--bg);
font-size: 8vh; font-size: 5vh;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
justify-content: center; justify-content: center;
} }
@keyframes scroll { /* @keyframes scroll {
0% { transform: translateX(0); } 0% { transform: translateX(0); }
100% { transform: translateX(calc(-25vw * 7)); } 100% { transform: translateX(calc(-25vw * 7)); }
} } */
.details { .details {
margin: 1vh; margin: 1vh;
font-size: 6vh; font-size: 4vh;
} }
footer { footer {
margin-top: 8vh; margin-top: 5vh;
font-size: 3vh; font-size: 3vh;
text-align: center; text-align: center;
} }

View File

@ -13,19 +13,16 @@
<div class="slide-track"> <div class="slide-track">
{% if favs: %} {% if favs: %}
<!-- Afficher les favoris --> <!-- Afficher les favoris -->
<!-- Deux fois pour que l'animation boucle --> {% if favs_free_rooms|length > 0 : %}
{% for i in range(2) : %} {% for room in favs_free_rooms : %}
{% if favs_free_rooms|length > 0 : %} <div class="room">
{% for room in favs_free_rooms : %} <b>{{ room.name }}</b> {% if DEBUG :%}( {{ room.id }} ){% endif %}
<div class="room"> {% if not(room.noend) : %}
<b>{{ room.name }}</b> {% if DEBUG :%}( {{ room.id }} ){% endif %} <p class=details>Jusqu'à {{ frooms_disp[room.name]["end"] }}</p>
{% if not(room.noend) : %} {% endif %}
<p class=details>Jusqu'à {{ frooms_disp[room.name]["end"] }}</p> </div>
{% endif %} {% endfor %}
</div> {% endif %}
{% endfor %}
{% endif %}
{% endfor %}
{% else %} {% else %}
<!-- Si les favoris ne sont pas définis, afficher les salles classiques --> <!-- Si les favoris ne sont pas définis, afficher les salles classiques -->
{% for i in range(2):%} {% for i in range(2):%}