Projet

Général

Profil

Development #48876

isoler une méthode get_default_form_fields

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

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
26 novembre 2020
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

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

Révision 9c7d6e3c (diff)
Ajouté par Frédéric Péters il y a plus de 3 ans

general: split obtaining list of fields out of get_default_form_class (#48876)

Historique

#1

Mis à jour par Frédéric Péters il y a plus de 3 ans

#2

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...

#3

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).

#4

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.

#5

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)
#6

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

Formats disponibles : Atom PDF