diff --git a/preferences/models.py b/preferences/models.py index 560fa30f..b5031e4d 100644 --- a/preferences/models.py +++ b/preferences/models.py @@ -66,24 +66,35 @@ class OptionalUser(AclMixin, PreferencesModel): activation ou non du solde, autorisation du negatif, fingerprint etc""" PRETTY_NAME = "Options utilisateur" - is_tel_mandatory = models.BooleanField(default=True) - user_solde = models.BooleanField(default=False) + is_tel_mandatory = models.BooleanField( + default=True, + help_text="Obligation de renseigner le téléphone" + ) + user_solde = models.BooleanField( + default=False, + help_text="Solde pour les users" + ) solde_negatif = models.DecimalField( max_digits=5, decimal_places=2, - default=0 + default=0, + help_text="Maximum de négatif autorisé" ) max_solde = models.DecimalField( max_digits=5, decimal_places=2, - default=50 + default=50, + help_text="Valeur maximum du solde" ) min_online_payment = models.DecimalField( max_digits=5, decimal_places=2, - default=10 + default=10, + help_text="Montant minimum pour le rechargement online" ) - gpg_fingerprint = models.BooleanField(default=True) + gpg_fingerprint = models.BooleanField( + default=True, + help_text="Gpg fingerprint activée") all_can_create_club = models.BooleanField( default=False, help_text="Les users peuvent créer un club" @@ -100,7 +111,8 @@ class OptionalUser(AclMixin, PreferencesModel): 'users.ListShell', on_delete=models.PROTECT, blank=True, - null=True + null=True, + help_text="Shell par default" ) class Meta: @@ -138,13 +150,20 @@ class OptionalMachine(AclMixin, PreferencesModel): (DISABLED, 'Désactivé'), ) - password_machine = models.BooleanField(default=False) - max_lambdauser_interfaces = models.IntegerField(default=10) - max_lambdauser_aliases = models.IntegerField(default=10) + password_machine = models.BooleanField( + default=False, + help_text="Un mot de passe par machine activé") + max_lambdauser_interfaces = models.IntegerField( + default=10, + help_text="Maximum d'interface pour un user sans droits") + max_lambdauser_aliases = models.IntegerField( + default=10, + help_text="Maximum de cname pour un user sans droits") ipv6_mode = models.CharField( max_length=32, choices=CHOICE_IPV6, - default='DISABLED' + default='DISABLED', + help_text="Mode ipv6" ) create_machine = models.BooleanField( default=True, @@ -187,21 +206,24 @@ class OptionalTopologie(AclMixin, PreferencesModel): radius_general_policy = models.CharField( max_length=32, choices=CHOICE_RADIUS, - default='DEFINED' + default='DEFINED', + help_text="Politique par defaut de placement de vlan avec radius" ) vlan_decision_ok = models.OneToOneField( 'machines.Vlan', on_delete=models.PROTECT, related_name='decision_ok', blank=True, - null=True + null=True, + help_text="Placement sur ce vlan par default en cas d'accès OK" ) vlan_decision_nok = models.OneToOneField( 'machines.Vlan', on_delete=models.PROTECT, related_name='decision_nok', blank=True, - null=True + null=True, + help_text="Placement par defaut sur ce vlan en cas de rejet" ) class Meta: @@ -225,23 +247,44 @@ class GeneralOption(AclMixin, PreferencesModel): general_message = models.TextField( default="", blank=True, - help_text="Message général affiché sur le site (maintenance, etc" + help_text="Message général affiché sur le site (maintenance, etc)" + ) + search_display_page = models.IntegerField( + default=15, + help_text="Nombre de résultats affichés dans une recherche" + ) + pagination_number = models.IntegerField( + default=25, + help_text="Nombre d'item par page paginée" + ) + pagination_large_number = models.IntegerField( + default=8, + help_text="Nombre d'item par page paginée, items larges" + ) + req_expire_hrs = models.IntegerField( + default=48, + help_text="Delais d'expiration des token changement de mdp, en heure" + ) + site_name = models.CharField( + max_length=32, + default="Re2o", + help_text="Nom du site web, par defaut re2o" + ) + email_from = models.EmailField( + default="www-data@example.com", + help_text="From des mails envoyés par re2o" ) - search_display_page = models.IntegerField(default=15) - pagination_number = models.IntegerField(default=25) - pagination_large_number = models.IntegerField(default=8) - req_expire_hrs = models.IntegerField(default=48) - site_name = models.CharField(max_length=32, default="Re2o") - email_from = models.EmailField(default="www-data@example.com") GTU_sum_up = models.TextField( default="", blank=True, + help_text="Résumé des CGU à l'inscription" ) GTU = models.FileField( upload_to='', default="", null=True, blank=True, + help_text="CGU et documents réglementaires à l'inscription" ) class Meta: @@ -280,19 +323,43 @@ class AssoOption(AclMixin, PreferencesModel): name = models.CharField( default="Association réseau école machin", - max_length=256 + max_length=256, + help_text="Nom complet de l'asso" + ) + siret = models.CharField( + default="00000000000000", + max_length=32, + help_text="Numero SIRET" + ) + adresse1 = models.CharField( + default="1 Rue de exemple", + max_length=128, + help_text="Adresse" + ) + adresse2 = models.CharField( + default="94230 Cachan", + max_length=128 + ) + contact = models.EmailField( + default="contact@example.org", + help_text="Mail de contact" + ) + telephone = models.CharField( + max_length=15, + default="0000000000", + help_text="Téléphone de contact" + ) + pseudo = models.CharField( + default="Asso", + max_length=32, + help_text="Pseudo de l'asso" ) - siret = models.CharField(default="00000000000000", max_length=32) - adresse1 = models.CharField(default="1 Rue de exemple", max_length=128) - adresse2 = models.CharField(default="94230 Cachan", max_length=128) - contact = models.EmailField(default="contact@example.org") - telephone = models.CharField(max_length=15, default="0000000000") - pseudo = models.CharField(default="Asso", max_length=32) utilisateur_asso = models.OneToOneField( 'users.User', on_delete=models.PROTECT, blank=True, - null=True + null=True, + help_text="Utilisateur dans la db correspondant à l'asso" ) PAYMENT = ( ('NONE', 'NONE'), @@ -302,20 +369,24 @@ class AssoOption(AclMixin, PreferencesModel): max_length=255, choices=PAYMENT, default='NONE', + help_text="Mode de paiement en ligne" ) payment_id = models.CharField( max_length=255, default='', - blank=True + blank=True, + help_text="Id de paiement en ligne" ) payment_pass = AESEncryptedField( max_length=255, null=True, blank=True, + help_text="Clef de paiement en ligne" ) description = models.TextField( null=True, blank=True, + help_text="Description de l'asso" ) class Meta: diff --git a/preferences/templates/preferences/display_preferences.html b/preferences/templates/preferences/display_preferences.html index 99e3e14f..d1aca6a6 100644 --- a/preferences/templates/preferences/display_preferences.html +++ b/preferences/templates/preferences/display_preferences.html @@ -37,40 +37,14 @@ with this program; if not, write to the Free Software Foundation, Inc.,
Téléphone obligatoirement requis | -{{ useroptions.is_tel_mandatory }} | -Activation du solde pour les utilisateurs | -{{ useroptions.user_solde }} | -||
---|---|---|---|---|---|
Champ gpg fingerprint | -{{ useroptions.gpg_fingerprint }} | - {% if useroptions.user_solde %} -Solde négatif | -{{ useroptions.solde_negatif }} | - {% endif %} -||
Creations d'adhérents par tous | -{{ useroptions.all_can_create_adherent }} | -Creations de clubs par tous | -{{ useroptions.all_can_create_club }} | -||
Solde maximum | -{{ useroptions.max_solde }} | -Montant minimal de rechargement en ligne | -{{ useroptions.min_online_payment }} | -||
Auto inscription | -{{ useroptions.self_adhesion }} | -Shell par défaut des utilisateurs | -{{ useroptions.shell_default }} | + {% for text, field in line %} +{{ field }} | +{{ text }} | + {% endfor %}
-
Mot de passe par machine | -{{ machineoptions.password_machine }} | -Machines/interfaces autorisées par utilisateurs | -{{ machineoptions.max_lambdauser_interfaces }} | -
---|---|---|---|
Alias dns autorisé par utilisateur | -{{ machineoptions.max_lambdauser_aliases }} | -Support de l'ipv6 | -{{ machineoptions.ipv6_mode }} | -
Creation de machines | -{{ machineoptions.create_machine }} | + {% for text, field in line %} +{{ field }} | +{{ text }} | + {% endfor %}
---|
Politique générale de placement de vlan | -{{ topologieoptions.radius_general_policy }} | -Ce réglage défini la politique vlan après acceptation radius : soit sur le vlan de la plage d'ip de la machine, soit sur un vlan prédéfini dans "Vlan où placer les machines après acceptation RADIUS" | -- |
---|---|---|---|
Vlan où placer les machines après acceptation RADIUS | -{{ topologieoptions.vlan_decision_ok }} | -Vlan où placer les machines après rejet RADIUS | -{{ topologieoptions.vlan_decision_nok }} | -
{{ field }} | +{{ text }} | + {% endfor %} +
Nom du site web | -{{ generaloptions.site_name }} | -Adresse mail d'expedition automatique | -{{ generaloptions.email_from }} | -
---|---|---|---|
Affichage de résultats dans le champ de recherche | -{{ generaloptions.search_display_page }} | -Nombre d'items affichés en liste (taille normale) | -{{ generaloptions.pagination_number }} | -
Nombre d'items affichés en liste (taille élevée) | -{{ generaloptions.pagination_large_number }} | -Temps avant expiration du lien de reinitialisation de mot de passe (en heures) | -{{ generaloptions.req_expire_hrs }} | -
Message global affiché sur le site | -{{ generaloptions.general_message }} | -Résumé des CGU | -{{ generaloptions.GTU_sum_up }} | -
CGU | -{{generaloptions.GTU}} - | {{ field }} | +{{ text }} | + {% endfor %} + + {% endfor %}
Nom | -{{ assooptions.name }} | -SIRET | -{{ assooptions.siret }} | -
---|---|---|---|
Adresse | -{{ assooptions.adresse1 }} - {{ assooptions.adresse2 }} |
- Contact mail | -{{ assooptions.contact }} | -
Telephone | -{{ assooptions.telephone }} | -Pseudo d'usage | -{{ assooptions.pseudo }} | -
Objet utilisateur de l'association | -{{ assooptions.utilisateur_asso }} | -Moyen de paiement automatique | -{{ assooptions.payment }} | -
Description de l'association | -{{ assooptions.description | safe }} | -||
{{ field }} | +{{ text }} | + {% endfor %} +
Mail de bienvenue (Français) | -{{ mailmessageoptions.welcome_mail_fr | safe }} | + {% for line in assooptions %} +
---|---|
{{ field }} | +{{ text }} | + {% endfor %}
Mail de bienvenue (Anglais) | -{{ mailmessageoptions.welcome_mail_en | safe }} | -