Possibilité dans les champs non-numériques de filtrer le texte selon son début ou sa fin (text* et *text) #42

This commit is contained in:
Colin Maudry
2026-01-21 18:04:33 +01:00
parent dd52bd5158
commit 267e2e15f8
2 changed files with 18 additions and 3 deletions
+6
View File
@@ -1,3 +1,9 @@
#### 2.4.0
- Site à peu près utilisable sur petit écran (smartphone) ([#63](https://github.com/ColinMaudry/decp.info/issues/63))
- Amélioration du référencement Web (sitemap, titres, descriptions) ([#50](https://github.com/ColinMaudry/decp.info/issues/50))
- Possibilité dans les champs non-numériques de filtrer le texte selon son début ou sa fin (`text*` et `*text`)
##### 2.3.1 (16 janvier 2026)
- Les champs absents du [schéma](https://www.data.gouv.fr/datasets/donnees-essentielles-de-la-commande-publique-consolidees-format-tabulaire?resource_id=9a4144c0-ee44-4dec-bee5-bbef38191d9a) sont ignorés pour éviter les erreurs
+12 -3
View File
@@ -308,9 +308,18 @@ def filter_table_data(lff: pl.LazyFrame, filter_query: str) -> pl.LazyFrame:
elif operator == "contains":
if col_type in ["String", "Date"]:
filter_value = filter_value.strip('"')
lff = lff.filter(
pl.col(col_name).str.contains("(?i)" + filter_value)
)
if filter_value.endswith("*"):
lff = lff.filter(
pl.col(col_name).str.starts_with(filter_value[:-1])
)
elif filter_value.startswith("*"):
lff = lff.filter(
pl.col(col_name).str.ends_with(filter_value[1:])
)
else:
lff = lff.filter(
pl.col(col_name).str.contains("(?i)" + filter_value)
)
elif col_type.startswith("Int") or col_type.startswith("Float"):
lff = lff.filter(pl.col(col_name) == filter_value)
else: