Champ de recherche, récup de données dédiée #58
This commit is contained in:
@@ -143,6 +143,25 @@ td[data-dash-column="objet"],td[data-dash-column="titulaire_nom"],td[data-dash-c
|
|||||||
margin: 0 0 20px 20px;
|
margin: 0 0 20px 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Page de recherche */
|
||||||
|
|
||||||
|
#search {
|
||||||
|
margin: auto;
|
||||||
|
width: 450px;
|
||||||
|
font-size: 18px;
|
||||||
|
height: 30px;
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.search_options {
|
||||||
|
margin: 16px auto;
|
||||||
|
width: 450px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.search_options input {
|
||||||
|
margin-right: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
/* Menu de navigation */
|
/* Menu de navigation */
|
||||||
|
|
||||||
.navbar {
|
.navbar {
|
||||||
|
|||||||
@@ -0,0 +1,41 @@
|
|||||||
|
from dash import Input, Output, callback, dcc, html, register_page
|
||||||
|
|
||||||
|
from src.utils import meta_content
|
||||||
|
|
||||||
|
name = "Recherche"
|
||||||
|
|
||||||
|
register_page(
|
||||||
|
__name__,
|
||||||
|
path="/",
|
||||||
|
title=meta_content["title"],
|
||||||
|
name=name,
|
||||||
|
description=meta_content["description"],
|
||||||
|
image_url=meta_content["image_url"],
|
||||||
|
order=0,
|
||||||
|
)
|
||||||
|
|
||||||
|
layout = html.Div(
|
||||||
|
className="container",
|
||||||
|
children=[
|
||||||
|
dcc.Input(
|
||||||
|
id="search",
|
||||||
|
type="text",
|
||||||
|
placeholder="Nom d'acheteur, d'entreprise, mot de clé de marché...",
|
||||||
|
),
|
||||||
|
html.Div(
|
||||||
|
className="search_options",
|
||||||
|
children=[dcc.RadioItems(options=["Acheteur(s)"])],
|
||||||
|
),
|
||||||
|
html.Div(id="search_results"),
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@callback(Output("search_results", "children"), Input("search", "value"))
|
||||||
|
def search_results(query):
|
||||||
|
if len(query) >= 3:
|
||||||
|
# results = []
|
||||||
|
# dff = dff.select("acheteur_id", "acheteur_nom")
|
||||||
|
return html.Div([])
|
||||||
|
else:
|
||||||
|
return html.P("Tapez au moins 3 caractères")
|
||||||
@@ -25,7 +25,7 @@ schema = df.collect_schema()
|
|||||||
name = "Tableau"
|
name = "Tableau"
|
||||||
register_page(
|
register_page(
|
||||||
__name__,
|
__name__,
|
||||||
path="/",
|
path="/tableau",
|
||||||
title=meta_content["title"],
|
title=meta_content["title"],
|
||||||
name=name,
|
name=name,
|
||||||
description=meta_content["description"],
|
description=meta_content["description"],
|
||||||
|
|||||||
@@ -208,6 +208,17 @@ def get_decp_data() -> pl.DataFrame:
|
|||||||
return lff.collect()
|
return lff.collect()
|
||||||
|
|
||||||
|
|
||||||
|
def get_org_data(dff: pl.DataFrame, org_type: str) -> pl.DataFrame:
|
||||||
|
lff = dff.lazy()
|
||||||
|
lff = lff.select(
|
||||||
|
cs.starts_with(org_type).exclude(
|
||||||
|
f"{org_type}_latitude", f"{org_type}_longitude"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
lff = lff.unique(f"{org_type}_id")
|
||||||
|
return lff.collect()
|
||||||
|
|
||||||
|
|
||||||
def get_departements() -> dict:
|
def get_departements() -> dict:
|
||||||
with open("data/departements.json", "rb") as f:
|
with open("data/departements.json", "rb") as f:
|
||||||
data = json.load(f)
|
data = json.load(f)
|
||||||
@@ -365,6 +376,8 @@ def get_data_schema() -> dict:
|
|||||||
|
|
||||||
|
|
||||||
df: pl.DataFrame = get_decp_data()
|
df: pl.DataFrame = get_decp_data()
|
||||||
|
df_acheteurs = get_org_data(df, "acheteur")
|
||||||
|
df_titulaires = get_org_data(df, "titulaire")
|
||||||
departements = get_departements()
|
departements = get_departements()
|
||||||
domain_name = (
|
domain_name = (
|
||||||
"test.decp.info" if os.getenv("DEVELOPMENT").lower() == "true" else "decp.info"
|
"test.decp.info" if os.getenv("DEVELOPMENT").lower() == "true" else "decp.info"
|
||||||
|
|||||||
Reference in New Issue
Block a user