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

Limiter le nombre de character uniquement pour certains champs #3844

Open
TheoLechemia opened this issue Nov 29, 2023 · 6 comments
Open

Limiter le nombre de character uniquement pour certains champs #3844

TheoLechemia opened this issue Nov 29, 2023 · 6 comments

Comments

@TheoLechemia
Copy link
Contributor

TheoLechemia commented Nov 29, 2023

Bonjour,
Pour les besoins d'évolution du module "touristic event" (#3587), on aurait besoin de limiter le nombre de caractères de certains champs (notamment dû à des contraintes d'autres outils qui moissonnent nos données - Apidae)
Le paramètre #2901 (comment) permet de limiter ce nombre globalement. On proposerait de le faire évoluer pour qu'il puisse prendre une paramètre le model et le champs auquel il s'applique.
ça pourrait donner ça :

MAPENTITY_CONFIG['MAX_CHARACTERS'] = {
   'trek' : [{'field': 'mon_champs', 'value': 50}, {'field': 'mon_champs_bis', 'value': 70}],
   'touristic_event' : [{'field': 'mon_champs', 'value': 50}, {'field': 'mon_champs_bid', 'value': 70}]
}

Qu'est ce que vous en pensez ?

@camillemonchicourt
Copy link
Member

Oui cela me semble bien.
Le fait de pouvoir limiter la longueur de certains champs est un besoin partagé et souvent remonté, mais la solution actuellement mise en place avec un seul paramètre globale est inutilisable car elle s'applique à tous les champs texte de Geotrek-admin dans tous les modules.

@AudreyRemy
Copy link

Bonjour
Je ne suis pas experte pour donner mon avis mais en amont est-il possible de vérifier qu'actuellement les champs déjà saisis ne dépassent pas le nombre de caractères que vous allez autoriser ?

@marcantoinedupre
Copy link
Contributor

Ça a l'air bien.
Je pense que ce serait pertinent de faire un petit inventaire de comment les modèles et leurs attributs sont désignés dans les autres paramètres configurables (j'ai COLUMNS_LIST en tête). Dans l'idée de faire une convention de nommage cohérente.

@TheoLechemia
Copy link
Contributor Author

Ok je vais regarder.
On discutait également du fait qu'actuellement la limite est seulement indicative et non bloquante. La vérification est fait côté frontend avec l'affichage d'un petit bandeau rouge lorsque la limite est dépassé. On se demandait s'il était judicieux de renforcer cette vérification côté backend et de bloquer lorsque la limite est dépassée.
Je vais dans un premier temps proposer une évolution uniquement en faisant évoluer le mécanisme existant côté frontend

TheoLechemia added a commit to TheoLechemia/django-mapentity that referenced this issue Dec 12, 2023
TheoLechemia added a commit to TheoLechemia/django-mapentity that referenced this issue Dec 20, 2023
TheoLechemia added a commit to TheoLechemia/django-mapentity that referenced this issue Dec 20, 2023
TheoLechemia added a commit to TheoLechemia/django-mapentity that referenced this issue Dec 21, 2023
TheoLechemia added a commit to TheoLechemia/django-mapentity that referenced this issue Feb 26, 2024
@camillemonchicourt
Copy link
Member

La version 2.102.2 de Geotrek-admin passe à Django-Mapentity 8.7.0.
Celle-ci inclut les évolutions de le configuration du nombre maximum de caractères qui peut être définie champs par champs : makinacorpus/django-mapentity#282

Le nouveau paramètre MAX_CHARACTERS_BY_FIELD est désormais à utiliser et privilégier en remplacement du paramètre MAX_CHARACTERS (déprécié).

Il est défini par module, champs par champs (et langue par langue). Exemple :

MAPENTITY_CONFIG['MAX_CHARACTERS_BY_FIELD'] = { 
        "tourism_touristicevent": [{'field': 'description_teaser_fr', 'value': 50}, {'field': 'accessibility_fr', 'value': 25}],
        "trekking_trek": [{'field': 'description_teaser_fr', 'value': 150}],
    }

Cela ne bloque pas la saisie au-delà du nombre de caractères défini, mais cela l'affiche dans le texte d'aide du champs, au niveau de son compteur et passe le champs en rouge quand on dépasse le nombre défini :

image

@camillemonchicourt
Copy link
Member

Il me semble que cette fonctionnalité est OK, mais qu'il ne resterait plus qu'à remplacer le paramètre actuel par défaut MAX_CHARACTERS (https://github.com/GeotrekCE/Geotrek-admin/blob/master/geotrek/settings/base.py#L421) désormais déprécié par le nouveau MAX_CHARACTERS_BY_FIELD dans le fichier base.py

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants