From 6e37e59c4cc614f29d94841ea115b5f4e32272cd Mon Sep 17 00:00:00 2001 From: Colin Maudry Date: Mon, 18 Aug 2025 12:26:26 +0200 Subject: [PATCH] =?UTF-8?q?Gestion=20des=20filtres=20num=C3=A9riques=20=20#17?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/home.py | 6 +++--- src/utils.py | 6 +++++- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/pages/home.py b/src/pages/home.py index 8cbe0e4..4edbf8d 100644 --- a/src/pages/home.py +++ b/src/pages/home.py @@ -99,13 +99,13 @@ layout = [ Vous pouvez appliquer un filtre pour chaque colonne en entrant du texte sous le nom de la colonne, puis en tapant sur `Entrée`. - Champs textuels : la recherche est insensible à la casse (majuscules/minuscules). - - Champs numériques : possibilité d'ajouter < ou > devant le chiffre recherché pour chercher des valeurs inférieures ou supérieur. + - Champs numériques : vous pouvez soit taper un nombre pour trouver les valeurs égales, soit le précéder de > ou < pour filtrer les valeurs supérieures ou inférieures. - Vous pouvez filtrer plusieurs colonnes à la fois. Vos filtres sont perdus quand vous rafraîchissez la page. + Vous pouvez filtrer plusieurs colonnes à la fois. Vos filtres sont remis à zéro quand vous rafraîchissez la page. **Télécharger le résultat** - Vous pouvez télécharger le résultat de vos filtres en cliquant sur Télécharger au format Excel. + Vous pouvez télécharger le résultat de vos filtres et tris, pour les colonnes affichées, en cliquant sur Télécharger au format Excel. Si vous téléchargez un volume important de données, il se peut que vous attendiez quelques minutes avant le début du téléchargement. """ diff --git a/src/utils.py b/src/utils.py index a235e4a..2aee276 100644 --- a/src/utils.py +++ b/src/utils.py @@ -12,6 +12,8 @@ load_dotenv() operators = [ ["s<", "<"], ["s>", ">"], + ["i<", "<"], + ["i>", ">"], ["icontains", "contains"], ] @@ -31,6 +33,7 @@ def split_filter_part(filter_part): name_part = name_part.strip() value = value_part.strip() name = name_part[name_part.find("{") + 1 : name_part.rfind("}")] + print("=>", name, operator_group[1], value) return name, operator_group[1], value @@ -105,8 +108,9 @@ def get_decp_data() -> pl.LazyFrame: df: pl.DataFrame = pl.read_parquet(os.getenv("DATA_FILE_PARQUET_PATH")) lff: pl.LazyFrame = df.lazy() + # Remplacement des valeurs numériques par des chaînes de caractères - lff = numbers_to_strings(lff) + # lff = numbers_to_strings(lff) # Tri des marchés par date de notification lff = lff.sort(by=["datePublicationDonnees"], descending=True, nulls_last=True)