Skip to content

camera-amendments: aggiungere esito, cofirmatari e testo (fonte HTML documenti.camera.it) #62

Description

@aborruso

Contesto

Oggi camera-amendments restituisce, per ogni emendamento: sede, article, number, primo firmatario, person_id, identical, text_url (solo link). Sono le liste cumulative HTML getProposteEmendative.aspx, dove la colonna esito è vuota e i cofirmatari e il testo non compaiono.

Esplorazione della fonte documenti.camera.it/apps/emendamenti/ (12/07/2026) su caso reale AC 2236 (atto portante emendato: AC 2822): il dato mancante esiste, raggiungibile via altri endpoint HTML/XML dell'app. Mappa completa in docs/lod-wiki/camera/assenti.md e docs/lod-wiki/camera/getdocumento-router.md.


Priorità 1 — Aggiungere l'ESITO (il gap che conta di più)

È il dato che trasforma il tool da "elenco di emendamenti depositati" a "cosa è successo": quali sono passati, quali bocciati.

  • Come: per ogni seduta, leggere getProposteEmendativeSeduta.aspx?...&dataSeduta=YYYYMMDD (ha la colonna Esito) e fare merge sull'emendamento per number.
  • Le date-seduta si scoprono in modo pulito dall'XML export-elenco-testi-riferimento?leg=&pdl=&organo= (o proxySito?leg=&pdl=&new=new&url=assoluto&cache=false) — niente parsing HTML per sapere quante/quali sedute ci sono. Nota: pdl = atto portante (2822, non 2236), altrimenti <process status="ko">.
  • Costo: N sedute (poche: 4 per AC 2822), non N emendamenti. Sostenibile.
  • Nodo di design: un emendamento può comparire in più sedute con stati diversi (accantonato → poi approvato). Va deciso se esporre l'esito finale o la cronologia. Proposta: colonna esito = ultimo stato; in jsonl un campo sedute[] con la storia.
  • Verificato: AC 2822, seduta 23/06/2026 → em. 1.151 (Montaruli e altri) = approvato.

Priorità 2 — Dettaglio on-demand: cofirmatari + testo integrale

  • Come: getPropostaEmendativa.aspx?...&idPropostaEmendativa=Ntutti i firmatari e il testo.
  • Costo: 1 richiesta per emendamento → su AC 2236 sarebbero ~732 fetch. Troppo per il default.
  • Design opt-in, non di massa:
    • --number 1.151 → dettaglio di un singolo emendamento (testo + cofirmatari);
    • --detail → arricchisce tutta la lista (con warning sul costo/lentezza).
  • Verificato: AC 2822, em. 1.1. → testo "Sopprimerlo.", firmatari Bonafè, Colucci, Zaratti, Boschi, Magi (ident. 1.2.).

Priorità 3 — Robustezza (piccoli fix)

  • Verificare che catturi la fase Assemblea appena pubblicata (oggi c'è solo la referente): il tool già estrae tutti i link getProposteEmendative dalla scheda, quindi dovrebbe funzionare da solo — ma va testato quando l'emendamento d'Aula (es. voto fuorisede, primo firmatario Roscani) comparirà con sedeEsame=assemblea.
  • L'atto portante (2822 vs 2236) è già gestito correttamente: il tool parte dalla scheda di 2236 e trova i link col contenitore 2822.

Riferimenti

  • Web Service SOAP documentato (apps/emendamenti/docs, metodi getEmendamenti/xmlEmendamenti con output XML) esiste ma è dichiarato "utilizzabile solo localmente alla macchina server" → non pubblico. Advocacy: chiederne l'esposizione pubblica eviterebbe tutto lo scraping.
  • Wiki: docs/lod-wiki/camera/assenti.md (dettaglio app emendamenti), docs/lod-wiki/camera/getdocumento-router.md (mappa fonti non-LOD).

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestgap-datasetRadice: limite/assenza nella fonte LOD. Il codice può solo mitigare; va seguita anche con il gestorepriority: mediumPriorità media

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions