mirror of
https://gitlab.crans.org/bde/nk20
synced 2025-06-21 09:58:23 +02:00
De l'inclusif, partout
Signed-off-by: Emmy D'ANELLO <ynerant@crans.org>
This commit is contained in:
@ -23,10 +23,10 @@ Champs hérités de ``Club`` de l'application ``member`` :
|
||||
* ``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.
|
||||
* ``membership_fee_paid`` : ``PositiveIntegerField``, montant de la cotisation (en centimes) pour qu'un⋅e élève normalien⋅ne
|
||||
(donc rémunéré⋅e) puisse adhérer.
|
||||
* ``membership_fee_unpaid`` : ``PositiveIntegerField``, montant de la cotisation (en centimes) pour qu'un⋅e étudiant⋅e
|
||||
normalien⋅ne (donc non rémunéré⋅e) puisse adhérer.
|
||||
* ``name`` : ``CharField``, nom du WEI.
|
||||
* ``require_memberships`` : ``BooleanField``, vaut toujours ``True`` pour le WEI.
|
||||
|
||||
@ -65,27 +65,27 @@ que de dissocier les rôles propres au WEI des rôles s'appliquant pour n'import
|
||||
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.
|
||||
Inscription au WEI, contenant les informations avant validation. Ce modèle est créé dès lors que quelqu'un⋅e 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
|
||||
* ``user`` : ``ForeignKey(User)``, utilisateur⋅rice qui s'est pré-inscrit⋅e. Ce champ est unique avec ``wei``.
|
||||
* ``wei`` : ``ForeignKey(WEIClub)``, le WEI auquel l'utilisateur⋅rice s'est pré-inscrit⋅e. Ce champ est unique avec ``user``.
|
||||
* ``soge_credit`` : ``BooleanField``, indique si l'utilisateur⋅rice a déclaré vouloir ouvrir un compte à la Société générale.
|
||||
* ``caution_check`` : ``BooleanField``, indique si l'utilisateur⋅rice (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.
|
||||
* ``birth_date`` : ``DateField``, date de naissance de l'utilisateur⋅rice.
|
||||
* ``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.
|
||||
* ``health_issues`` : ``TextField``, problèmes de santé déclarés par l'utilisateur⋅rice.
|
||||
* ``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
|
||||
* ``ml_events_registration`` : ``BooleanField``, déclare si l'utilisateur⋅rice 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
|
||||
* ``ml_art_registration`` : ``BooleanField``, déclare si l'utilisateur⋅rice 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
|
||||
* ``ml_sport_registration`` : ``BooleanField``, déclare si l'utilisateur⋅rice 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.
|
||||
* ``first_year`` : ``BooleanField``, indique si l'inscription est d'un⋅e 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.
|
||||
questionnaire d'inscription au WEI pour les 1A, et stocke les demandes faites par un⋅e 2A+ concernant 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.
|
||||
|
||||
@ -94,19 +94,19 @@ 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.
|
||||
* ``bus`` : ``ForeignKey(Bus)``, bus dans lequel se trouve l'utilisateur⋅rice.
|
||||
* ``team`` : ``ForeignKey(BusTeam)`` pouvant être nulle (pour les chefs de bus et électrons libres), équipe dans laquelle
|
||||
se trouve l'utilisateur.
|
||||
se trouve l'utilisateur⋅rice.
|
||||
* ``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é.
|
||||
* ``user`` : ``ForeignKey(User)``, utilisateur⋅rice qui a 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``.
|
||||
* ``roles`` : ``ManyToManyField(Role)``, liste des rôles endossés par l'adhérent⋅e. Les rôles doivent être des ``WEIRole``.
|
||||
|
||||
Graphe des modèles
|
||||
~~~~~~~~~~~~~~~~~~
|
||||
@ -123,32 +123,32 @@ Fonctionnement
|
||||
Création d'un WEI
|
||||
~~~~~~~~~~~~~~~~~
|
||||
|
||||
Seul un respo info peut créer un WEI. Pour cela, se rendre dans l'onglet WEI, puis "Liste des WEI" et enfin
|
||||
"Créer un WEI". Diverses informations sont demandées, comme le nom du WEI, l'adresse mail de contact, l'année du WEI
|
||||
Seul un⋅e respo info peut créer un WEI. Pour cela, se rendre dans l'onglet WEI, puis « Liste des WEI » et enfin
|
||||
« Créer un WEI ». Diverses informations sont demandées, comme le nom du WEI, l'adresse mail de contact, l'année du WEI
|
||||
(doit être unique), les dates de début et de fin, et les dates pendant lesquelles les utilisateurs peuvent s'inscrire.
|
||||
|
||||
Don des droits à un GC WEI
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Le GC WEI peut gérer tout ce qui a un rapport avec le WEI. Il ne peut cependant pas créer le WEI, ce privilège est
|
||||
réservé au respo info. Pour avoir ses droits, le GC WEI doit s'inscrire au WEI avec le rôle GC WEI, et donc payer
|
||||
en premier sa cotisation. C'est donc au respo info de créer l'adhésion du GC WEI. Voir ci-dessous pour l'inscription au WEI.
|
||||
Læ GC WEI peut gérer tout ce qui a un rapport avec le WEI. Iel ne peut cependant pas créer le WEI, ce privilège est
|
||||
réservé aux respos info. Pour avoir ses droits, læ GC WEI doit s'inscrire au WEI avec le rôle GC WEI, et donc payer
|
||||
en premièr⋅e sa cotisation. C'est donc aux respos info de créer l'adhésion du GC WEI. Voir ci-dessous pour l'inscription au WEI.
|
||||
|
||||
S'inscrire au WEI
|
||||
~~~~~~~~~~~~~~~~~
|
||||
|
||||
N'importe quel utilisateur peut s'auto-inscrire au WEI, lorsque les dates d'adhésion le permettent. Ceux qui se sont
|
||||
déjà inscrits peuvent également inscrire un 1A. Seuls les GC WEI et les respo info peuvent inscrire un autre 2A+.
|
||||
N'importe quel⋅le utilisateur⋅rice peut s'auto-inscrire au WEI, lorsque les dates d'adhésion le permettent. Celleux qui se sont
|
||||
déjà inscrit⋅es peuvent également inscrire un⋅e 1A. Seul⋅es les GC WEI et les respos info peuvent inscrire un⋅e autre 2A+.
|
||||
|
||||
À tout moment, tant que le WEI n'est pas passé, l'inscription peut être modifiée, même après validation.
|
||||
|
||||
Inscription d'un 2A+
|
||||
^^^^^^^^^^^^^^^^^^^^
|
||||
Inscription d'un⋅e 2A+
|
||||
^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Comme indiqué, les 2A+ sont assez autonomes dans leur inscription au WEI. Ils remplissent le questionnaire et sont
|
||||
ensuite pré-inscrits. Le questionnaire se compose de plusieurs champs (voir WEIRegistration) :
|
||||
Comme indiqué, les 2A+ sont assez autonomes dans leur inscription au WEI. Iels remplissent le questionnaire et sont
|
||||
ensuite pré-inscrit⋅es. Le questionnaire se compose de plusieurs champs (voir WEIRegistration) :
|
||||
|
||||
* Est-ce que l'utilisateur a déclaré avoir ouvert un compte à la Société générale ? (Option disponible uniquemement
|
||||
* Est-ce que l'utilisateur⋅rice a déclaré avoir ouvert un compte à la Société générale ? (Option disponible uniquemement
|
||||
si cela n'a pas été fait une année avant)
|
||||
* Date de naissance
|
||||
* Genre (Homme/Femme/Non-binaire)
|
||||
@ -159,17 +159,17 @@ ensuite pré-inscrits. Le questionnaire se compose de plusieurs champs (voir WEI
|
||||
* Équipes préférées (choix multiple éventuellement vide, vide pour les chefs de bus/staff)
|
||||
* Rôles souhaités
|
||||
|
||||
Les trois derniers champs n'ont aucun caractère définitif et sont simplement là en suggestion pour le GC WEI qui
|
||||
Les trois derniers champs n'ont aucun caractère définitif et sont simplement là en suggestion pour læ GC WEI qui
|
||||
validera l'inscription. C'est utile si on hésite entre plusieurs bus.
|
||||
|
||||
L'inscription est ensuite créée, le GC WEI devra ensuite la valider (voir plus bas).
|
||||
|
||||
Inscription d'un 1A
|
||||
^^^^^^^^^^^^^^^^^^^
|
||||
Inscription d'un⋅e 1A
|
||||
^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
N'importe quelle personne déjà inscrite au WEI peut inscrire un 1A. Le formulaire 1A est assez peu différent du formulaire 2A+ :
|
||||
N'importe quelle personne déjà inscrite au WEI peut inscrire un⋅e 1A. Le formulaire 1A est assez peu différent du formulaire 2A+ :
|
||||
|
||||
* Est-ce que l'utilisateur a déclaré avoir ouvert un compte à la Société générale ?
|
||||
* Est-ce que l'utilisateur⋅rice a déclaré avoir ouvert un compte à la Société générale ?
|
||||
* Date de naissance
|
||||
* Genre (Homme/Femme/Non-binaire)
|
||||
* Problèmes de santé
|
||||
@ -179,10 +179,10 @@ N'importe quelle personne déjà inscrite au WEI peut inscrire un 1A. Le formula
|
||||
* S'inscrire à la ML BDA
|
||||
* S'inscrire à la ML BDS
|
||||
|
||||
Le 1A ne peut donc pas choisir de son bus et de son équipe, et peut s'inscrire aux listes de diffusion.
|
||||
Læ 1A ne peut donc pas choisir de son bus et de son équipe, et peut s'inscrire aux listes de diffusion.
|
||||
Il y a néanmoins une différence majeure : une fois le formulaire rempli, un questionnaire se lance.
|
||||
Ce questionnaire peut varier au fil des années (voir section Questionnaire), et contient divers formulaires de collecte
|
||||
de données qui serviront à déterminer quel est le meilleur bus pour ce nouvel utilisateur.
|
||||
de données qui serviront à déterminer quel est le meilleur bus pour ce⋅tte nouvelleau utilisateur⋅rice.
|
||||
|
||||
Questionnaire 1A
|
||||
^^^^^^^^^^^^^^^^
|
||||
@ -200,7 +200,7 @@ Je veux changer d'algorithme de répartition, que faire ?
|
||||
|
||||
Cette section est plus technique et s'adresse surtout aux respos info en cours de mandat.
|
||||
|
||||
Première règle : on ne supprime rien (sauf si vraiment c'est du mauvais boulot). En prenant exemple sur des fichiers déjà existant tels que ``apps/wei/forms/surveys/wei2020.py``, créer un nouveau fichier ``apps/wei/forms/surveys/wei20XY.py``. Ce fichier doit inclure les éléments suivants :
|
||||
Première règle : on ne supprime rien (sauf si vraiment c'est du mauvais boulot). En prenant exemple sur des fichiers déjà existant tels que ``apps/wei/forms/surveys/wei2021.py``, créer un nouveau fichier ``apps/wei/forms/surveys/wei20XY.py``. Ce fichier doit inclure les éléments suivants :
|
||||
|
||||
WEISurvey
|
||||
"""""""""
|
||||
@ -223,7 +223,7 @@ Une classe héritant de ``wei.forms.surveys.base.WEISurvey``, comportant les él
|
||||
Naturellement, il est implicite qu'une fonction ayant pour premier argument ``cls`` doit être annotée par ``@classmethod``.
|
||||
Nativement, la classe ``WEISurvey`` comprend les informations suivantes :
|
||||
|
||||
* ``registration``, le modèle ``WEIRegistration`` de l'utilisateur qui remplit le questionnaire
|
||||
* ``registration``, le modèle ``WEIRegistration`` de l'utilisateur⋅rice qui remplit le questionnaire
|
||||
* ``information``, instance de ``WEISurveyInformation``, contient les données du questionnaire en cours de remplissage.
|
||||
* ``get_wei(cls)``, renvoie le WEI correspondant à l'année du sondage.
|
||||
* ``save(self)``, enregistre les informations du sondage dans l'objet ``registration`` associé, qui est ensuite
|
||||
@ -291,7 +291,7 @@ pour unique effet d'appeler la fonction ``run_algorithm`` décrite plus tôt. Un
|
||||
n'a pas été évoqué d'adhésion. L'adhésion est ensuite manuelle, l'algorithme ne fournit qu'une suggestion.
|
||||
|
||||
Cette structure, complexe mais raisonnable, permet de gérer plus ou moins proprement la répartition des 1A,
|
||||
en limitant très fortement le hard code. Ami nouveau développeur, merci de bien penser à la propreté du code :)
|
||||
en limitant très fortement le hard code. Ami nouvelleeau développeur⋅se, merci de bien penser à la propreté du code :)
|
||||
En particulier, on évitera de mentionner dans le code le nom des bus, et profiter du champ ``information_json``
|
||||
présent dans le modèle ``Bus``.
|
||||
|
||||
@ -300,34 +300,34 @@ Valider les inscriptions
|
||||
|
||||
Cette partie est moins technique.
|
||||
|
||||
Une fois la pré-inscription faite, elle doit être validée par le BDE, afin de procéder au paiement. Le GC WEI a accès à
|
||||
Une fois la pré-inscription faite, elle doit être validée par le BDE, afin de procéder au paiement. Læ GC WEI a accès à
|
||||
la liste des inscriptions non validées, soit sur la page de détails du WEI, soit sur un tableau plus large avec filtre.
|
||||
Une inscription non validée peut soit être validée, soit supprimée (la suppression est irréversible).
|
||||
|
||||
Lorsque le GC WEI veut valider une inscription, il a accès au récapitulatif de l'inscription ainsi qu'aux informations
|
||||
personnelles de l'utilisateur. Il lui est proposé de les modifier si besoin (du moins les informations liées au WEI,
|
||||
pas les informations personnelles). Il a enfin accès aux résultats du sondage et la sortie de l'algorithme s'il s'agit
|
||||
d'un 1A, aux préférences d'un 2A+. Avant de valider, le GC WEI doit sélectionner un bus, éventuellement une équipe
|
||||
et un rôle. Si c'est un 1A et que l'algorithme a tourné, ou si c'est un 2A+ qui n'a fait qu'un seul choix de bus,
|
||||
Lorsque læ GC WEI veut valider une inscription, iel a accès au récapitulatif de l'inscription ainsi qu'aux informations
|
||||
personnelles de l'utilisateur⋅rice. Il lui est proposé de les modifier si besoin (du moins les informations liées au WEI,
|
||||
pas les informations personnelles). Iel a enfin accès aux résultats du sondage et la sortie de l'algorithme s'il s'agit
|
||||
d'un⋅e 1A, aux préférences d'un⋅e 2A+. Avant de valider, læ GC WEI doit sélectionner un bus, éventuellement une équipe
|
||||
et un rôle. Si c'est un⋅e 1A et que l'algorithme a tourné, ou si c'est un⋅e 2A+ qui n'a fait qu'un seul choix de bus,
|
||||
d'équipe, de rôles, les champs sont automatiquement pré-remplis.
|
||||
|
||||
Quelques restrictions cependant :
|
||||
|
||||
* Si c'est un 2A+, le chèque de caution doit être déclaré déposé
|
||||
* Si c'est un⋅e 2A+, le chèque de caution doit être déclaré déposé
|
||||
* Si l'inscription se fait via la Société générale, un message expliquant la situation apparaît : la transaction de
|
||||
paiement sera créée mais invalidée, les trésoriers devront confirmer plus tard sur leur interface que le compte
|
||||
paiement sera créée mais invalidée, les trésorièr⋅es devront confirmer plus tard sur leur interface que le compte
|
||||
à la Société générale a bien été créé avant de valider la transaction (voir `Trésorerie <treasury>`_ section
|
||||
Crédit de la Société générale).
|
||||
* Dans le cas contraire, l'utilisateur doit avoir le solde nécessaire sur sa note avant de pouvoir adhérer.
|
||||
* L'utilisateur doit enfin être membre du club Kfet. Un lien est présent pour le faire adhérer ou réadhérer selon le cas.
|
||||
* Dans le cas contraire, l'utilisateur⋅rice doit avoir le solde nécessaire sur sa note avant de pouvoir adhérer.
|
||||
* L'utilisateur⋅rice doit enfin être membre du club Kfet. Un lien est présent pour le faire adhérer ou réadhérer selon le cas.
|
||||
|
||||
Si tout est bon, le GC WEI peut valider. L'utilisateur a bien payé son WEI, et son interface est un peu plus grande.
|
||||
Il peut toujours changer ses paramètres au besoin. Un 1A ne voit rien de plus avant la fin du WEI.
|
||||
Si tout est bon, læ GC WEI peut valider. L'utilisateur⋅rice a bien payé son WEI, et son interface est un peu plus grande.
|
||||
Iel peut toujours changer ses paramètres au besoin. Un⋅e 1A ne voit rien de plus avant la fin du WEI.
|
||||
|
||||
Un adhérent WEI non 1A a accès à la liste des bus, des équipes et de leur descriptions. Les chefs de bus peuvent gérer
|
||||
les bus et leurs équipes. Les chefs d'équipe peuvent gérer leurs équipes. Cela inclut avoir accès à la liste des membres
|
||||
Un⋅e adhérent⋅e WEI non 1A a accès à la liste des bus, des équipes et de leur descriptions. Les chef⋅fes de bus peuvent gérer
|
||||
les bus et leurs équipes. Les chef⋅fes d'équipe peuvent gérer leurs équipes. Cela inclut avoir accès à la liste des membres
|
||||
de ce bus / de cette équipe.
|
||||
|
||||
Un export au format PDF de la liste des membres *visibles* est disponible pour chacun.
|
||||
Un export au format PDF de la liste des membres *visibles* est disponible pour chacun⋅e.
|
||||
|
||||
Bon WEI à tous !
|
||||
Bon WEI à toustes !
|
||||
|
Reference in New Issue
Block a user