antux18
8306e33db0
Amélioration de l'affichage ("1 heure" au lieu de "1 heures", par exemple). Amélioration du README. Diverses corrections des commentaires.
91 lines
2.2 KiB
Python
91 lines
2.2 KiB
Python
#!/usr/bin/env python3
|
|
# -*- coding: utf-8 -*-
|
|
"""
|
|
Created on Sat May 7 17:29:11 2022
|
|
|
|
@author: antoine
|
|
"""
|
|
|
|
################
|
|
### UniSquat ###
|
|
################
|
|
|
|
"""
|
|
Une application pour afficher les salles libres dans les différents
|
|
départements de l'Université de Strasbourg.
|
|
"""
|
|
|
|
### Définition des objets ###
|
|
|
|
# Modules
|
|
import random # Nécessaire pour la génération d'ID des salles
|
|
|
|
# Constantes
|
|
ID_CHARS = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" # Caractères disponibles pour la création d'ID
|
|
ID_LEN = 4 # Nombres de caractères composant l'ID
|
|
|
|
|
|
# Objets :
|
|
|
|
class Room :
|
|
"""
|
|
Structure des salles.
|
|
|
|
Attributes
|
|
----------
|
|
name : string
|
|
Le nom de la salle.
|
|
|
|
start : datetime.datetime
|
|
Salle occupée : heure de début de la prochaine période de disponibilité.
|
|
Salle libre : inutilisé (vaut la date du jour à 00:00).
|
|
|
|
end : datetime.datetime
|
|
Salle occupée : heure de fin de la prochaine période de disponibilité.
|
|
Salle libre : heure de fin de disponibilité.
|
|
|
|
is_free : bool
|
|
Indique si la salle est libre ('True') ou non ('False').
|
|
|
|
id : string
|
|
Identifiant 'unique' (avec un très faible risque de conflit) de la salle (généré à partir de son nom)
|
|
"""
|
|
def __init__(self, name, start, end, is_free) :
|
|
self.name = name
|
|
self.start = start
|
|
self.end = end
|
|
self.is_free = is_free
|
|
self.id = self.getId(name)
|
|
|
|
def getId(self,name):
|
|
random.seed(name)
|
|
id = ""
|
|
for i in range(ID_LEN) :
|
|
id += random.choice(ID_CHARS)
|
|
return id # A peu près une chance sur 15 millions d'être unique, je considère ça viable
|
|
|
|
|
|
class Dept :
|
|
"""
|
|
Classe des départements.
|
|
|
|
Attributes
|
|
----------
|
|
ident : int
|
|
Identifiant du département.
|
|
|
|
name : string
|
|
Nom du département.
|
|
|
|
link : string
|
|
Lien qui permet d'accéder au fichier iCal du département.
|
|
|
|
rooms : list
|
|
La liste des salles de ce département
|
|
"""
|
|
def __init__(self, ident, name, link, rooms) :
|
|
self.ident = ident
|
|
self.name = name
|
|
self.link = link
|
|
self.rooms = rooms
|