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;
|
||||
}
|
||||
|
||||
/* 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 */
|
||||
|
||||
.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"
|
||||
register_page(
|
||||
__name__,
|
||||
path="/",
|
||||
path="/tableau",
|
||||
title=meta_content["title"],
|
||||
name=name,
|
||||
description=meta_content["description"],
|
||||
|
||||
@@ -208,6 +208,17 @@ def get_decp_data() -> pl.DataFrame:
|
||||
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:
|
||||
with open("data/departements.json", "rb") as f:
|
||||
data = json.load(f)
|
||||
@@ -365,6 +376,8 @@ def get_data_schema() -> dict:
|
||||
|
||||
|
||||
df: pl.DataFrame = get_decp_data()
|
||||
df_acheteurs = get_org_data(df, "acheteur")
|
||||
df_titulaires = get_org_data(df, "titulaire")
|
||||
departements = get_departements()
|
||||
domain_name = (
|
||||
"test.decp.info" if os.getenv("DEVELOPMENT").lower() == "true" else "decp.info"
|
||||
|
||||
Reference in New Issue
Block a user