... | ... | @@ -152,4 +152,25 @@ Cette section est plus technique et s'adresse surtout aux respos info en cours d |
|
|
|
|
|
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`, créer un nouveau fichier `apps/wei/forms/surveys/wei20XY`. Ce fichier doit inclure les éléments suivants :
|
|
|
|
|
|
* Une classe héritant de `wei.forms.surveys.base.WEISurvey`, comportant les éléments suivants : |
|
|
\ No newline at end of file |
|
|
##### WEISurvey
|
|
|
|
|
|
Une classe héritant de `wei.forms.surveys.base.WEISurvey`, comportant les éléments suivants :
|
|
|
|
|
|
* Une fonction `get_year(cls)` indiquant l'année du WEI liée au sondage
|
|
|
* Une fonction `get_survey_information_class(cls)` indiquant la classe héritant de `wei.forms.surveys.base.WEISurveyInformation` contenant les données du sondage (voir plus bas)
|
|
|
* Une fonction `get_algorithm_class(cls)` indiquant la classe héritant de `wei.forms.surveys.base.WEISurveyAlgorithm` contenant l'algorithme de répartition (voir plus bas)
|
|
|
* Une fonction `get_form_class(self)` qui indique la classe du formulaire Django à remplir. Cette classe peut dépendre de l'état actuel du sondage.
|
|
|
* Une fonction `update_form(self, form)`, optionnelle, appelée lorsqu'un formulaire dont la classe est spécifiée via la fonction `get_form_class`, et permet d'opérer sur le formulaire si besoin.
|
|
|
* Une fonction `form_valid(self, form)` qui indique quoi faire lorsque le formulaire est rempli. Cette fonction peut bien sûr dépendre de l'état actuel du sondage.
|
|
|
* Une fonction `is_complete(self)` devant renvoyer un booléen indiquant si le sondage est complet ou non.
|
|
|
|
|
|
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
|
|
|
* `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 enregistré en base de données.
|
|
|
* `select_bus(self, bus)`, choisit le bus `bus` comme bus préféré. Cela à pour effet de remplir les champs `selected_bus_pk` et `selected_bus_name` par les identifiant et nom du bus, et `valid` à `True`.
|
|
|
|
|
|
Pour information, `WEISurvey.__init__` prend comme paramètre l'inscription `registration`, et récupère les informations du sondage converties en dictionnaire Python puis en objet `WEISurveyInformation` |
|
|
\ No newline at end of file |