Projet

Général

Profil

Bug #20146

evolution.get_status retourne le statut actuel quand l'évolution n'est pas directement attachée à un statut

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

Statut:
Fermé
Priorité:
Haut
Assigné à:
Version cible:
-
Début:
17 novembre 2017
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:

Description

Dans un historique on se trouve avec evolution(new) puis evolution (pas de statut mais un commentaire) puis evolution (accepted) etc.

L'évolution sans statut, sa méthode get_status(), elle fallback sur le statut du formulaire, mais ça n'est pas correct du tout.

C'est particulièrement visible sur une demande terminée avec l'affichage de ✓ sur les statuts endpoint (parce que tous les endroits sans statut se trouvent considérés comme terminés…).


Fichiers

Révisions associées

Révision bed253cb (diff)
Ajouté par Frédéric Péters il y a plus de 6 ans

formdata: get correct status for intermediary evolutions (#20146)

Historique

#1

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

#2

Mis à jour par Thomas Noël il y a plus de 6 ans

La fonction juste en dessous (get_status_label) souffre du même bogue.

(sinon c'est un peu moche, mais je vois pas d'autre possibilité de résoudre ce soucis)

#4

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

(patch pas testé, je corrige)

#6

Mis à jour par Thomas Noël il y a plus de 6 ans

Je préférerais que soit repris le même algo, parce que là c'est pas cohérent, on reçoit avec get_status le bon id du status, mais on aurait un "Unknown" dans le label.

#7

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

bon id du status, mais on aurait un "Unknown"

Je ne vois pas cette situation.

on reçoit avec get_status le bon id du status

On appelle get_status donc le même algo, on obtient le bon objet Status, pas l'id, autant l'utiliser tout de suite.

Alternativement ça serait :

    def get_status_label(self):
        status = self.get_status()
        return self.formdata.get_status_label(status.id) if status else _('Unknown')

Mais c'est dommage, je trouve, d'avoir ensuite self.formdata.get_status_label reparcourir l'ensemble des statuts pour trouver celui avec l'identifiant.

#8

Mis à jour par Thomas Noël il y a plus de 6 ans

Frédéric Péters a écrit :

On appelle get_status donc le même algo, on obtient le bon objet Status, pas l'id, autant l'utiliser tout de suite.

J'ai lu de travers, confondu self.get_status() avec self.status ... Ack.

#9

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

  • Statut changé de En cours à Résolu (à déployer)
commit bed253cb753f1ffd90fb16c414cfa630ad00b770
Author: Frédéric Péters <fpeters@entrouvert.com>
Date:   Fri Nov 17 19:13:53 2017 +0400

    formdata: get correct status for intermediary evolutions (#20146)

(je vais attendre que le jenkins tourne puis si j'ai le temps je tagguerai, sinon je verrai ça au retour).

#10

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