Projet

Général

Profil

Development #32244

interface manager/queryset sur les formdata, pour les gabarits

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

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
12 avril 2019
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

Pour afficher les demandes à proximité, j'utilisais précédemment un [script etc.] alors que ça se prête plutôt bien avec l'utilisation d'un gabarit, il manque "juste" "quelques" methodes.


Fichiers


Demandes liées

Bloque w.c.s. - Development #32263: proposer la réouverture d'un brouillon en début de saisieFermé14 avril 2019

Actions

Révisions associées

Révision e0d82144 (diff)
Ajouté par Frédéric Péters il y a presque 5 ans

misc: rename/move FormDefSubstVar to lazy variables module (#32244)

Révision 22fc1227 (diff)
Ajouté par Frédéric Péters il y a presque 5 ans

lazy: add queryset-like features to lazy formdef (#32244)

{% for formdata in form.formdef.objects.pending %} {{formdata.number}} {% endfor %}

Historique

#1

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

(tests à ajouter, et utilisation en vrai pour voir ce qu'il faudrait encore comme méthodes)

#2

Mis à jour par Benjamin Dauvergne il y a presque 5 ans

Elle est où la partie "pour les demandes à proximité" ?

#3

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

"Dans l'objectif général de passer par des gabarits pour l'affichage des demandes à proximité, une première étape.".

#4

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

  • Bloque Development #32263: proposer la réouverture d'un brouillon en début de saisie ajouté
#5

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

Pour également être utile dans #32263, j'étends ce patch avec la possibilité de filter sur les brouillons, sur l'usager connecté, et un getitem nécessaire pour faire ...objects.drafts.0.internal_id.

Avec les tests complétés pour valider tout ça.

(en passant ça ajoute un select_iterator() bidon au stockage pickle)

#6

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

Le __len__ n'était pas testé (et comportait du coup une erreur), voilà.

#7

Mis à jour par Benjamin Dauvergne il y a presque 5 ans

  • Statut changé de Solution proposée à Solution validée
  • Je ne crois pas que Django efface les filtres en cours sur un .all() :
        def all(self):
            # (mimicking django)
            return LazyFormDefObjectsManager(self._formdef)
    

    Django fait juste return self._clone()
  • La mise en cache du queryset n'est fait que sur un accès indexé, ce n'est pas le comportement Django qui est systématique, mais il y a peut-être une raison; si on veut proposer les deux possibilités je dirai de faire comme Django pour se retrouver en terrain connu: iter mets en cache, si pas souhaité, avoir un iterator() (le premier utilisant le deuxième).
  • criterias = [x for x in self._criterias if not getattr(x, 'exclude_drafts', False)] un peu complexe tout ça, peut-être serait-il plus simple de proposer directement sur formdef des accesseurs all_objects ou objects et no_drafts... en l'état formdef.objects.count() change de comportement (plus de drafts dans les décomptes, mais ça me parait bien), et expliciter dans ces accesseurs les critères en place

Voilà sans trop voir comment ce sera utilisé j'en suis réduit à des remarques bien générales.

#8

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

en l'état formdef.objects.count() change de comportement (plus de drafts dans les décomptes, mais ça me parait bien).

Oui, j'étais même sûr d'avoir un "XXX: should exclude drafts" quelque part, que je ne retrouve pas.

Voilà sans trop voir comment ce sera utilisé j'en suis réduit à des remarques bien générales.

#32263 l'exploite.

#9

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

  • Statut changé de Solution validée à Résolu (à déployer)
commit 22fc1227dd053667f940d4ca1476ebd0fad05f8f
Author: Frédéric Péters <fpeters@entrouvert.com>
Date:   Fri Apr 12 15:21:29 2019 +0200

    lazy: add queryset-like features to lazy formdef (#32244)

    {% for formdata in form.formdef.objects.pending %}
      {{formdata.number}}
    {% endfor %}

commit e0d82144a793f293404a165996c8482371f5a321
Author: Frédéric Péters <fpeters@entrouvert.com>
Date:   Fri Apr 12 15:03:24 2019 +0200

    misc: rename/move FormDefSubstVar to lazy variables module (#32244)
#10

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

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

Formats disponibles : Atom PDF