From f5d802606156ddfac5e0fcd8b12a27ad6e9f3421 Mon Sep 17 00:00:00 2001 From: Colin Maudry Date: Wed, 28 Jan 2026 13:50:05 +0100 Subject: [PATCH] =?UTF-8?q?Ajout=20des=20donn=C3=A9es=20JSON-LD=20aux=20pa?= =?UTF-8?q?ges=20titulaires=20#66?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/titulaire.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/pages/titulaire.py b/src/pages/titulaire.py index 60fdc2b..f3ae17d 100644 --- a/src/pages/titulaire.py +++ b/src/pages/titulaire.py @@ -1,4 +1,5 @@ import datetime +import json import polars as pl from dash import Input, Output, State, callback, dcc, html, register_page @@ -14,6 +15,7 @@ from src.utils import ( get_button_properties, get_default_hidden_columns, get_departement_region, + make_org_jsonld, meta_content, prepare_table_data, sort_table_data, @@ -54,6 +56,7 @@ datatable = html.Div( layout = [ dcc.Store(id="titulaire_data", storage_type="memory"), dcc.Location(id="titulaire_url", refresh="callback-nav"), + html.Script(type="application/ld+json", id="titulaire_jsonld"), html.Div( children=[ html.Div( @@ -340,3 +343,19 @@ def download_filtered_titulaire_data( return dcc.send_bytes( to_bytes, filename=f"decp_filtrées_{titulaire_nom}_{date}.xlsx" ) + + +@callback( + Output(component_id="titulaire_jsonld", component_property="children"), + Input("titulaire_data", "data"), +) +def get_titulaire_jsonld(titulaire) -> str: + titulaire = titulaire[0] + titulaire_id = titulaire.get("acheteur_id") + + jsonld = make_org_jsonld( + titulaire_id, org_name=titulaire.get("titulaire_nom"), org_type="titulaire" + ) + jsonld["@context"] = "http://schema.org/" + + return json.dumps(jsonld, indent=2)