Projet

Général

Profil

Bug #24836

calcul workflow à base d'une source jsonp

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

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

0%

Temps estimé:
Patch proposed:
Oui
Planning:

Description

[2018-06-27 21:00:24] exception caught
Exception:
  type = '<type 'exceptions.AttributeError'>', value = ''NoneType' object has no attribute 'form''

Stack trace (most recent call first):
  File "/usr/lib/python2.7/dist-packages/wcs/fields.py", line 1189, in store_display_value
  1187         real_data_source = data_sources.get_real(self.data_source)
  1188         if real_data_source and real_data_source.get('type') == 'jsonp':
> 1189             display_value = get_request().form.get('f%s_display' % field_id)
  1190             if display_value is None:
  1191                 if not get_session().jsonp_display_values:
     ...
     field_id = 'bo47'
     kwargs = {'url': '[passerelle_url]/csvdatasource/communes-lozere/data?case-insensitive', 'options': [(None, '---')]}
     real_data_source = {'type': 'jsonp', 'value': '[passerelle_url]/csvdatasource/communes-lozere/data?case-insensitive'}
     self = <wcs.fields.ItemField object at 0x7feeb4d13790>
     value = '48005'

...

  File "/usr/lib/python2.7/dist-packages/wcs/wf/backoffice_fields.py", line 115, in perform
   113             if formdef_field.store_display_value:
   114                 display_value = formdef_field.store_display_value(
>  115                         formdata.data, formdef_field.id)
   116                 if display_value:
   117                     formdata.data['%s_display' % formdef_field.id] = display_value

  locals:
     field = {'field_id': 'bo47', 'value': '[installation_var_commune_raw]'}
     formdata = <Reseau-Accueil-Projet-Professionnel 'R\xc3\xa9seau accueil - Projet professionnel - n\xc2\xb017-119' id:119>
     formdef_field = <wcs.fields.ItemField object at 0x7feeb4d13790>
     new_value = '48005'
     self = <wcs.wf.backoffice_fields.SetBackofficeFieldsWorkflowStatusItem object at 0x7feeb5d14f50>
     x = <wcs.fields.FileField object at 0x7feeb4d13250>

Dans un traitement asynchrone (cron), crash parce que pas de get_request(). Pas étudié le workflow pour chercher du sens à tout ça.


Fichiers

Révisions associées

Révision e08f318c (diff)
Ajouté par Frédéric Péters il y a presque 6 ans

misc: don't look for jsonp display value in a cron job (#24836)

Historique

#1

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

Patch pour éviter le crash, ça laissera le champ avec display_value = value mais sur une source de données qu'on ne peut pas interroger (jsonp, exploitable uniquement via le navigateur), on ne peut pas espérer autre chose.

(le vrai taf intéressant est de pouvoir exposer en jsonp des sources de données json)

#2

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

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

Ack

(A l'origine, dans le workflow : une donné de traitement de type liste, avec une datasource de type JSONP. Quand on lui affecte une valeur, il y a vérification versus le datasource, et boum.)

#3

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

  • Statut changé de Solution validée à Résolu (à déployer)
commit e08f318c56d265abf393e23042a6784cb6354a0f
Author: Frédéric Péters <fpeters@entrouvert.com>
Date:   Wed Jun 27 21:16:15 2018 +0200

    misc: don't look for jsonp display value in a cron job (#24836)
#4

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