PnX-SI / GeoNature

Application de saisie et de synthèse des observations faune et flore
GNU General Public License v3.0
100 stars 102 forks source link

[SYNTHESE - Custum views] label avec apostrophe non fonctionnel #3121

Closed gildeluermoz closed 2 months ago

gildeluermoz commented 2 months ago

Version 2.14.2

Description du bug En configurant une nouvelle vue pour exporter les données de la synthèse, cette nouvelle vue n'apparaissait pas. Après avoir vérifié beaucoup de choses et en creusant j'ai pu tester que si un apostrophe figure dans le label, l'export n'est pas proposé.

Comportement attendu Permettre l'usage des apostrophes dans le label

Comment reproduire Voici un exemple de config fonctionnel avec des ENS

# Vues d'export personnalisées
    EXPORT_OBSERVATIONS_CUSTOM_VIEWS = [
        {
            label = "Exporter les observations avec le nom des ENS", 
            view_name = "gn_synthes.v_export_synthese_with_ens_name"
        }    
    ]

Et un exemple non fonctionnel avec de l'ENS

# Vues d'export personnalisées
    EXPORT_OBSERVATIONS_CUSTOM_VIEWS = [
        {
            label = "Exporter les observations avec le nom de l'ENS", 
            view_name = "gn_synthes.v_export_synthese_with_ens_name"
        }    
    ]

Logs Aucune erreur ne remonte dans les logs.

jacquesfize commented 2 months ago

Salut @gildeluermoz,

Malheureusement, c'est un problème bien connu ! https://github.com/PnX-SI/GeoNature/issues/3081 :) Le problème vient du parser de fichier .toml qui n'aime pas les apostrophes dans ce cas spécifique (liste de dict/objetJSON).

La parade suivante devrait pouvoir t'aider :

[[SYNTHESE.EXPORT_OBSERVATIONS_CUSTOM_VIEWS]]
    label = "Exporter les observations avec le nom de l'ENS"
    view_name = "gn_synthese.v_export_synthese_with_ens_name"

Le parser tomllib inclus dans les version de Python>=3.11 règle se problème. Du coup, on doit attendre l'abandon du support de python 3.9 dans GeoNature pour pouvoir utiliser la lib.

gildeluermoz commented 2 months ago

Ok, merci Jacques pour ces précisions et pour la parade. Donc mon cas, utiliser avec le nom de l'ENS ou avec le nom des ENS ne change pas vraiment le sens du label. Je vais donc laisser comme ça. Mais je retiens l'astuce et l'explication :+1: