Projet

Général

Profil

Bug #14257

Le champ formdata['workflow']['status'] n'est pas toujours disponible, utiliser l'evolution dans ce cas

Ajouté par Benjamin Dauvergne il y a plus de 7 ans. Mis à jour il y a environ 7 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
09 décembre 2016
Echéance:
% réalisé:

100%

Temps estimé:
Patch proposed:
Oui
Planning:

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

Révision 00f34ea1 (diff)
Ajouté par Benjamin Dauvergne il y a plus de 7 ans

If current status is invisible, search last one from evolutions (fixes #14257)

Historique

#2

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.

#3

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".

#4

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.

#5

Mis à jour par Benjamin Dauvergne il y a plus de 7 ans

Patch en place sur la prod.

#6

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.

#7

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

  • Statut changé de Résolu (à déployer) à Fermé

Formats disponibles : Atom PDF