Projet

Général

Profil

Development #15142

la cellule JSON devrait utiliser combo.utils.requests

Ajouté par Thomas Noël il y a environ 7 ans. Mis à jour il y a plus de 5 ans.

Statut:
Fermé
Priorité:
Haut
Assigné à:
-
Version cible:
-
Début:
24 février 2017
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:

Description

Actuellement dans combo.data.models on a un import requests utilisé par JsonCell et FeedCell

Je propose d'utiliser plutôt combo.utils.requests dans les deux cas.


Fichiers

Révisions associées

Révision 3926fa9b (diff)
Ajouté par Thomas Noël il y a environ 7 ans

use utils.requests in JsonCell (#15142)

Historique

#1

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

Tout à fait; j'affirmais dans le ticket cellule json que c'était déjà le cas :/

#2

Mis à jour par Thomas Noël il y a environ 7 ans

#3

Mis à jour par Serghei Mihai (congés, retour 15/05) il y a environ 7 ans

Pour JsonCell je vois l'interet d'utiliser le utils.requests, mais pas pour le FeedCell: je vois déjà des cas ou un flux RSS est construit en fonction des parametres GET et le fait de lui en balancer d'autres casse tout.

#4

Mis à jour par Thomas Noël il y a environ 7 ans

Mmmh... ça ne rajoute des choses que si c'est un known_services, pour les autres rien n'est fait.

En revanche ça ajoute un cache par défaut, je vais le supprimer avec cache_duration=0

#5

Mis à jour par Thomas Noël il y a environ 7 ans

J'ai donc posé des cache_duration=0. Je laisse les cellules continuer à gérer leur propre cache, ça pourrait être à revoir dans certains cas (requête vers un known_service avec utilisation de nameid) ; mais c'est pas le sujet de ce patch.

#6

Mis à jour par Thomas Noël il y a environ 7 ans

  • Priorité changé de Normal à Haut

(à noter que dans son état actuel, la cellule json ne marche pas, requests crashe à cause du remove_service=auto)

j'augmente la priorité car je crois que cette cellule est attendue

#7

Mis à jour par Benjamin Dauvergne il y a environ 7 ans

Ack. Je n'ai pas compris le coup du cache_duration à zéro par contre, il me semble que le cache est fait en fonction de l'URL non ? Donc si on change les paramètres, on ne trouvera pas la valeur en cache, mais certainement qu'un truc m'échappe.

#8

Mis à jour par Thomas Noël il y a environ 7 ans

Je pense que t'as raison.

Bon, d'abord je vais annuler l'utilisation pour FeedCell : on n'utilisera pas de RSS pour parler entre nos briques (knownservices) donc ça sert à rien de passer par combo.utils.requests.

Ensuite, il y a le plan que JsonCell puisse bientôt faire des requêtes avec NameId=xxx, c'est à dire ajouter un user=request.user lors de l'appel à utils.requests. Et c'est donc plutôt ce dernier qui doit gérer le cache (puisqu'il faut alors un cache par utilisateur le cas échéant)

#9

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

    def render(self, context):
-        json_content = cache.get(self.cache_key())
-        if not context.get('synchronous') and json_content is None:
+        if not context.get('synchronous'):

Ça change quand même le comportement à faire que systématiquement on va avoir appel ajax pour remplir la cellule; ça m'ennuie un peu. Mais peut-être qu'on peut quand même faire ainsi et que plus tard on ajouterait une méthode has_cached_content() à notre objet request, pour permettre de déterminer ça "à l'avance".

Ack donc.

#10

Mis à jour par Thomas Noël il y a environ 7 ans

  • Statut changé de En cours à Résolu (à déployer)
commit 3926fa9ba81b8319f8d818a5536e7ace76994549
Author: Thomas NOEL <tnoel@entrouvert.com>
Date:   Fri Feb 24 12:28:21 2017 +0100

    use utils.requests in JsonCell (#15142)

#11

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

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

Formats disponibles : Atom PDF