Bug #14257
Le champ formdata['workflow']['status'] n'est pas toujours disponible, utiliser l'evolution dans ce cas
100%
Description
Si le statut en cours est invisible (ou tous les statuts sont invisibles) alors le champ formdata['workflow']['status'] est vide, wcs_olap ne sachant fonctionner sans statut on se replie sur le dernier statut défini dans l'évolution, sinon on abandonne comme aujourd'hui.
Fichiers
Révisions associées
Historique
Mis à jour par Frédéric Péters il y a plus de 7 ans
Mais pour la BI on devrait pouvoir accéder au statut précis, il me semble.
Mis à jour par Benjamin Dauvergne il y a plus de 7 ans
Le problème se passe là (dans FormData.get_json_export_dict()) :
data['workflow'] = {} wf_status = self.get_visible_status() if wf_status: data['workflow']['status'] = {'id': wf_status.id, 'name': wf_status.name}
et là:
def get_visible_status(self, user=None): if not self.evolution: return self.get_status() if not user and get_request(): user = get_request().user for evo in reversed(self.evolution): if not evo.status: continue wf_status = self.get_status(evo.status) if not wf_status: continue if not wf_status.is_visible(self, user): continue return wf_status return None
Là BI interroge l'API en mode "anonimyse" et dans ce cas il n'y a pas de user (il y en aurait un je crois que ça ne changerait rien ici, puis qu'il n'aurait vraisemblablement pas le bon rôle pour voir le statut personne ne l'a je crois) et comme tous les statuts de ce workflow sont invisible et bien ça ne renvoie rien dans "workflow".
Mis à jour par Thomas Noël il y a plus de 7 ans
- Sujet changé de Le champ formdata['workflow']['status'] n'est pas toujours disponible, utilise l'evolution dans ce cas à Le champ formdata['workflow']['status'] n'est pas toujours disponible, utiliser l'evolution dans ce cas
Benjamin Dauvergne a écrit :
Là BI interroge l'API en mode "anonimyse" et dans ce cas il n'y a pas de user (il y en aurait un je crois que ça ne changerait rien ici, puis qu'il n'aurait vraisemblablement pas le bon rôle pour voir le statut personne ne l'a je crois) et comme tous les statuts de ce workflow sont invisible et bien ça ne renvoie rien dans "workflow".
Plus généralement, l'API ne renverra jamais un statut caché, mais le dernier statut visible pour l'usager. Et ce n'est pas ce qu'on veut dans la BI, où on veut le vrai statut.
Mais en même temps, on ne veut pas non plus que les statuts invisibles soient disponibles dans l'API, parce qu'à travers « user = get_request().user » on permettrait à un usager de les voir.
Mis à jour par Benjamin Dauvergne il y a plus de 7 ans
- Fichier 0001-If-current-status-is-invisible-search-last-one-from-.patch 0001-If-current-status-is-invisible-search-last-one-from-.patch ajouté
- Patch proposed changé de Non à Oui
Patch en place sur la prod.
Mis à jour par Benjamin Dauvergne il y a plus de 7 ans
- Statut changé de Nouveau à Résolu (à déployer)
- % réalisé changé de 0 à 100
Appliqué par commit commit:wcs-olap|00f34ea1b1d87bfa8067bedf883a0fe41df7e643.
Mis à jour par Benjamin Dauvergne il y a environ 7 ans
- Statut changé de Résolu (à déployer) à Fermé
If current status is invisible, search last one from evolutions (fixes #14257)