mirror of https://gitlab.crans.org/bde/nk20
Create Apps/WEI
parent
d65685ff7e
commit
683ef43ddb
|
@ -0,0 +1,91 @@
|
||||||
|
# WEI
|
||||||
|
|
||||||
|
Cette application gère toute la phase d'inscription au WEI.
|
||||||
|
|
||||||
|
# Modèles
|
||||||
|
|
||||||
|
## WEIClub
|
||||||
|
|
||||||
|
Le modèle `WEIClub` hérite de `Club` et contient toutes les informations d'un WEI.
|
||||||
|
|
||||||
|
* `year` : `PositiveIntegerField` unique, année du WEI.
|
||||||
|
* `date_start` : `DateField`, date de début du WEI.
|
||||||
|
* `date_end` : `DateField`, date de fin du WEI.
|
||||||
|
|
||||||
|
Champs hérités de `Club` de l'application `member` :
|
||||||
|
|
||||||
|
* `parent_club` : `ForeignKey(Club)`. Ce champ baut toujours `Kfet` dans le cas d'un WEI : on doit être membre du club Kfet pour participer au WEI.
|
||||||
|
* `email` : `EmailField`, adresse e-mail sur laquelle contacter les gérants du WEI.
|
||||||
|
* `membership_start` : `DateField`, date à partir de laquelle il est possible de s'inscrire au WEI.
|
||||||
|
* `membership_end` : `DateField`, date de fin d'adhésion possible au WEI.
|
||||||
|
* `membership_duration` : `PositiveIntegerField`, inutilisé dans le cas d'un WEI, vaut `None`.
|
||||||
|
* `membership_fee_paid` : `PositiveIntegerField`, montant de la cotisation (en centimes) pour qu'un élève normalien (donc rémunéré) puisse adhérer.
|
||||||
|
* `membership_fee_unpaid` : `PositiveIntegerField`, montant de la cotisation (en centimes) pour qu'un étudiant normalien (donc non rémunéré) puisse adhérer.
|
||||||
|
* `name` : `CharField`, nom du WEI.
|
||||||
|
* `require_memberships` : `BooleanField`, vaut toujours `True`.
|
||||||
|
|
||||||
|
## Bus
|
||||||
|
|
||||||
|
Contient les informations sur un bus allant au WEI.
|
||||||
|
|
||||||
|
* `wei` : `ForeignKey(WEIClub)`, WEI auquel ce bus est rattaché.
|
||||||
|
* `name` : `CharField`, nom du bus. Le champ est unique pour le WEI attaché.
|
||||||
|
* `description` : `TextField`, description textuelle de l'ambiance du bus.
|
||||||
|
* `information_json` : `TextField`, diverses informations non publiques qui permettent d'indiquer divers paramètres pouvant varier selon les années permettant l'attribution des bus aux 1A.
|
||||||
|
|
||||||
|
Il est souhaitable de créer chaque année un bus "Staff" (non accessible aux 1A bien évidemment) pour les GC WEI qui ne monteraient pas dans un bus.
|
||||||
|
|
||||||
|
## BusTeam
|
||||||
|
|
||||||
|
Contient les informations d'une équipe WEI.
|
||||||
|
|
||||||
|
* `wei` : `ForeignKey(WEIClub)`, WEI auquel cette équipe est rattachée.
|
||||||
|
* `name` : `CharField`, nom de l'équipe.
|
||||||
|
* `color` : `PositiveIntegerField`, entier entre 0 et 16777215 = 0xFFFFFF représentant la couleur du T-Shirt. La donnée se rentre en hexadécimal via un sélecteur de couleur. Cette information est purement cosmétique et n'est utilisée nulle part.
|
||||||
|
* `description` : `TextField`, description de l'équipe.
|
||||||
|
|
||||||
|
## WEIRole
|
||||||
|
|
||||||
|
Ce modèle étend de `Role`, qui ne contient qu'un champ `name` (`CharField`), le nom du rôle. Ce modèle ne permet que de dissocier les rôles propres au WEI des rôles s'appliquant pour n'importe quel club.
|
||||||
|
|
||||||
|
## WEIRegistration
|
||||||
|
|
||||||
|
Inscription au WEI, contenant les informations avant validation. Ce modèle est créé dès lors que quelqu'un se pré-inscrit au WEI.
|
||||||
|
|
||||||
|
* `user` : `ForeignKey(User)`, utilisateur qui s'est pré-inscrit. Ce champ est unique avec `wei`.
|
||||||
|
* `wei` : `ForeignKey(WEIClub)`, le WEI auquel l'utilisateur s'est pré-inscrit. Ce champ est unique avec `user`.
|
||||||
|
* `soge_credit` : `BooleanField`, indique si l'utilisateur a déclaré vouloir ouvrir un compte à la Société générale.
|
||||||
|
* `caution_check` : `BooleanField`, indique si l'utilisateur (en 2ème année ou plus) a bien remis son chèque de caution auprès de la trésorerie.
|
||||||
|
* `birth_date` : `DateField`, date de naissance de l'utilisateur.
|
||||||
|
* `gender` : `CharField` parmi `male` (Homme), `female` (Femme), `non binary` (Non binaire), genre de la personne.
|
||||||
|
* `health_issues` : `TextField`, problèmes de santé déclarés par l'utilisateur.
|
||||||
|
* `emergency_contact_name` : `CharField`, nom du contact en cas d'urgence.
|
||||||
|
* `emergency_contact_phone` : `CharField`, numéro de téléphone du contact en cas d'urgence.
|
||||||
|
* `ml_events_registration` : `BooleanField`, déclare si l'utilisateur veut s'inscrire à la liste de diffusion des événements du BDE (1A uniquement)
|
||||||
|
* `ml_art_registration` : `BooleanField`, déclare si l'utilisateur veut s'inscrire à la liste de diffusion des actualités du BDA (1A uniquement)
|
||||||
|
* `ml_sport_registration` : `BooleanField`, déclare si l'utilisateur veut s'inscrire à la liste de diffusion des actualités du BDS (1A uniquement)
|
||||||
|
* `first_year` : `BooleanField`, indique si l'inscription est d'un 1A ou non. Non modifiable par n'importe qui.
|
||||||
|
* `information_json` : `TextField` non modifiable manuellement par n'importe qui stockant les informations du questionnaire d'inscription au WEI pour les 1A, et stocke les demandes faites par un 2A+ concerant bus, équipes et rôles. On utilise un `TextField` contenant des données au format JSON pour permettre de la modularité au fil des années, sans avoir à tout casser à chaque fois.
|
||||||
|
|
||||||
|
## WEIMembership
|
||||||
|
|
||||||
|
Ce modèle hérite de `Membership` et contient les informations d'une adhésion au WEI.
|
||||||
|
|
||||||
|
* `bus` : `ForeignKey(Bus)`, bus dans lequel se trouve l'utilisateur.
|
||||||
|
* `team` : `ForeignKey(BusTeam)` pouvant être nulle (pour les chefs de bus et électrons libres), équipe dans laquelle se trouve l'utilisateur.
|
||||||
|
* `registration` : `OneToOneField(WEIRegistration)`, informations de la pré-inscription.
|
||||||
|
|
||||||
|
Champs hérités du modèle `Membership` :
|
||||||
|
|
||||||
|
* `club` : `ForeignKey(Club)`, club lié à l'adhésion. Doit être un `WEIClub`.
|
||||||
|
* `user` : `ForeignKey(User)`, utilisateur adhéré.
|
||||||
|
* `date_start` : `DateField`, date de début d'adhésion.
|
||||||
|
* `date_end` : `DateField`, date de fin d'adhésion.
|
||||||
|
* `fee` : `PositiveIntegerField`, montant de la cotisation payée.
|
||||||
|
* `roles` : `ManyToManyField(Role)`, liste des rôles endossés par l'adhérent. Les rôles doivent être des `WEIRole`.
|
||||||
|
|
||||||
|
# Graphe des modèles
|
||||||
|
|
||||||
|
Pour une meilleure compréhension, le graphe des modèles de l'application `member` ont été ajoutés au schéma.
|
||||||
|
|
||||||
|
![wei_member.svg](uploads/b6fea18ff3d845687c5ac915ca0b95af/wei_member.svg)
|
Loading…
Reference in New Issue