perf: paginer/agréger les pages acheteur et titulaire côté DuckDB
Les pages acheteur/titulaire chargeaient l'intégralité des marchés d'une organisation dans un dcc.Store côté client (jusqu'à 16k lignes pour les plus gros acheteurs), envoyée sur le réseau à chaque interaction. Le tableau, le top 10 et l'histogramme des distances récupèrent maintenant leurs données via des requêtes DuckDB scopées (pagination/agrégation poussées en SQL), sur le modèle déjà utilisé par la page tableau. Corrige aussi le CLS des mêmes pages en réservant l'espace des conteneurs remplis par callback (carte, top 10, histogramme). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
+2
-11
@@ -98,12 +98,10 @@ def test_003_tableau_download(dash_duo: DashComposite):
|
||||
# Juste pour instancier l'app
|
||||
print(app.server.name)
|
||||
|
||||
dicts = pl.read_parquet("tests/test.parquet").to_dicts()
|
||||
|
||||
outputs = [
|
||||
download_data(1, "", [], None),
|
||||
download_acheteur_data(1, dicts, "123", "2025"),
|
||||
download_titulaire_data(1, dicts, "345", "2025"),
|
||||
download_acheteur_data(1, "/acheteurs/123", "2025", "ACHETEUR 1"),
|
||||
download_titulaire_data(1, "/titulaires/345", "2025", "TITULAIRE 1"),
|
||||
]
|
||||
for output in outputs:
|
||||
assert isinstance(output, dict)
|
||||
@@ -118,8 +116,6 @@ def test_003_tableau_download(dash_duo: DashComposite):
|
||||
|
||||
|
||||
def test_004_add_links_observatoire_acheteur():
|
||||
import polars as pl
|
||||
|
||||
from src.utils.table import add_links
|
||||
|
||||
dff = pl.DataFrame(
|
||||
@@ -143,8 +139,6 @@ def test_004_add_links_observatoire_acheteur():
|
||||
|
||||
|
||||
def test_005_add_links_observatoire_titulaire():
|
||||
import polars as pl
|
||||
|
||||
from src.utils.table import add_links
|
||||
|
||||
dff = pl.DataFrame(
|
||||
@@ -323,7 +317,6 @@ def test_011_observatoire_multi_param_url(dash_duo: DashComposite):
|
||||
|
||||
|
||||
def test_012_get_distance_histogram_returns_graph():
|
||||
import polars as pl
|
||||
from dash import dcc
|
||||
|
||||
from src.figures import get_distance_histogram
|
||||
@@ -334,7 +327,6 @@ def test_012_get_distance_histogram_returns_graph():
|
||||
|
||||
|
||||
def test_013_get_distance_histogram_handles_nulls():
|
||||
import polars as pl
|
||||
from dash import dcc
|
||||
|
||||
from src.figures import get_distance_histogram
|
||||
@@ -345,7 +337,6 @@ def test_013_get_distance_histogram_handles_nulls():
|
||||
|
||||
|
||||
def test_014_get_distance_histogram_all_nulls():
|
||||
import polars as pl
|
||||
from dash import dcc
|
||||
|
||||
from src.figures import get_distance_histogram
|
||||
|
||||
Reference in New Issue
Block a user