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

Dysfonctionnement de l'enchaînement des saisies dans le formulaire observations #396

Open
gildeluermoz opened this issue Dec 17, 2024 · 0 comments

Comments

@gildeluermoz
Copy link

Version : GN 2.15.0 monitoring 1.0.0

l'enchaînement des saisies des observations ne fonctionne pas et provoque un comportement dont il n'est pas facile de sortir.

pb 1 : cet enchaînement provoque une erreur dès le 2ème enchaînement. En creusant les logs, je vois que l'id_base_visit n'est pas transmis lors de la seconde saisie

Traceback (most recent call last):
  File "/home/rosadmin/geonature/backend/venv/lib/python3.11/site-packages/flask/app.py", line 917, in full_dispatch_request
    rv = self.dispatch_request()
         ^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/rosadmin/geonature/backend/venv/lib/python3.11/site-packages/flask/app.py", line 902, in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)  # type: ignore[no-any-return]
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/rosadmin/geonature/backend/geonature/core/gn_permissions/decorators.py", line 62, in decorated_view
    return view_func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/rosadmin/geonature/backend/venv/lib/python3.11/site-packages/utils_flask_sqla/response.py", line 19, in _json_resp
    res = fn(*args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^
  File "/home/rosadmin/gn_module_monitoring/backend/gn_module_monitoring/routes/monitoring.py", line 233, in create_object_api
    return create_or_update_object_api(module_code, object_type, id)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/rosadmin/gn_module_monitoring/backend/gn_module_monitoring/routes/monitoring.py", line 159, in create_or_update_object_api
    .create_or_update(post_data)
     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/rosadmin/gn_module_monitoring/backend/gn_module_monitoring/monitoring/repositories.py", line 121, in create_or_update
    raise GeoNatureError("MONITORING: create_or_update {} : {}".format(self, str(e)))
geonature.utils.errors.GeoNatureError: MONITORING: create_or_update monitoringobject PEDOiseaux, observation, None : (psycopg2.errors.NotNullViolation) ERREUR:  une valeur NULL viole la contrainte NOT NULL de la colonne « id_base_visit » dans la relation « t_observations »
DETAIL:  La ligne en échec contient (223385, null, 4137, test enchainement 4, 9ccca52b-db87-434d-aeb3-cdab01da4daa, null, null, 4).

[SQL: INSERT INTO gn_monitoring.t_observations (id_base_visit, id_digitiser, cd_nom, comments, uuid_observation) VALUES (%(id_base_visit)s, %(id_digitiser)s, %(cd_nom)s, %(comments)s, (SELECT uuid_generate_v4() AS uuid_generate_v4_1)) RETURNING gn_monitoring.t_observations.id_observation]
[parameters: {'id_base_visit': None, 'id_digitiser': 4, 'cd_nom': 4137, 'comments': 'test enchainement 4'}]
(Background on this error at: https://sqlalche.me/e/14/gkpj)

pb 2 : ce comportement d'enchaînement de la saisie n'est pas désactivé ensuite dans la navigation du module et si tu veux créer une visite, les 2 boutons "valider" et "valider puis saisir des observations" sont remplacés par un seul bouton "valider et enchaîner les saisies". Si tu cliques sur ce bouton, ça valide la visite et te représente le formulaire pour saisir une nouvelle visite. Mais il n'y a pas de bouton qui permet de désactiver le comportement de l'enchaînement des saisies dans le formulaire des visites. L'enchaînement des saisies activé dans observations ne devrait pas concerner les visites. A priori pas trop d'intérêt de pouvoir enchainer la saisie de plusieurs visites.

On peut reproduire cette erreur sur le serveur de demo :

Internal Server Error
The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.
Requête : 33aabbac-f7f8-485a-b4b6-60819f9e2e16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant