Skip to content

Widget municipalities dans group_site #607

Description

@Splendens

Version

GeoNature 2.16.4 / Module Monitoring 1.2.6


Description

Deux problèmes liés au widget municipalities dans un formulaire de groupe de sites.

Problème 1 : multiple: false non pris en compte

J'ai la configuration suivante dans le JSON du groupe de sites :

json"commune": {
  "type_widget": "municipalities",
  "attribut_label": "Renseigner les communes du site parent",
  "value_field_name": "area_code",
  "type_util": "area",
  "multiple": false,
  "required": true
}

Malgré "multiple": false, le widget permet la sélection multiple et stocke la valeur sous forme de tableau en base : ["44001"] au lieu de "44001".


Problème 2 : Erreur SQL lors du filtrage par commune

Image

Sur la page listant les groupes de sites, le filtre par nom de commune provoque une erreur SQL car le backend tente de caster la valeur JSONB ["22145"] (tableau) en INTEGER :

sql :  sqlalchemy.exc.DataError: (psycopg2.errors.InvalidTextRepresentation) ERREUR:  syntaxe en entrée invalide pour le type integer : « ["22145"] »
[SQL: SELECT (SELECT count(gn_monitoring.t_site_[complements.id](http://complements.id)_sites_group/) AS count_1 
FROM gn_monitoring.t_base_sites JOIN gn_monitoring.t_site_complements ON gn_monitoring.t_base_[sites.id](http://sites.id)_base_site/ = gn_monitoring.t_site_[complements.id](http://complements.id)_base_site/ 
WHERE gn_monitoring.t_site_[complements.id](http://complements.id)_sites_group/ = gn_monitoring.t_sites_[groups.id](http://groups.id)_sites_group/) AS anon_1, (SELECT ST_AsGeoJSON(ST_ConvexHull(ST_Collect(gn_monitoring.t_base_sites.geom))) AS "ST_AsGeoJSON_1" 
FROM gn_monitoring.t_base_sites JOIN gn_monitoring.t_site_complements ON gn_monitoring.t_base_[sites.id](http://sites.id)_base_site/ = gn_monitoring.t_site_[complements.id](http://complements.id)_base_site/ 
WHERE gn_monitoring.t_site_[complements.id](http://complements.id)_sites_group/ = gn_monitoring.t_sites_[groups.id](http://groups.id)_sites_group/) AS anon_2, gn_monitoring.t_sites_[groups.id](http://groups.id)_sites_group/, gn_monitoring.t_sites_[groups.id](http://groups.id)_digitiser/, gn_monitoring.t_sites_groups.uuid_sites_group, gn_monitoring.t_sites_groups.sites_group_name, gn_monitoring.t_sites_groups.sites_group_code, gn_monitoring.t_sites_groups.sites_group_description, gn_monitoring.t_sites_groups.comments, ST_AsEWKB(gn_monitoring.t_sites_groups.geom) AS geom, gn_monitoring.t_sites_[groups.data](http://groups.data/), gn_monitoring.t_sites_groups.altitude_min, gn_monitoring.t_sites_groups.altitude_max 
FROM gn_monitoring.t_sites_groups JOIN ref_geo.l_areas AS l_areas_1 ON CAST((gn_monitoring.t_sites_[groups.data](http://groups.data/) ->> %(data_1)s) AS INTEGER) = l_areas_[1.id](http://1.id)_area/ 
WHERE (EXISTS (SELECT 1 
FROM gn_monitoring.cor_sites_group_module, gn_commons.t_modules JOIN gn_monitoring.t_module_complements ON gn_commons.t_[modules.id](http://modules.id)_module/ = gn_monitoring.t_module_[complements.id](http://complements.id)_module/ 
WHERE gn_monitoring.t_sites_[groups.id](http://groups.id)_sites_group/ = gn_monitoring.cor_sites_group_[module.id](http://module.id)_sites_group/ AND gn_commons.t_[modules.id](http://modules.id)_module/ = gn_monitoring.cor_sites_group_[module.id](http://module.id)_module/ AND gn_commons.t_modules.module_code = %(module_code_1)s)) AND true AND l_areas_1.area_name ILIKE %(area_name_1)s 
 LIMIT %(param_1)s OFFSET %(param_2)s]
[parameters: {'data_1': 'commune', 'module_code_1': 'comptagechiros22', 'area_name_1': 'Dinan%', 'param_1': 10, 'param_2': 0}]
(Background on this error at: https://sqlalche.me/e/14/9h9h)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions