Projet

Général

Profil

Development #23306

À l'ajout d'un champ de profil permettre d'en choisir le type

Ajouté par Frédéric Péters il y a presque 6 ans. Mis à jour il y a plus de 5 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Catégorie:
-
Version cible:
-
Début:
20 avril 2018
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:

Description

Pour le moment on les crée nécessairement avec kind = string, on voudrait par exemple créer un "acceptation des CGU" avec kind = boolean.

(uniquement à la création, ne pas permettre la modification après coup)


Fichiers

Révisions associées

Révision c336821d (diff)
Ajouté par Emmanuel Cazenave il y a presque 6 ans

allow string or boolean kind for attribute definition (#23306)

Historique

#1

Mis à jour par Frédéric Péters il y a presque 6 ans

  • Description mis à jour (diff)
#2

Mis à jour par Frédéric Péters il y a presque 6 ans

  • Assigné à mis à Emmanuel Cazenave
#4

Mis à jour par Emmanuel Cazenave il y a presque 6 ans

En fait non, en bossant sur #23309, je me rends compte que mettre le choix string/boolean au niveau du modèle ne convient pas, car ensuite lors d'un 'makemigrations' django veut me faire descendre ce choix jusque dans la db, ce qu'on ne veut pas j'imagine puisque sur une instance toute neuve je vois des attributs de kind title, birthdate.

Donc je vais remonter ça au niveau du formulaire.

#5

Mis à jour par Frédéric Péters il y a presque 6 ans

Ou également autoriser birthdate au niveau du modèle ?

#6

Mis à jour par Frédéric Péters il y a presque 6 ans

  • Statut changé de Nouveau à En cours

Même pas, je viens de vérifier, c'est totalement indicatif, on peut tourner avec choices=[...] et faire un .kind = 'whatever' et enregistrer et l'objet sera bien enregistré.

Ma position du coup ici est de simplement modifier la migration initiale 0001 pour y déclarer le choices=[...]

+++ b/hobo/profile/migrations/0001_initial.py
@@ -21,7 +21,8 @@ class Migration(migrations.Migration):
                 ('asked_on_registration', models.BooleanField(default=False, verbose_name='asked on registration')),
                 ('user_editable', models.BooleanField(default=True, verbose_name='user editable')),
                 ('user_visible', models.BooleanField(default=True, verbose_name='user visible')),
-                ('kind', models.CharField(default=b'string', max_length=16, verbose_name='kind')),
+                ('kind', models.CharField(default=b'string', max_length=16, verbose_name='kind',
+                    choices=[(b'string', 'String'), (b'boolean', 'Boolean')])),
                 ('disabled', models.BooleanField(default=False, verbose_name='disabled')),
                 ('order', models.PositiveIntegerField()),
                 ('last_update_timestamp', models.DateTimeField(auto_now=True)),

Et c'est tout. (ou presque, on remarquera que j'ai ajouté des majuscules à String et Boolean, je préfère).

#7

Mis à jour par Emmanuel Cazenave il y a presque 6 ans

Et c'est tout.

Pas sûr de la portée de ce commentaire, j'ai fait ce qui me parait raisonnable, modification de la migration initiale et du models.py.

#8

Mis à jour par Frédéric Péters il y a presque 6 ans

Ok, peut-être encore encore en plus, même si ça ne révélera rien, ajouter un test qui crée un AttributeDefinition avec un kind différent, pour vérifier que ça s'enregistre bien.

#10

Mis à jour par Frédéric Péters il y a presque 6 ans

Ok, peut-être encore encore en plus, même si ça ne révélera rien, ajouter un test qui crée un AttributeDefinition avec un kind différent, pour vérifier que ça s'enregistre bien.

Ce n'était pas clair; je voulais dire "un kind différent, pas repris dans le choices=[...]", ce qui assurerait (bien qu'on le sache) que ces choix sont juste là à titre indicatif, utile pour la construction du formulaire, et c'est tout.

#12

Mis à jour par Frédéric Péters il y a presque 6 ans

Yeah, go.

#13

Mis à jour par Emmanuel Cazenave il y a presque 6 ans

  • Statut changé de En cours à Résolu (à déployer)
commit c336821d54947a576bef68b53c8439aad12a912d
Author: Emmanuel Cazenave <ecazenave@entrouvert.com>
Date:   Mon Jun 4 16:46:07 2018 +0200

    allow string or boolean kind for attribute definition (#23306)

#15

Mis à jour par Emmanuel Cazenave il y a plus de 5 ans

  • Statut changé de Résolu (à déployer) à Solution déployée

Formats disponibles : Atom PDF