Development #15142
la cellule JSON devrait utiliser combo.utils.requests
0%
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
Historique
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 :/
Mis à jour par Thomas Noël il y a environ 7 ans
- Fichier 0001-use-utils.requests-in-FeedCell-and-JsonCell-15142.patch 0001-use-utils.requests-in-FeedCell-and-JsonCell-15142.patch ajouté
- Statut changé de Nouveau à En cours
- Patch proposed changé de Non à Oui
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.
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
Mis à jour par Thomas Noël il y a environ 7 ans
- Fichier 0001-use-utils.requests-in-FeedCell-and-JsonCell-15142.patch 0001-use-utils.requests-in-FeedCell-and-JsonCell-15142.patch ajouté
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.
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
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.
Mis à jour par Thomas Noël il y a environ 7 ans
- Fichier 0001-use-utils.requests-in-JsonCell-15142.patch 0001-use-utils.requests-in-JsonCell-15142.patch ajouté
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)
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.
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)
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
use utils.requests in JsonCell (#15142)