Projet

Général

Profil

Bug #75525

Fichiers attachés venant d'un bloc de champ dans un formulaire de workflow: seul les fichiers de la dernière soumission sont accessibles

Ajouté par Benjamin Dauvergne il y a environ un an. Mis à jour il y a presqu'un an.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
16 mars 2023
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Non
Planning:
Non

Description

Ça se passe dans FormData.get_all_file_data:

    def get_all_file_data(self, with_history=False):
        from wcs.wf.form import WorkflowFormEvolutionPart
        from wcs.workflows import ContentSnapshotPart

        def check_field_data(field_data):
            if misc.is_upload(field_data):
                yield field_data
            elif isinstance(field_data, dict) and isinstance(field_data.get('data'), list):
                for subfield_rowdata in field_data.get('data'):
                    if isinstance(subfield_rowdata, dict):
                        for block_field_data in subfield_rowdata.values():
                            if misc.is_upload(block_field_data):
                                yield block_field_data

        for field_data in itertools.chain((self.data or {}).values(), (self.workflow_data or {}).values()):
            yield from check_field_data(field_data)
        for part in self.iter_evolution_parts():
            if misc.is_attachment(part):
                yield part
            elif isinstance(part, WorkflowFormEvolutionPart):
                for field_data in (part.data or {}).values():
                    if misc.is_upload(field_data):
                        yield field_data
            elif isinstance(part, ContentSnapshotPart):
                # look into old and new values (belt and suspenders)
                for field_data in list((part.old_data or {}).values()) + list((part.new_data or {}).values()):
                    yield from check_field_data(field_data)

On devrait appliquer le même traitement aux données dans part.data que pour formdata.data, utiliser check_field_data(), ça prendrait en compte le cas des blocs.

Révisions associées

Révision 68c1978a (diff)
Ajouté par Benjamin Dauvergne il y a presqu'un an

misc: handle workflow's form file attachments like those of forms (#75525)

Historique

#2

Mis à jour par Benjamin Dauvergne il y a environ un an

  • Assigné à mis à Benjamin Dauvergne
#3

Mis à jour par Robot Gitea il y a environ un an

  • Statut changé de Nouveau à En cours

Benjamin Dauvergne (bdauvergne) a ouvert une pull request sur Gitea concernant cette demande :

#4

Mis à jour par Robot Gitea il y a environ un an

  • Statut changé de En cours à Solution proposée
#5

Mis à jour par Robot Gitea il y a presqu'un an

  • Statut changé de Solution proposée à Solution validée

Emmanuel Cazenave (ecazenave) a approuvé une pull request sur Gitea concernant cette demande :

#6

Mis à jour par Robot Gitea il y a presqu'un an

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

Benjamin Dauvergne (bdauvergne) a mergé une pull request sur Gitea concernant cette demande :

#7

Mis à jour par Transition automatique il y a presqu'un an

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

Mis à jour par Transition automatique il y a 10 mois

Automatic expiration

Formats disponibles : Atom PDF