general: store/display error context stack (#74791) #1219
Loading…
Reference in New Issue
No description provided.
Delete Branch "wip/74791-logged-error-condition-context"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
d040044cf7
toeb1fd751c5
eb1fd751c5
to128b2c07a4
3c3c8a7d82
to98c9c2611b
98c9c2611b
to7d456247f2
7d456247f2
tod39209a125
ee718ae982
to0860081b91
0860081b91
to9ec09a29b6
b658a0640e
to7b752274e4
017ca8061e
toeb431e869b
4f329e639e
to8724341116
5f78f4f447
to66639f8d26
66639f8d26
to6fe1b41d0a
6fe1b41d0a
to6dbfc4e4d3
b9068ac03a
tocb38ef28e0
cb38ef28e0
tod0ab915eae
d0ab915eae
to4dd25715f2
4dd25715f2
to3b6161be9b
3b6161be9b
to755d21022a
@ -3370,0 +3369,4 @@
assert error.context == {
'stack': [
{
'condition': '2//0',
Plutôt que juste enregistrer l'expression en erreur on empile des contextes. (ça n'est pas encore exploité au-delà des conditions, mais ça pourra être étendu pour avoir dans la pile l'action de workflow puis sa condition puis l'appel webservice repris dedans, par exemple).
@ -1543,0 +1572,4 @@
# condition error and wscall error
assert pub.loggederror_class.count() == 2
wscall_error, condition_error = pub.loggederror_class.select(order_by='id')
Autre évolution possible, pour le moment ça peut se trouver à enregistrer la même situation à plusieurs niveaux, il y aurait moyen par la suite de marquer l'erreur comme déjà enregistrée, pour ne plus avoir qu'une erreur logguée.
@ -30,1 +30,4 @@
class ErrorFrame:
def __init__(self, context):
self.context = context or {}
C'est juste un objet pour le gabarit.
@ -246,0 +252,4 @@
def get_admin_url(self):
if not getattr(self, '_formdef', None):
return ''
return self._formdef.get_field_admin_url(field=self)
Pour permettre comme demandé dans le ticket d'avoir un lien vers le champ en question, ajout d'un get_admin_url() sur les champs.
@ -1957,2 +1957,4 @@
except EOFError:
pass # old format
for field in o.fields or []:
field._formdef = o # keep formdef reference
Pour avoir le get_admin_url sur les champs il faut avoir dans ceux-ci une référence au formdef.
@ -3052,1 +3052,3 @@
return self.parent.get_admin_url() + 'items/%s/' % self.id
if self.parent:
return self.parent.get_admin_url() + 'items/%s/' % self.id
return ''
Ça arrive dans un test que le self.parent n'existe pas, on fait sans.
WIP: general: store/display error context stack (#74791)to general: store/display error context stack (#74791)755d21022a
to7383ad1798