- outputs/platform, outputs/prospect : scripts de construction des decks commerciaux + captures sources et .pptx generes. - outputs/mnaha : seed complet de l'instance de demo luxembourgeoise (scripts par etape, contenus, images generees), le deck en version marque blanche et en version brandee, le PDF de presentation. - outputs/Wireframes : maquettes app mobile, app web et manager. - interview clients : notes de l'entretien Fourneau St Michel. state.json et les __pycache__ sont ignores : le premier porte les cles d'API de l'instance seedee, les scripts le regenerent.
59 lines
2.0 KiB
Python
59 lines
2.0 KiB
Python
# -*- coding: utf-8 -*-
|
|
"""Fin de l'étape 7 — points d'intérêt et habillage des applications.
|
|
|
|
Séparé de `step7_images.py` parce que chaque point mis à jour relance
|
|
l'indexation de toute la carte : c'est lent, et inutile à rejouer quand seules
|
|
les applications restent à habiller.
|
|
"""
|
|
|
|
import json
|
|
from pathlib import Path
|
|
|
|
from api import Api
|
|
from step7_images import POI_IMAGES
|
|
|
|
STATE = Path(__file__).resolve().parent / "state.json"
|
|
|
|
|
|
def main():
|
|
api = Api()
|
|
state = json.loads(STATE.read_text(encoding="utf-8"))
|
|
instance_id = state["instanceId"]
|
|
|
|
resources = {r["label"]: r for r in
|
|
(api.get(f"/api/Resource?instanceId={instance_id}") or [])}
|
|
|
|
print("points d'intérêt")
|
|
for point in api.get(f"/api/SectionMap/{state['mapEchternach']}/points") or []:
|
|
title = next((t["value"] for t in point["title"] if t["language"] == "FR"), "")
|
|
image = POI_IMAGES.get(title)
|
|
if not image:
|
|
continue
|
|
resource = resources[image]
|
|
# On compare l'URL, pas l'identifiant : un point rattaché lors d'un
|
|
# passage précédent porte le bon identifiant mais une URL nulle.
|
|
if point.get("imageUrl") == resource.get("url"):
|
|
print(f" = {title}")
|
|
continue
|
|
point["imageResourceId"] = resource["id"]
|
|
point["imageUrl"] = resource.get("url")
|
|
api.put("/api/SectionMap", point)
|
|
print(f" + {title} <- {image}")
|
|
|
|
print("\nhabillage des applications")
|
|
main_res = resources["app-accueil"]
|
|
loader_res = resources["app-chargement"]
|
|
for app in api.get(f"/api/ApplicationInstance?instanceId={instance_id}") or []:
|
|
app["mainImageId"] = main_res["id"]
|
|
app["mainImageUrl"] = main_res.get("url")
|
|
app["loaderImageId"] = loader_res["id"]
|
|
app["loaderImageUrl"] = loader_res.get("url")
|
|
api.put("/api/ApplicationInstance", app)
|
|
print(f" + type {app['appType']}")
|
|
|
|
print("\nterminé")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|