Réarrangements résultats #58

This commit is contained in:
Colin Maudry
2025-11-12 14:54:12 +01:00
parent 8637915eb2
commit 459ca6a846
3 changed files with 51 additions and 19 deletions
+12 -5
View File
@@ -146,7 +146,7 @@ td[data-dash-column="objet"],td[data-dash-column="titulaire_nom"],td[data-dash-c
/* Page de recherche */
#search {
margin: auto;
margin: 50px auto 0px auto;
width: 450px;
font-size: 18px;
height: 30px;
@@ -162,6 +162,16 @@ td[data-dash-column="objet"],td[data-dash-column="titulaire_nom"],td[data-dash-c
margin-right: 12px;
}
.results_acheteur {
grid-column: 1;
grid-row: 1;
}
.results_titulaire {
grid-column: 2;
grid-row: 1;
}
/* Menu de navigation */
.navbar {
@@ -191,7 +201,7 @@ summary > h3 {
padding-top: 28px;
}
/* Vue acheteur/titulaire */
/* Vue acheteur/titulaire/recherche */
.wrapper {
display: grid;
grid-gap: 10px;
@@ -199,9 +209,6 @@ summary > h3 {
justify-content: space-between;
}
.wrapper > div {
}
.org_title {
grid-column: 1 / 3;
grid-row: 1;
+32 -8
View File
@@ -32,7 +32,7 @@ layout = html.Div(
# className="search_options",
# children=[dcc.RadioItems(options=["Acheteur(s)"])],
# ),
html.Div(id="search_results"),
html.Div(id="search_results", className="wrapper"),
],
)
@@ -62,13 +62,37 @@ def update_search_results(query):
columns, tooltip = setup_table_columns(results, hideable=False)
org_content = [
html.H3(f"{org_type.title()}s : {count}"),
dash_table.DataTable(
columns=columns,
data=results.to_dicts(),
page_size=5,
style_table={"overflowX": "auto"},
markdown_options={"html": True},
html.Div(
className=f"results_{org_type}",
children=[
html.H3(f"{org_type.title()}s : {count}"),
dash_table.DataTable(
columns=columns,
data=results.to_dicts(),
page_size=10,
# style_table={"overflowX": "auto"},
markdown_options={"html": True},
cell_selectable=False,
style_cell_conditional=[
{
"if": {"column_id": "acheteur_nom"},
"maxWidth": "250px",
"textAlign": "left",
"overflow": "hidden",
"lineHeight": "18px",
"whiteSpace": "normal",
},
{
"if": {"column_id": "titulaire_nom"},
"maxWidth": "250px",
"textAlign": "left",
"overflow": "hidden",
"lineHeight": "18px",
"whiteSpace": "normal",
},
],
),
],
)
if count > 0
else html.P(f"Aucun {org_type} trouvé."),
+7 -6
View File
@@ -234,7 +234,7 @@ def get_org_data(dff: pl.DataFrame, org_type: str) -> pl.DataFrame:
f"{org_type}_latitude", f"{org_type}_longitude"
),
)
lff = lff.group_by(cs.starts_with(org_type)).len("len_uid")
lff = lff.group_by(cs.starts_with(org_type)).len("Marchés")
return lff.collect()
@@ -406,10 +406,11 @@ def search_org(dff: pl.DataFrame, query: str, org_type: str) -> pl.DataFrame:
if not query.strip():
return dff.select(pl.lit(False).alias("matches"))
sleep(0.2)
# Normalize query
normalized_query = unidecode(query.strip()).upper()
tokens = [" " + t.strip() for t in normalized_query.split() if t.strip()]
print(tokens)
# Define columns based on entity type
cols = [
@@ -440,15 +441,15 @@ def search_org(dff: pl.DataFrame, query: str, org_type: str) -> pl.DataFrame:
# Sélection des colonnes
if org_type == "acheteur":
dff = dff.select(cols + ["len_uid"])
dff = dff.select(cols + ["Marchés"])
if org_type == "titulaire":
dff = dff.select(cols + ["len_uid", "titulaire_typeIdentifiant"])
dff = dff.select(cols + ["Marchés", "titulaire_typeIdentifiant"])
# Apply and filter
dff = (
dff.with_columns(token_matches + [match_score])
.filter(pl.col("match_score") == len(tokens))
.sort("len_uid", descending=True)
.sort("Marchés", descending=True)
.drop([f"token_{token}" for token in tokens])
)
@@ -463,7 +464,7 @@ def search_org(dff: pl.DataFrame, query: str, org_type: str) -> pl.DataFrame:
).alias("Département")
)
dff = dff.select(f"{org_type}_id", f"{org_type}_nom", "Département")
dff = dff.select(f"{org_type}_id", f"{org_type}_nom", "Département", "Marchés")
return dff