Configuration
Le dossier conf
contient les fichiers de configuration du projet (voir settings.py
).
Le projet propose plusieurs variables de configuration.
Variable | Requis | Type | Description |
---|---|---|---|
CORE_MAX_FILES_CONCURRENTLY | Non | int |
Nombre maximum de files qu'un utilisateur peut avoir en cours. |
CORE_MAX_MATERIEL_RECUPERE_PER_MONTH | Non | int |
Nombre maximum de matériels récupérés par mois. |
CORE_MAX_MATERIEL_RECUPERE_PER_YEAR | Non | int |
Nombre maximum de matériels récupérés par an. |
CORE_PRIORITY_GROUPS | Non | dict[str, int] |
Dictionnaire des groupes de priorité. |
CORE_NOTIFY_EMAILS | Non | list[str] |
Liste des adresses email pour les notifications d'import. |
CORE_NOTIFY_MIN_AMOUNT | Non | int |
Nombre minimum d'objets pour envoyer une notification. |
CORE_KEEP_USER_DATA_DAYS | Non | int |
Nombre de jours à conserver les données utilisateur. |
CORE_MATERIEL_PEREMPTION_DAYS | Non | int |
Nombre de jours avant la péremption d'un matériel. |
CORE_RESERVATION_PEREMPTION_DAYS | Non | int |
Nombre de jours avant la péremption d'une réservation. |
Limites
CORE_MAX_[...]
Les limites sont vérifiées aux actions suivantes :
- réserver un matériel
- rejoindre une file
Si une limite est dépassée, une exception est levée. L'utilisateur est informé de la limite dépassée.
Bonnes pratiques
Il est préférable de définir des limites élevées pour éviter les abus plutôt que de ne pas définir de limites.
Priorités
CORE_PRIORITY_GROUPS
Le dictionnaire CORE_PRIORITY_GROUPS
permet de définir les groupes et leur priorité.
Il est utilisé pour déterminer l'ordre de traitement des files.
Il est composé de clés de type str
correspondant à un nom de groupe Django et de valeurs de type int
correspondant à la priorité du groupe.
Une priorité est un décalage absolu en jour (positif ou négatif).
Success
Si un groupe est défini dans CORE_PRIORITY_GROUPS
mais qu'il n'existe pas dans la base de données, il est ignoré.
Algorithme
Les priorités sont calculées en fonction de la date de création de l'objet à laquelle on ajoute la priorité retenue (voir ci-dessous) de l'utilisateur à la date de réservation.
La priorité retenue est celle permettant le plus grand avantage pour l'utilisateur.
Si
u4
appartient aux groupesg2
etg3
, on retient la priorité-1
(g2
).
Example
{
'g1': 0, # Priorité normale
'g2': -1, # Décalage de 1 jour avant, donc prioritaire
'g3': 1, # Décalage de 1 jour après, donc retardé
}
u1
(du groupe g1
) rejoint la file k
le 10/01/2024 10h00.
u2
(du groupe g2
) rejoint la file k
le 10/01/2024 10h00.
Virtuellement,
u1
rejoint la filek
le 09/01/2024 10h00.
u3
(du groupe g3
) rejoint la file k
le 10/01/2024 10h00.
Virtuellement,
u3
rejoint la filek
le 11/01/2024 10h00.
u2
est donc traité en premier (algorithme v24.5.9-beta).
Import
CORE_NOTIFY_EMAILS
La liste CORE_NOTIFY_EMAILS
contient les adresses email pour les notifications d'import.
Les notifications sont envoyées lorsqu'un import est effectué et que le nombre d'objets importés (avec succès) est supérieur ou égal à CORE_NOTIFY_MIN_AMOUNT
.
CORE_NOTIFY_MIN_AMOUNT
Le nombre minimum d'objets pour envoyer une notification est défini par CORE_NOTIFY_MIN_AMOUNT
.
Nettoyage
CORE_KEEP_USER_DATA_DAYS
Le nombre de jours à conserver les données utilisateur est défini par CORE_KEEP_USER_DATA_DAYS
.
Fonctionnement :
- suppression des attentes traitées ayant plus de
CORE_KEEP_USER_DATA_DAYS
jours (champdemande
) - suppression des réservations ayant plus de
CORE_KEEP_USER_DATA_DAYS
jours (champaffectation_fin
) - suppression des matériels récupérés il y a plus de
CORE_KEEP_USER_DATA_DAYS
jours (champaffectation_fin
) - suppression des propriétés orphelines
Attention
Les données sont définitivement supprimées.
Warning
CORE_KEEP_USER_DATA_DAYS
doit être supérieur à CORE_RESERVATION_PEREMPTION_DAYS
+ CORE_MAX_MATERIEL_RECUPERE_PER_YEAR
pour éviter la suppression de données encore utiles.
Si CORE_KEEP_USER_DATA_DAYS
est inférieur à CORE_MAX_MATERIEL_RECUPERE_PER_YEAR
, les utilisateurs pourront récupérer plus de matériels que prévu.
Si CORE_KEEP_USER_DATA_DAYS
est inférieur à CORE_RESERVATION_PEREMPTION_DAYS
, les réservations pourront être supprimées avant leur date limite de récupération.
Péremption
CORE_MATERIEL_PEREMPTION_DAYS
Le nombre de jours avant la péremption d'un matériel est défini par CORE_MATERIEL_PEREMPTION_DAYS
.
Par défaut, il est défini à 2 ans. Il doit être supérieur à 0.
CORE_RESERVATION_PEREMPTION_DAYS
Le nombre de jours avant la péremption d'une réservation est défini par CORE_RESERVATION_PEREMPTION_DAYS
.
Par défaut, il est défini à 15 jours. Il doit être supérieur à 0.