UniSquat_Python/objects.py
antux18 8306e33db0 Correction d'un bug qui faisait planter l'app lorsqu'on choisissait une date en décembre.
Amélioration de l'affichage ("1 heure" au lieu de "1 heures", par exemple).
Amélioration du README.
Diverses corrections des commentaires.
2022-06-17 19:12:29 +02:00

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