Projet

Général

Profil

Development #24645

enregistrer les erreurs de calcul sur les champs backoffice (mais ne plus notifier par mail)

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

Statut:
Fermé
Priorité:
Normal
Assigné à:
-
Version cible:
-
Début:
13 juin 2018
Echéance:
13 juin 2018
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:

Description

Comme dans #24327, offrir la possibilité sur compute et l'utiliser pour remonter les pépins de calcul sur les champs backoffice.


Fichiers


Demandes liées

Suit w.c.s. - Development #24472: enregistrer les erreurs sur les conditions dans les workflowsFermé12 juin 2018

Actions

Révisions associées

Révision 7d2e14a1 (diff)
Ajouté par Thomas Noël il y a presque 6 ans

wf/backoffice_fields: log compute errors as functional errors only (#24645)

Historique

#1

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

Rien de bien spécial à dire, mais deux notify_of_exception en moins, je suis content.

#2

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

Auto-relecture : peut-être que le summary des LoggedError avec le '%(result)r' n'est pas assez stable, puisqu'il génère un slug via simplify(self.summary) et qu'on cherche quand même à ce que ce slug reste unique sur une erreur donnée.

#3

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

new_value.__class__.__name__, même si les classes ancien style donneront un résultat moins satisfaisant, je préférerais comme dans le /inspect un type(value)

Auto-relecture : peut-être que le summary des LoggedError avec le '%(result)r' n'est pas assez stable, puisqu'il génère un slug via simplify(self.summary) et qu'on cherche quand même à ce que ce slug reste unique sur une erreur donnée.

Effectivement %(result)r mais également %(value)s, ça va multiplier les enregistrements pour une même origine; comme c'est a priori utile d'avoir ces infos, les mettre dans des attributs supplémentaires de LoggedError ?

#4

Mis à jour par Benjamin Dauvergne il y a presque 6 ans

  • Statut changé de Solution proposée à En cours

Je remet en "En cours" puisque visiblement ce patch n'est pas encore poussable.

#5

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

Une version qui utilise les attributs expression, expression_type et error_message ajoutés dans #24645. On a ainsi un summary plus sommaire.

#6

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

ajoutés dans #24645

Mauvaise référence on est dans #24645.

Dans la pratique, est-ce que la plupart des erreurs ce n'est pas plutôt ici :

            try:
                new_value = self.compute(field['value'], raises=True,
                                         formdata=formdata, status_item=self)
            except:
                continue

(j'essaie en local de taper une erreur qui se trouverait logguée, et j'échoue : une exception quelconque (genre 1/0) se trouve ignorée par le code précédent et un mauvais type (entier pour champ texte) lève quand même une trace).

#7

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

TypeError: "record() got an unexpected keyword argument 'expression'"

Bon en fait c'est parce que cachée il y a cette exception qui survient; ça doit être lié à "ajoutés dans #24645", mais quel est donc le vrai ticket d'où tirer un patch ?

#8

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

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

TypeError: "record() got an unexpected keyword argument 'expression'"

Bon en fait c'est parce que cachée il y a cette exception qui survient; ça doit être lié à "ajoutés dans #24645", mais quel est donc le vrai ticket d'où tirer un patch ?

Fatigue, désolé, c'était #24472 qui contient le travail de départ sur LoggedErrors, à relire en premier donc.

#9

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

  • Suit Development #24472: enregistrer les erreurs sur les conditions dans les workflows ajouté
#10

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

  • Statut changé de Solution proposée à En cours
#11

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

Voici une version plus simple et plus efficace, qui utilise l'enregistrement de l'exception, gagnée dans #24472.

#12

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

  • Statut changé de Solution proposée à Solution validée

J'aurais juste laissé "Template" en minuscule dans "Failed to compute Template", et "Expression" dans "Failed to compute Python Expression".

À part ça, ack.

#13

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

  • Statut changé de Solution validée à Résolu (à déployer)
commit 7d2e14a1f2645a01b1ed76fb52019d4817ba75c2
Author: Thomas NOEL <tnoel@entrouvert.com>
Date:   Tue Jun 19 15:04:19 2018 +0200

    wf/backoffice_fields: log compute errors as functional errors only (#24645)

#14

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