Development #48876
isoler une méthode get_default_form_fields
0%
Description
On a pour obtenir le formulaire d'édition d'une cellule la méthode get_default_form_class, elle fait deux choses : 1/ obtenir une liste de champs, 2/ passer celle-ci à modelform_factory.
Sauf à tout dupliquer il n'est pas possible d'avoir le formulaire standard créé par modelform_factory mais avec une liste de champs qui serait un peu différente de ce qui est obtenu dans la méthode et on se trouve alors à devoir créer une vraie classe pour le formulaire.
Proposition ici de passer dans une méthode propre l'obtention de la liste des champs.
Fichiers
Révisions associées
Historique
Mis à jour par Frédéric Péters il y a plus de 3 ans
- Fichier 0001-general-split-obtaining-list-of-fields-out-of-get_de.patch 0001-general-split-obtaining-list-of-fields-out-of-get_de.patch ajouté
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
Mis à jour par Thomas Noël il y a plus de 3 ans
- Statut changé de Solution proposée à Solution validée
Si je comprends l'idée c'est de permettre d'avoir des get_default_form_fields spécifiques sur certaines cellules. Ma foi pourquoi pas même si je ne vois pas encore l'usage, j'imagine qu'il y en a un qui arrive ensuite...
Mis à jour par Frédéric Péters il y a plus de 3 ans
En fait mon soucis immédiat c'était qu'on itère sur concrete_fields et là-dedans ne se trouve pas un champ tags qui serait ajouté via taggit, ex dans welco:
tags = TaggableManager(_('Keywords'), blank=True, help_text=_('A comma-separated list of tags.'))
Du coup pour quelque chose de ce type, plutôt que copier/coller à outrance, je trouvais bien de juste pouvoir faire
def get_default_form_fields(self): return super().get_default_form_fields() + ['tags']
(je pense aussi qu'on pourrait avoir un get_default_form_widgets() et que ça permettrait de dégager toute une série de classe de formulaires, et l'idée derrière c'est que je préfère avoir le code d'une cellule tenu dans celle-ci plutôt que réparti entre le modèle et une classe formulaire dans un autre fichier).
Mis à jour par Thomas Noël il y a plus de 3 ans
Frédéric Péters a écrit :
Du coup pour quelque chose de ce type, plutôt que copier/coller à outrance, je trouvais bien de juste pouvoir faire (...)
C'est bien ce que j'imaginais, ça roule ainsi.
Mis à jour par Frédéric Péters il y a plus de 3 ans
- Statut changé de Solution validée à Résolu (à déployer)
commit 9c7d6e3cf8ce45e3049aec8eaa9cc1cb87b612b6 Author: Frédéric Péters <fpeters@entrouvert.com> Date: Thu Nov 26 13:10:39 2020 +0100 general: split obtaining list of fields out of get_default_form_class (#48876)
Mis à jour par Frédéric Péters il y a plus de 3 ans
- Statut changé de Résolu (à déployer) à Solution déployée
general: split obtaining list of fields out of get_default_form_class (#48876)