Compare commits

...

7 Commits

Author SHA1 Message Date
Colin Maudry 68a87985c7 Bump version number 2.5.1 2026-01-29 21:48:35 +01:00
Colin Maudry 776aa271f1 Correction de la recherche #67 2026-01-29 21:48:13 +01:00
Colin Maudry fe7277ce26 Merge branch 'hotfix/2.5.1' 2026-01-29 21:26:57 +01:00
Colin Maudry b68fa3872f Changelog 2.5.1 2026-01-29 21:26:54 +01:00
Colin Maudry b7ff04c69c Correction de l'affichage de la distance 2026-01-29 21:26:16 +01:00
Colin Maudry ccee27baee Correction de la couleur des bordures dans statistiques 2026-01-29 21:19:36 +01:00
Colin Maudry 47e17c48e7 Bugs de créations de noms acheteur/titulaire #67 #68 2026-01-29 21:16:35 +01:00
9 changed files with 18 additions and 14 deletions
+4
View File
@@ -1,3 +1,7 @@
##### 2.5.1 (29 janvier 2026)
- Mise en production un peu hâtive ([#67](https://github.com/ColinMaudry/decp.info/issues/67), [#68](https://github.com/ColinMaudry/decp.info/issues/68))
#### 2.5.0 (29 janvier 2026)
- Refonte graphique et amélioration des textes d'aide
+1 -1
View File
@@ -1,6 +1,6 @@
# decp.info
> v2.5.0
> v2.5.1
> Outil d'exploration et de téléchargement des données essentielles de la commande publique.
=> [decp.info](https://decp.info)
+1 -1
View File
@@ -1,7 +1,7 @@
[project]
name = "decp.info"
description = "Interface d'exploration et d'analyse des marchés publics français."
version = "2.5.0"
version = "2.5.1"
requires-python = ">= 3.10"
authors = [
{ name = "Colin Maudry", email = "colin@colmo.tech" }
-3
View File
@@ -91,9 +91,6 @@ def get_yearly_statistics(statistics, today_str) -> html.Div:
page_size=10,
sort_action="none",
filter_action="none",
style_cell={
"border": "solid 1px rgb(179, 56, 33)",
},
style_header={
"border": "solid 1px rgb(179, 56, 33)",
"backgroundColor": "rgb(179, 56, 33)",
+4 -4
View File
@@ -21,11 +21,11 @@ from src.utils import (
def get_title(acheteur_id: str = None) -> str:
acheteur_nom = (
df_acheteurs.filter(pl.col("acheteur_id") == acheteur_id)
.select("acheteur_nom")
.item()
df_acheteur = df_acheteurs.filter(pl.col("acheteur_id") == acheteur_id).select(
"acheteur_nom"
)
acheteur_nom = df_acheteur.item(0, 0)
return f"Marchés publics attribués par {acheteur_nom} | decp.info"
+3 -1
View File
@@ -22,7 +22,9 @@ def make_org_nom_verbe(org_type, org_id) -> tuple:
raise ValueError
org_nom = (
df.filter(pl.col(f"{org_type}_id") == org_id).select(f"{org_type}_nom").item()
df.filter(pl.col(f"{org_type}_id") == org_id)
.select(f"{org_type}_nom")
.item(0, 0)
)
return org_nom, verbe
+2 -2
View File
@@ -199,8 +199,8 @@ def update_marche_info(marche, titulaires):
for titulaire in titulaires:
if titulaire["titulaire_typeIdentifiant"] == "SIRET":
categorie = titulaire.get("titulaire_categorie", "")
if titulaire.get("titulaire_categorie"):
distance = str(titulaire.get("titulaire_categorie")) + " km"
if titulaire.get("titulaire_distance"):
distance = str(titulaire.get("titulaire_distance")) + " km"
else:
distance = ""
+1 -1
View File
@@ -24,7 +24,7 @@ def get_title(titulaire_id: str = None) -> str:
titulaire_nom = (
df_titulaires.filter(pl.col("titulaire_id") == titulaire_id)
.select("titulaire_nom")
.item()
.item(0, 0)
)
return f"Marchés publics remportés par {titulaire_nom} | decp.info"
+2 -1
View File
@@ -551,7 +551,6 @@ def search_org(dff: pl.DataFrame, query: str, org_type: str) -> pl.DataFrame:
dff = (
dff.with_columns(token_matches + [match_score])
.filter(pl.col("match_score") == len(tokens))
.sort("Marchés", descending=True)
.drop([f"token_{token}" for token in tokens])
)
@@ -567,6 +566,8 @@ def search_org(dff: pl.DataFrame, query: str, org_type: str) -> pl.DataFrame:
)
dff = dff.select(f"{org_type}_id", f"{org_type}_nom", "Département", "Marchés")
dff = dff.group_by(f"{org_type}_id", f"{org_type}_nom", "Département").sum()
dff = dff.sort("Marchés", descending=True)
return dff