Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bloc HTML dans un formulaire #338

Open
Splendens opened this issue Apr 24, 2024 · 2 comments
Open

Bloc HTML dans un formulaire #338

Splendens opened this issue Apr 24, 2024 · 2 comments
Assignees
Labels
bug Something isn't working

Comments

@Splendens
Copy link

Bonjour,
J'aimerai ajouter des blocs html, en particulier pour permettre de compartimenter certains formulaires qui peuvent devenir difficilement lisibles lorsqu'il y a beaucoup de champs !

Dans la doc, il y a bien la mention de bloc HTML : https://github.com/PnX-SI/gn_module_monitoring/blob/main/docs/sous_module.md#liste-des-widgets-disponibles , et quand j'en ajoute un, pas de soucis l'affichage du bloc fonctionne bien.

    "h0_bloc_test_html": {
     "type_widget": "html",
      "html": "<br/><b>Test html</b>"
    },

Par contre, la présence de ce widget empêche la validation du formulaire, et j'ai une erreur 500 avec ça dans les logs :

[8622ba2d-6a54-44fe-a4d6-352f9510419a] Exception on /monitorings/object/monittest/site [POST]
Traceback (most recent call last):
  File "/home/geonatureadmin/gn_module_monitoring/backend/gn_module_monitoring/monitoring/repositories.py", line 109, in create_or_update
    self.populate(post_data)
  File "/home/geonatureadmin/gn_module_monitoring/backend/gn_module_monitoring/monitoring/serializer.py", line 166, in populate
    self.unflatten_specific_properties(properties)
  File "/home/geonatureadmin/gn_module_monitoring/backend/gn_module_monitoring/monitoring/serializer.py", line 53, in unflatten_specific_properties
    val = properties.pop(attribut_name)
KeyError: 'h0_bloc_test_html'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/flask/app.py", line 1823, in full_dispatch_request
    rv = self.dispatch_request()
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/flask/app.py", line 1799, in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
  File "/home/geonatureadmin/geonature/backend/geonature/core/gn_permissions/decorators.py", line 62, in decorated_view
    return view_func(*args, **kwargs)
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/utils_flask_sqla/response.py", line 19, in _json_resp
    res = fn(*args, **kwargs)
  File "/home/geonatureadmin/gn_module_monitoring/backend/gn_module_monitoring/routes/monitoring.py", line 172, in create_object_api
    return create_or_update_object_api(module_code, object_type, id)
  File "/home/geonatureadmin/gn_module_monitoring/backend/gn_module_monitoring/routes/monitoring.py", line 139, in create_or_update_object_api
    monitoring_definitions.monitoring_object_instance(module_code, object_type, id)
  File "/home/geonatureadmin/gn_module_monitoring/backend/gn_module_monitoring/monitoring/repositories.py", line 122, in create_or_update
    raise GeoNatureError("MONITORING: create_or_update {} : {}".format(self, str(e)))
geonature.utils.errors.GeoNatureError: MONITORING: create_or_update monitoringobject monittest, site, None : 'h0_bloc_test_html'
[2024-04-24 11:08:10 +0000] [999693] [ERROR] Exception on /monitorings/object/monittest/site [POST]
Traceback (most recent call last):
  File "/home/geonatureadmin/gn_module_monitoring/backend/gn_module_monitoring/monitoring/repositories.py", line 109, in create_or_update
    self.populate(post_data)
  File "/home/geonatureadmin/gn_module_monitoring/backend/gn_module_monitoring/monitoring/serializer.py", line 166, in populate
    self.unflatten_specific_properties(properties)
  File "/home/geonatureadmin/gn_module_monitoring/backend/gn_module_monitoring/monitoring/serializer.py", line 53, in unflatten_specific_properties
    val = properties.pop(attribut_name)
KeyError: 'h0_bloc_test_html'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/flask/app.py", line 1823, in full_dispatch_request
    rv = self.dispatch_request()
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/flask/app.py", line 1799, in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
  File "/home/geonatureadmin/geonature/backend/geonature/core/gn_permissions/decorators.py", line 62, in decorated_view
    return view_func(*args, **kwargs)
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.9/site-packages/utils_flask_sqla/response.py", line 19, in _json_resp
    res = fn(*args, **kwargs)
  File "/home/geonatureadmin/gn_module_monitoring/backend/gn_module_monitoring/routes/monitoring.py", line 172, in create_object_api
    return create_or_update_object_api(module_code, object_type, id)
  File "/home/geonatureadmin/gn_module_monitoring/backend/gn_module_monitoring/routes/monitoring.py", line 139, in create_or_update_object_api
    monitoring_definitions.monitoring_object_instance(module_code, object_type, id)
  File "/home/geonatureadmin/gn_module_monitoring/backend/gn_module_monitoring/monitoring/repositories.py", line 122, in create_or_update
    raise GeoNatureError("MONITORING: create_or_update {} : {}".format(self, str(e)))
geonature.utils.errors.GeoNatureError: MONITORING: create_or_update monitoringobject monittest, site, None : 'h0_bloc_test_html'

Ce widget est bien disponible ? Ou bien il y a quelque chose que j'ai raté dans sa déclaration ?

Merci d'avance !

@TheoLechemia TheoLechemia added the bug Something isn't working label Jul 25, 2024
@marcantoinedupre
Copy link
Collaborator

Je viens de le tester avec la future version 1.0.0 de gn-monitorings (branche develop). Ça fonctionne, je peux valider le formulaire sans erreur (testé pour Groupe, Site, Visite et Observation).

La seule petite anomalie est que pour positionner le bloc HTML dans le formulaire il faut le placer dans display_properties il apparaît alors dans la liste des champs sur le détail d'une entité, soit avec son libellé uniquement, soit une ligne vide si pas de libellé. Ce comportement ne me semble pas utile ou souhaitable.

Capture d’écran du 2024-12-13 10-13-23

Capture d’écran du 2024-12-13 10-13-42

@camillemonchicourt
Copy link
Member

En effet les champs additionnels de type HTML ne devraient être affichés que dans les formulaires, pas dans les fiches detail.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

5 participants