Bug #75154
cron et vue personnalisée filtrée sur l'usager connecté
Début:
06 mars 2023
Echéance:
% réalisé:
0%
Temps estimé:
Patch proposed:
Non
Planning:
Non
Description
Exception: type = '<class 'AttributeError'>', value = ''NoneType' object has no attribute 'is_in_backoffice'' Stack trace (most recent call first): File "/usr/lib/python3/dist-packages/wcs/backoffice/management.py", line 2034, in get_view_criterias 2032 if filter_field_value == '__current__': 2033 context_vars = get_publisher().substitutions.get_context_variables(mode='lazy') > 2034 if get_request().is_in_backoffice() and context_vars.get('form'): 2035 # in case of backoffice submission/edition, take user associated 2036 # with the form being submitted/edited, if any. locals: ... filter_field = <wcs.backoffice.management.FakeField object at 0x7f166a2c3be0> filter_field_key = 'filter-user-value' filter_field_operator = 'eq' filter_field_operator_key = 'filter-user-operator' filter_field_value = '__current__' filters_dict = {'filter-user': 'on', 'filter-user-value': '__current__'} File "/usr/lib/python3/dist-packages/wcs/custom_views.py", line 184, in get_criterias 182 183 form_page = FormPage(formdef=formdef, view=self, update_breadcrumbs=False) > 184 criterias = form_page.get_view_criterias( 185 custom_view=self, 186 compile_templates=compile_templates, locals: FormPage = <class 'wcs.backoffice.management.FormPage'> compile_templates = True form_page = <wcs.backoffice.management.FormPage object at 0x7f166a2c35b0> formdef = <CardDef 'BB_Enfants' id:17> keep_templates = False self = <CustomView id:12> File "/usr/lib/python3/dist-packages/wcs/carddef.py", line 222, in get_data_source_items 220 order_by = carddef.get_order_by(custom_view.order_by) 221 if not get_by_id: > 222 criterias.extend(custom_view.get_criterias(formdef=carddef, compile_templates=True)) 223 224 if custom_view: locals: carddef = <CardDef 'BB_Enfants' id:17> cls = <class 'wcs.carddef.CardDef'> criterias = [<StrictNotEqual (attribute: 'status', value: 'draft')>, <Null (attribute: 'anonymised')>] custom_view = <CustomView id:12> data_source_id = 'carddef:bb_enfants:vue_complete' digest_key = 'default' get_by_id = None get_by_text = None limit = None order_by = '-receipt_time' parts = ['carddef', 'bb_enfants', 'vue_complete'] query = None with_edit_related_url = False File "/usr/lib/python3/dist-packages/wcs/data_sources.py", line 396, in _get_structured_items 394 from wcs.carddef import CardDef 395 > 396 return CardDef.get_data_source_items(data_source['type']) 397 398 cache_duration = 0 locals: CardDef = <class 'wcs.carddef.CardDef'> data_source = {'type': 'carddef:bb_enfants:vue_complete'} mode = None raise_on_error = False File "/usr/lib/python3/dist-packages/wcs/data_sources.py", line 385, in get_structured_items 383 384 def get_structured_items(data_source, mode=None, include_disabled=True, raise_on_error=False): > 385 items = _get_structured_items(data_source, mode=mode, raise_on_error=raise_on_error) 386 if not include_disabled: 387 items = [i for i in items if not i.get('disabled')] locals: data_source = {'type': 'carddef:bb_enfants:vue_complete'} include_disabled = False mode = None raise_on_error = False File "/usr/lib/python3/dist-packages/wcs/data_sources.py", line 238, in get_items 236 237 def get_items(data_source, include_disabled=False, mode=None): > 238 structured_items = get_structured_items(data_source, mode=mode, include_disabled=include_disabled) 239 tupled_items = [] 240 for item in structured_items: locals: data_source = {'type': 'carddef:bb_enfants:vue_complete'} include_disabled = False mode = None File "/usr/lib/python3/dist-packages/wcs/fields.py", line 2619, in get_options 2617 if self._cached_data_source: 2618 return self._cached_data_source > 2619 self._cached_data_source = [x[:3] for x in data_sources.get_items(self.data_source)] 2620 return self._cached_data_source[:] 2621 elif self.items: locals: self = <ItemsField 2 'Enfants rattachés'> File "/usr/lib/python3/dist-packages/wcs/fields.py", line 2806, in store_display_value 2804 2805 def store_display_value(self, data, field_id, raise_on_error=False): > 2806 options = self.get_options() 2807 if not options: 2808 return '' locals: ... field_id = '2' raise_on_error = False self = <ItemsField 2 'Enfants rattachés'> File "/usr/lib/python3/dist-packages/wcs/fields.py", line 678, in set_value 676 data['%s' % self.id] = value 677 if self.store_display_value: > 678 display_value = self.store_display_value(data, self.id) 679 if raise_on_error and display_value is None: 680 raise SetValueError('a datasource is unavailable (field id: %s)' % self.id) locals: ... File "/usr/lib/python3/dist-packages/wcs/formdata.py", line 1298, in anonymise 1296 for field in self.formdef.get_all_fields(): 1297 if field.anonymise: > 1298 field.set_value(self.data, None) 1299 1300 self.anonymised = localtime() locals: field = <ItemsField 2 'Enfants rattachés'> self = <_wcs_Bb_Je-Nous-Inscris-A-Un-Evenement 'BB_Je nous inscris à un événement - n°45-2' id:2>
(il y a aussi éventuellement se dire qu'un bout peut être court-circuité parce qu'aller chercher les options possibles alors qu'on met à None, c'est inutile).
Révisions associées
misc: do not get items options when setting to empty value (#75154)
Historique
Mis à jour par Robot Gitea il y a environ un an
- Statut changé de Nouveau à En cours
- Assigné à mis à Frédéric Péters
Frédéric Péters (fpeters) a ouvert une pull request sur Gitea concernant cette demande :
- URL : https://git.entrouvert.org/entrouvert/wcs/pulls/150
- Titre : WIP: cron et vue personnalisée filtrée sur l'usager connecté (#75154)
- Modifications : https://git.entrouvert.org/entrouvert/wcs/pulls/150/files
Mis à jour par Robot Gitea il y a environ un an
- Statut changé de Solution proposée à Solution validée
Lauréline Guérin (lguerin) a approuvé une pull request sur Gitea concernant cette demande :
Mis à jour par Robot Gitea il y a environ un an
- Statut changé de Solution validée à Résolu (à déployer)
Frédéric Péters (fpeters) a mergé une pull request sur Gitea concernant cette demande :
- URL : https://git.entrouvert.org/entrouvert/wcs/pulls/150
- Titre : cron et vue personnalisée filtrée sur l'usager connecté (#75154)
- Modifications : https://git.entrouvert.org/entrouvert/wcs/pulls/150/files
Mis à jour par Transition automatique il y a environ un an
- Statut changé de Résolu (à déployer) à Solution déployée
misc: avoid crash when anonymising on list filtered on connected user (#75154)