Projet

Général

Profil

Development #60380

formdata.store ne change pas nécessairement le chemin absolu d'une pièce jointe en chemin relatif

Ajouté par Emmanuel Cazenave il y a plus de 2 ans. Mis à jour il y a environ 2 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
06 janvier 2022
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

C'est ce qui est annoncé dans #21731#note-4 et je tente ça sur un formdata qui contient un AttachmentEvolutionPart avec un chemin absolu, et plouf pas de changement.

A coup de pdb, dans AttachmentEvolutionPart.__get_state__, ça passe dans le chemin :

if not odict.get('fp'):
    if 'filename' not in odict:
        # we need a filename as an identifier: create one from nothing
        # instead of file_digest(self.fp) (see below)
        odict['filename'] = 'uuid-%s' % uuid.uuid4()
        self.filename = odict['filename']
    return odict

..... la mise à jour du chemin en chemin relatif c'est après 

Fichiers


Demandes liées

Lié à Publik - Support #57729: Migration d'instances de Publik : changement de nom de domaineFermé11 octobre 2021

Actions

Révisions associées

Révision fe39efa3 (diff)
Ajouté par Emmanuel Cazenave il y a environ 2 ans

formdata: improve migration of attachments to absolute path (#60380)

Historique

#2

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

  • Statut changé de Nouveau à En cours
  • Assigné à mis à Emmanuel Cazenave
#3

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

  • Lié à Support #57729: Migration d'instances de Publik : changement de nom de domaine ajouté
#4

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

Note pour moi même, les tests qui empruntent ce chemin de code :

tests/test_upload_storage.py::test_remoteopaque_in_attachmentevolutionpart
tests/api/test_formdata.py::test_formdata_with_evolution_part_attachment_to
tests/backoffice_pages/test_all.py::test_backoffice_wscall_attachment
tests/backoffice_pages/test_all.py::test_backoffice_wfedit
tests/form_pages/test_formdata.py::test_formdata_attachment_download
tests/form_pages/test_formdata.py::test_formdata_attachment_download_with_substitution_variable
tests/form_pages/test_formdata.py::test_formdata_attachment_download_with_invalid_character
tests/form_pages/test_formdata.py::test_formdata_generated_document_download
tests/form_pages/test_formdata.py::test_formdata_generated_document_odt_download
tests/form_pages/test_formdata.py::test_formdata_generated_document_odt_download_with_substitution_variable
tests/form_pages/test_formdata.py::test_formdata_generated_document_odt_to_pdf_download
tests/form_pages/test_formdata.py::test_formdata_generated_document_odt_to_pdf_download_push_to_portfolio
tests/form_pages/test_formdata.py::test_formdata_generated_document_non_interactive
tests/form_pages/test_formdata.py::test_formdata_generated_document_to_backoffice_field
tests/form_pages/test_formdata.py::test_formdata_generated_document_in_private_history
tests/form_pages/test_formdata.py::test_formdata_evolution_registercommenter_to_with_attachment
tests/workflow/test_all.py::test_set_backoffice_field_file
#5

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

Si quelqu'un a une vague idée de comment appréhender ce problème je suis preneur, pour commencer je ne comprends pas bien ce chemin de code, brouillard total.

#6

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

Et d'avoir écrit une question donne du recul, ça me semble être un bout de code destiné à gérer le cas "avoir une instance de AttachmentEvolutionPart sans fichier associé" et que je devrais pas tomber là dedans s'il y a bien un fichier associé et que c'est donc ça qu'il faut creuser, pourquoi on tombe là dedans lorsqu'il y a bien un fichier.

#7

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

Le descripteur de fichier est viré lors de la sérialisation, du coup les objets désérialisés n'ont jamais de descripteur de fichier.

La migration de chemin s'effectuant lors de la sérialisation uniquement sur les objets disposant d'un descripteur de fichier, le scénario prendre un "vieux" formdata et le sérialiser pour obtenir la migration ne marche pas.

Testé unitairement et en vrai.

#8

Mis à jour par Frédéric Péters il y a environ 2 ans

  • Statut changé de Solution proposée à Solution validée
    # get a frech instance not monkeypatched

fresh.

#9

Mis à jour par Emmanuel Cazenave il y a environ 2 ans

  • Statut changé de Solution validée à Résolu (à déployer)
commit fe39efa304941725cb6abcafd5bc28b196284d72
Author: Emmanuel Cazenave <ecazenave@entrouvert.com>
Date:   Tue Jan 11 11:30:20 2022 +0100

    formdata: improve migration of attachments to absolute path (#60380)
#10

Mis à jour par Transition automatique il y a environ 2 ans

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

Mis à jour par Transition automatique il y a environ 2 ans

Automatic expiration

Formats disponibles : Atom PDF