Development #10506
Pouvoir pousser les documents attachés dans fargo
0%
Description
En utilisant l'API /api/documents/push de fargo.
Fichiers
Demandes liées
Révisions associées
Historique
Mis à jour par Benjamin Dauvergne il y a environ 8 ans
- Fichier 0001-add-option-to-push-attached-document-to-portfolio-10.patch 0001-add-option-to-push-attached-document-to-portfolio-10.patch ajouté
- Patch proposed changé de Non à Oui
Ça s'applique au dessus du #10444.
Mis à jour par Benjamin Dauvergne il y a environ 8 ans
- Bloque Development #9543: Permettre à l'usager de déposer un doc dans le porte-doc depuis une demande ajouté
Mis à jour par Benjamin Dauvergne il y a environ 8 ans
- Fichier 0001-add-option-to-push-attached-document-to-portfolio-10.patch 0001-add-option-to-push-attached-document-to-portfolio-10.patch ajouté
- Patch proposed changé de Non à Oui
Voilà patch testé avec l'attachement de document et la création de documents.
Mis à jour par Frédéric Péters il y a environ 8 ans
Je préfèrerais éviter le fargo_post_json_async, le boulot se fait de toute façon de manière synchrone dans l'afterjob (et oui ça doit demander de faire le fargo_url() dans la fonction push_document).
Le test, il pourrait être fait sans la conversion PDF, pour fonctionner même en l'absence de libreoffice.
Mis à jour par Benjamin Dauvergne il y a environ 8 ans
En fait j'ai un souci il faut que je fasse le get_secret_and_orig()
avant l'afterjob parce que ça accède à get_request() qui n'est plus défini dans les afterjob; si tu trouve vraiment ça moche je me débrouille autrement, sinon je met un commentaire.
Mis à jour par Frédéric Péters il y a environ 8 ans
Je trouve ça plutôt moche mais avec un commentaire ça ira.
J'avais zappé la note comme quoi ça s'appliquait au-dessus de #10444, je vais d'abord regarder celui-là.
Mis à jour par Benjamin Dauvergne il y a environ 8 ans
Ça s'applique au dessus de #10444 surtout parce que j'ai déplacé les fonctions de signature dans un module à part.
Mis à jour par Benjamin Dauvergne il y a environ 8 ans
- Fichier 0001-add-option-to-push-attached-document-to-portfolio-10.patch 0001-add-option-to-push-attached-document-to-portfolio-10.patch ajouté
--- a/wcs/file_validation.py +++ b/wcs/file_validation.py @@ -61,13 +61,18 @@ def fargo_post_json(url, payload): return status, json_loads(response_payload) -def fargo_post_json_async(url, payload): - url = fargo_url(url) - headers = {'Content-Type': 'application/json'} - yield None - response, status, response_payload, auth_header = http_post_request( - url, json.dumps(payload), headers=headers) - yield status, json_loads(response_payload) +# Allow doing a signed POST in an afterjob, as fargo_url() does not work if no request is in +# context; so we do it in the constructor. +class fargo_post_json_async(object): + def __init__(self, url, payload): + self.url = fargo_url(url) + self.payload = payload + + def __call__(self): + headers = {'Content-Type': 'application/json'} + response, status, response_payload, auth_header = http_post_request( + self.url, json.dumps(self.payload), headers=headers) + return status, json_loads(response_payload) def sha256_of_upload(upload): @@ -159,11 +164,10 @@ def push_document(user, filename, stream): stream.seek(0) payload['file_b64_content'] = base64.b64encode(stream.read()) async_post = fargo_post_json_async('/api/documents/push/', payload) - next(async_post) def afterjob(job): status = 0 - status, resp = next(async_post) + status, resp = async_post() if status == 200: get_logger().info('file %s pushed to portfolio of %s' % (filename, user.display_name))
Mis à jour par Benjamin Dauvergne il y a environ 8 ans
- Fichier 0001-add-option-to-push-attached-document-to-portfolio-10.patch 0001-add-option-to-push-attached-document-to-portfolio-10.patch ajouté
Adaptation aux changements dans #10444.
Mis à jour par Frédéric Péters il y a environ 8 ans
Pas regardé encore mais noté dans l'ui : Push generated file to portfiolo
→ s/fiolo/folio/
Mis à jour par Benjamin Dauvergne il y a environ 8 ans
- Fichier 0001-add-option-to-push-attached-document-to-portfolio-10.patch 0001-add-option-to-push-attached-document-to-portfolio-10.patch ajouté
J'ai enlevé le changement dans les fixtures (passé dans #10444).
Mis à jour par Benjamin Dauvergne il y a environ 8 ans
- Statut changé de Nouveau à Résolu (à déployer)
Mis à jour par Frédéric Péters il y a presque 8 ans
- Statut changé de Résolu (à déployer) à Fermé
add option to push attached document to portfolio (#10506)