Autore | Messaggio |
---|---|
Emanuele
![]() Webmaster Msg inviati: 2423 |
Sto realizzando un automa che importa automaticamente in un database tutte le delibere e determine, man mano che vengono pubblicate sul sito della presidenza del consiglio (http://www.presidenzaconsigliofondi.it/).
L'intenzione è quella di pubblicare un avviso su fondani.it ogni qual volta la lista viene aggiornata (per esempio nella sezione delle notizie in home page) e inoltre valutare la possibilità di gestire l'archivio delle delibere con funzione di ricerca per parola chiave. Riesco a lavorarci solo ogni tanto, ma i lavori sono a buon punto. Mi chiedevo... c'è qualche sviluppatore web che sarebbe intenzionato a collaborare al progetto? |
Dawson!
![]() Msg inviati: 129 |
da non-sviluppatore mi è venuto subito in mente di integrare nell'homepage di fondani.it i contenuti rss di www.presidenza~, ma a quanto pare il sito non offre questo tipo di servizio...
con questo metodo teoricamente sarebbe una sciocchezza gestirne un archivio, io però mi tiro fuori perchè sono ancora abbastanza a digiuno di xml e mysql.. |
Emanuele
![]() Webmaster Msg inviati: 2423 |
Dawson! ha scritto: da non-sviluppatore mi è venuto subito in mente di integrare nell'homepage di fondani.it i contenuti rss di www.presidenza~, ma a quanto pare il sito non offre questo tipo di servizio... con questo metodo teoricamente sarebbe una sciocchezza gestirne un archivio, io però mi tiro fuori perché sono ancora abbastanza a digiuno di xml e mysql.. Da non-sviluppatore potresti però suggerirmi qualche idea su come presentare gli aggiornamenti in home page. Il problema è che a quanto ho visto, le delibere vengono aggiornate una o due volte al mese, circa, con la pubblicazione di blocchi di decine di delibere tutte insieme. Di conseguenza non possono essere messe insieme alle notizie dei quotidiani, anche perché resterebbero visibili solo per uno o due giorni. Probabilmente andrebbe creata una sezione apposita. Attualmente ho realizzato lo script che si collega al sito della presidenza del consiglio, verifica se ci sono nuove delibere ed eventualmente scarica il foglio excel e inserisce tutti i record in un database. Il database è già on-line e aggiornato. Mancano da impostare l'operazione pianificata che avvia periodicamente lo script e poi realizzare le pagine web per l'accesso e la ricerca sul database. |
Dawson!
![]() Msg inviati: 129 |
Emanuele ha scritto: Da non-sviluppatore potresti però suggerirmi qualche idea su come presentare gli aggiornamenti in home page. Il problema è che a quanto ho visto, le delibere vengono aggiornate una o due volte al mese, circa, con la pubblicazione di blocchi di decine di delibere tutte insieme. Di conseguenza non possono essere messe insieme alle notizie dei quotidiani, anche perché resterebbero visibili solo per uno o due giorni. Probabilmente andrebbe creata una sezione apposita. Attualmente ho realizzato lo script che si collega al sito della presidenza del consiglio, verifica se ci sono nuove delibere ed eventualmente scarica il foglio excel e inserisce tutti i record in un database. Il database è già on-line e aggiornato. Mancano da impostare l'operazione pianificata che avvia periodicamente lo script e poi realizzare le pagine web per l'accesso e la ricerca sul database. Allora, ho dato un'occhiata al foglio di excel, e ho provato a immaginare questo layout per la homepage: ![]() ![]() Com'è facilmente intuibile: 1 riga: nome dell'ultimo aggiornamento 2 riga: applet che visualizza uno alla volta i record del db (se ne trovano a palate, online) 3-4 riga: nome del vecchio "ultimo aggiornamento" (scusa il gioco di parole) 5 riga: link alla pagina con tutte le delibere Quindi il lavoro da fare è: 1) Impostare l'output del tuo script in modo tale da facilitare il recupero di tutte le variabili che ci servono: ANNO; NUMERO; ID_DELIBERA; DATA; OGGETTO; PUBBLICAZIONE 2) elaborare il codice dell'applet e del box 3) sviluppare la pagina dell'archivio con la seguente possibile gerarchia ANNO .2008 ..N°Pubblicazione ...Id, data, oggetto, pubblicazione ...Id, data, oggetto, pubblicazione ...Id, data, oggetto, pubblicazione ...Id, data, oggetto, pubblicazione ...Id, data, oggetto, pubblicazione .2007 ..N°Pubblicazione ...Id, data, oggetto, pubblicazione ...Id, data, oggetto, pubblicazione ...Id, data, oggetto, pubblicazione .2006 ..N°Pubblicazione ...Id, data, oggetto, pubblicazione Come la vedi? |
Emanuele
![]() Webmaster Msg inviati: 2423 |
Ottimo direi!
Considerando anche le delibere di giunta e le determine dirigenziali si potrebbe fare un riquadro con tre schede sovrapposte. Nella settimana prossima provo a metterci mano... |
Emanuele
![]() Webmaster Msg inviati: 2423 |
Ho predisposto il backend che estrae l'elenco delle ultime delibere/determine inserite nel database.
https://www.fondani.it/delibere/test.php Ora dovrei realizzare la parte grafica, a partire da uno slider/scroller che mostra gli aggiornamenti in sequenza uno alla volta. Provo a cercarne in rete qualcuno già fatto. Pensavo inoltre che potrebbe essere utile anche generare un servizio rss. |
Emanuele
![]() Webmaster Msg inviati: 2423 |
Aggiornamento: ho trovato uno script decente per lo scroller javascript. Vorrei modificarlo un po', rendendo lo scorrimento ciclico (adesso quando arriva all'ultima delibera torna indietro) e poi resta da sistemare l'aspetto grafico. Vorrei suddividere le delibere in 3 pannelli sovrapposti.
L'andamento dei lavori è sempre visibile qui: https://www.fondani.it/delibere/test.php |
Dawson!
![]() Msg inviati: 129 |
Emanuele ha scritto: Aggiornamento: ho trovato uno script decente per lo scroller javascript. Vorrei modificarlo un po', rendendo lo scorrimento ciclico (adesso quando arriva all'ultima delibera torna indietro) e poi resta da sistemare l'aspetto grafico. Vorrei suddividere le delibere in 3 pannelli sovrapposti. L'andamento dei lavori è sempre visibile qui: https://www.fondani.it/delibere/test.php ottimo! ora mi metto un po' a giocare su slider.js , se non ho capito male la chiave è intorno a Citazione: all'interno della funzione scrollContent.. Non ho capito cosa intendi però per i tre pannelli sovrapposti...if(dir == -1) |
Emanuele
![]() Webmaster Msg inviati: 2423 |
Ho reso ciclico lo scorrimento. Non era proprio banale... ho dovuto smanettare parecchio sul codice per farlo funzionare.
Ho aggiunto anche due pulsantini per lo scorrimento manuale in avanti e indietro. Per pannelli sovrapposti intendo una cosa tipo le schede nelle finestre delle proprietà in windows (vedi schermata sotto). Le tre schede corrisponderebbero ai tre tipi di delibere che vengono pubblicate, ovvero: delibere di giunta, delibere di consiglio e determine dirigenziali. Eventualmente si potrebbero fare anche solo due schede, una per le delibere (giunta e consiglio) e una per le determine. ![]() |
Emanuele
![]() Webmaster Msg inviati: 2423 |
Realizzare la navigazione a schede era troppo elaborato, ho preferito mettere dei semplici link. Ho aggiustato anche un po' la grafica; l'aspetto mi pare ora soddisfacente: https://www.fondani.it/delibere/test.php
Ora restano da realizzare la pagina di dettaglio delle delibere e la pagina di ricerca. |
Emanuele
![]() Webmaster Msg inviati: 2423 |
Prima bozza della pagina con l'elenco delle delibere/determine:
https://www.fondani.it/delibere-comune-di-fondi/consiglio https://www.fondani.it/delibere-comune-di-fondi/giunta https://www.fondani.it/determine-comune-di-fondi Mancano da aggiungere un menu di navigazione, il filtro di ricerca, e la paginazione dei risultati. Poi passerò a realizzare la pagina di dettaglio della singola delibera e infine pubblicherò il riquadro nella pagina iniziale. |
Emanuele
![]() Webmaster Msg inviati: 2423 |
Emanuele ha scritto: Prima bozza della pagina con l'elenco delle delibere/determine: https://www.fondani.it/delibere-comune-di-fondi/consiglio https://www.fondani.it/delibere-comune-di-fondi/giunta https://www.fondani.it/determine-comune-di-fondi Mancano da aggiungere un menu di navigazione, il filtro di ricerca, e la paginazione dei risultati. Poi passerò a realizzare la pagina di dettaglio della singola delibera e infine pubblicherò il riquadro nella pagina iniziale. Ho aggiunto il menu di navigazione, il filtro di ricerca e la paginazione. Ora la pagina con la lista delle delibere è completa. Manca da realizzare la pagina di dettaglio della singola delibera e poi pubblico il riquadro nella pagina iniziale. |
Dawson!
![]() Msg inviati: 129 |
alla grande...
bello anche il controllo del calendario per la ricerca le delibere come sono organizzate? MySQL? |
Emanuele
![]() Webmaster Msg inviati: 2423 |
Dawson! ha scritto: alla grande... bello anche il controllo del calendario per la ricerca le delibere come sono organizzate? MySQL? Le delibere sono in un database MySQL. Per ora ci sono solo quelle importate dai file in formato excel (mi sembra per gli anni dal 2007 in poi). Sul sito del comune per gli anni precedenti le delibere sono in formato pdf, ma comunque ho già provveduto a convertirle in excel e appena trovo un po' di tempo importo anche quelle nel database. Un'altro problema da risolvere è l'operazione pianificata che lancia l'automa periodicamente per controllare e importare gli aggiornamenti (pensavo di farlo eseguire una volta al giorno). Purtroppo sul server (aruba) dov'è ospitato fondani.it sembra che non ci sia la possibilità di impostare operazioni pianificate, quindi devo trovare una soluzione alternativa. Dovrei chiedere il favore a qualche amico che ne ha la possibilità. |
Dawson!
![]() Msg inviati: 129 |
Emanuele ha scritto:
Le delibere sono in un database MySQL. Per ora ci sono solo quelle importate dai file in formato excel (mi sembra per gli anni dal 2007 in poi). Sul sito del comune per gli anni precedenti le delibere sono in formato pdf, ma comunque ho già provveduto a convertirle in excel e appena trovo un po' di tempo importo anche quelle nel database. Un'altro problema da risolvere è l'operazione pianificata che lancia l'automa periodicamente per controllare e importare gli aggiornamenti (pensavo di farlo eseguire una volta al giorno). Purtroppo sul server (aruba) dov'è ospitato fondani.it sembra che non ci sia la possibilità di impostare operazioni pianificate, quindi devo trovare una soluzione alternativa. Dovrei chiedere il favore a qualche amico che ne ha la possibilità. allora, per l'inserimento in mysql se vuoi posso darti una mano, scrivo un AppleScript che prende i valori dei campi dell'xls e li manda a un php che li scrive nel database. per l'operazione pianificata invece potresti usare qualche oggetto di fondani.it (per esempio: "chi è passato di qui oggi"), come handler per lanciare l'automa... facce sapè! |
Emanuele
![]() Webmaster Msg inviati: 2423 |
Dawson! ha scritto: allora, per l'inserimento in mysql se vuoi posso darti una mano, scrivo un AppleScript che prende i valori dei campi dell'xls e li manda a un php che li scrive nel database. per l'operazione pianificata invece potresti usare qualche oggetto di fondani.it (per esempio: "chi è passato di qui oggi"), come handler per lanciare l'automa... facce sapè! L'ideale sarebbe ottenere direttamente uno script SQL con le INSERT dei vari record, in modo tale che lo carico direttamente sul server MySQL. Secondo me si può fare facilmente anche dal foglio excel stesso, inserendo una formula per ogni riga che genera il relativo comando di insert. Ti allego il file excel con le delibere di giunta municipale dal 2001 al 2006 e la struttura delle tabelle MySQL che sto usando. Purtroppo mi sono accorto che avevo importato solo le delibere di giunta e non quelle di consiglio, o almeno per adesso ho trovato solo quelle. Le altre mi sa che vanno importate dai file pdf pubblicati sul sito del comune. Per l'importazione io ho usato un programma di OCR. Per le determine invece c'è solo il file excel, e sono già tutte caricate sul db. Per quanto riguarda invece l'operazione pianificata, l'alternativa che suggerisci consisterebbe nel lanciare l'automa all'interno di una pagina specifica del sito (es. la pagina iniziale). L'ho presa in considerazione, ma comporta i seguenti problemi da risolvere:
Per quanto riguarda il problema 2 devo documentarmi un po' sul manuale PHP perché se non ricordo male ci dovrebbe essere qualche comando che permette di far continuare l'esecuzione di uno script PHP anche quando l'utente interrompe il caricamento della pagina (inizierò a leggere da qua: http://it.php.net/ignore_user_abort e qua: http://darcas.net/index.php/2008/02/01/ignore-user-abort-php-scripts/) Per quanto riguarda il problema 3, bisogna implementare un sistema di semafori e di lock di esecuzione dell'automa. L'alternativa rimane ovviamente un servizio di cron job (operazioni pianificate) a pagamento (es. http://www.webbasedcron.com/ a circa 16 € all'anno) oppure chiedere all'amico che gestisce un server di poter installare un'operazione pianificata. ![]() ![]() |
Dawson!
![]() Msg inviati: 129 |
sto guardando il file xls..
come devo interpretare la numerazione? ogni volta che ricomincia da 1 che significa? edit: tutti questi dati vanno inseriti solo nella tabella comf_deliberegm , giusto?
|
Dawson!
![]() Msg inviati: 129 |
la numerazione comincia con l'anno nuovo.. giustamente..
ps: nella creazione della tabella 2 mi dice che c'è un errore di sintassi |
Emanuele
![]() Webmaster Msg inviati: 2423 |
Dawson! ha scritto: sto guardando il file xls.. come devo interpretare la numerazione? ogni volta che ricomincia da 1 che significa? edit: tutti questi dati vanno inseriti solo nella tabella comf_deliberegm , giusto? La numerazione ricomincia ogni anno. L'anno lo puoi desumere dalla data (della delibera, non data di pubblicazione, visto che alcune delibere di fine dicembre vengono pubblicate l'anno successivo ma appartengono comunque all'anno precedente). La tabella è quella. Tieni presente che ha come chiave primaria la coppia anno/numero delibera (non è possibile inserire due delibere con gli stessi valori di chiave). Purtroppo nell'importazione mi è capitato qualche volta che nello stesso anno ci fossero due delibere con lo stesso progressivo (errore di battitura) ed ho dovuto aggiungere a mano un "bis" per rendere coerente la base di dati. Per questo per le determine in campo 'num' non è numerico ma varchar. Anzi, forse è il caso di impostarlo come stringa anche sulle altre due tabelle. Ti allego le versioni modificate: [code:1:2810dd77b9]CREATE TABLE `comf_deliberecc` ( `anno` smallint(5) unsigned NOT NULL default '0', `num` varchar(6) NOT NULL default '', `data` date NOT NULL default '0000-00-00', `data_pubbl` date default '0000-00-00', `oggetto` text NOT NULL, `importo` decimal(11,2) unsigned default NULL, PRIMARY KEY (`anno`,`num`), FULLTEXT KEY `testo` (`oggetto`) ) TYPE=MyISAM CREATE TABLE `comf_deliberegm` ( `anno` smallint(5) unsigned NOT NULL default '0', `num` varchar(6) NOT NULL default '', `data` date NOT NULL default '0000-00-00', `data_pubbl` date default '0000-00-00', `oggetto` text NOT NULL, `importo` decimal(11,2) unsigned default NULL, PRIMARY KEY (`anno`,`num`), FULLTEXT KEY `testo` (`oggetto`) ) TYPE=MyISAM[/code:1:2810dd77b9] Nel frattempo sto importando i pdf delle delibere di consiglio. Cerco di generare direttamente lo script sql. |
Emanuele
![]() Webmaster Msg inviati: 2423 |
Dawson! ha scritto: la numerazione comincia con l'anno nuovo.. giustamente.. ps: nella creazione della tabella 2 mi dice che c'è un errore di sintassi Si, scusa, manca il punto e virgola per separare i tre comandi di CREATE. Aggiungilo alla fine di ciascun comando, oppure eventualmente esegui i tre comandi separatamente. |
Emanuele
![]() Webmaster Msg inviati: 2423 |
Cmq, ti mando via email i miei contatti di messaggistica istantanea. In ogni caso mi puoi contattare anche da qua: https://www.fondani.it/noteringr.php#riconoscimenti Grazie per la collaborazione |
Dawson!
![]() Msg inviati: 129 |
Allora, importantissimo: per quanto riguarda l'anno 2006, dal mese di luglio, la numerazione riparte da 1, quindi il processo di importazione in mysql s'interrompe, essendo duplicata la chiave 2006-1. Ho eliminato manualmente la numerazione, e ripreso da dove finiva. breve report delle rogne incontrate: 2 record non avevano la data di pubblicazione. In quel caso mi sono comportato inserendo la data del record precedente (che è la stessa anche di quello successivo) Le delibera 147 e 337 del 2005 sono state inserite 2 volte nel XLS, e sono state rimosse manualmente. Questo è lo script col quale ho convertito in mysql i dati dell'xls (esportati in un csv) [code:1:3e5ee389f6]set percorso to "macintosh hd:Applications:MAMP:htdocs:Fondani.it:" set deliberegmMysql to percorso & "deliberegm.sql" set deliberegmCsv to percorso & "deliberegm.csv" set corpo to read file deliberegmCsv open for access file the deliberegmMysql with write permission get eof of file the deliberegmMysql repeat with i from 1 to count of paragraph of corpo set paragrafo to paragraph i of corpo set AppleScript's text item delimiters to the ";" set the listaElementi to every text item of the paragrafo set AppleScript's text item delimiters to "" set numero to item 1 of listaElementi set dataTemp to item 2 of listaElementi set oggetto to item 3 of listaElementi set dataPubbTemp to item 4 of listaElementi set importoTemp to item 5 of listaElementi set anno to word 3 of dataTemp set dataPrima to word 3 of dataTemp & "-" & word 2 of dataTemp & "-" & word 1 of dataTemp set dataPubb to word 3 of dataPubbTemp & "-" & word 2 of dataPubbTemp & "-" & word 1 of dataPubbTemp if importoTemp is "" then set importo to "NULL" else set importoTemp to word 2 of importoTemp set AppleScript's text item delimiters to "," set numeri to text items of importoTemp set AppleScript's text item delimiters to "" set interi to item 1 of numeri as integer set decimali to item 2 of numeri as integer set importo to interi & "." & decimali as string end if set insertMysql to "INSERT INTO `comf_deliberegm` VALUES (" & anno & ", " & numero & ", '" & dataPrima & "', '" & dataPubb & "', '" & oggetto & "', " & importo & ");" write return & insertMysql to file the deliberegmMysql starting at eof end repeat close access file deliberegmMysql[/code:1:3e5ee389f6] Allego le 2712 queries
2712 queries
![]() |
Emanuele
![]() Webmaster Msg inviati: 2423 |
Ottimo grazie. C'è giusto un problemino con la codifica dei caratteri, non vedo bene alcune lettere accentate e alcuni simboli, penso sia dovuto alla differente codifica tra mac e pc.
Vedo di trovare un modo per convertirlo.
In più il campo "num" andrebbe trattato come stringa anziché come intero, come ti accennavo prima. In questo caso comunque non ci dovrebbero essere problemi perché mi sembra che ci siano solo interi.
Cmq... potente sto applescript!
Io ho estratto anche le delibere del consiglio comunale (dal 2001 al 2007) in formato excel. Il file lo trovi in allegato, lancia lo script anche su quello e mandami l'sql grazie.
Occhio che questa volta c'è una delibera "18/bis", quindi il campo "num" va trattato come varchar.
![]() |
Dawson!
![]() Msg inviati: 129 |
si, l'applescript è fenomenale.. ho avuto solo dei problemini (che ho risolto con un mega workaround) a convertire l'importo in numero reale con il punto anzichè la virgola per separare i decimali, dovuto sicuramente al fatto che oltreoceano gli standard sono diversi (considera che nel tastierino numerico della mia tastiera anzichè il punto c'è la virgola).
Per la questione "varchar" l'unica cosa che devo fare è mettere il valore del campo NUM tra due apici, la modifica nella table devi farla tu. Per la questione lettere accentate forse ho la soluzione: la codifica di default di AppleScript nel comando WRITE è Unicode , mentre la codifica nell'importazione in mysql dovrebbe essere UTF-8; in AppleScript però è possibile specificare una codifica diversa, quindi ora provo a dirgli di scrivere in UTF-8... ora metto a punto il file xls e tra un paio di ore ti uppo le queries byez |
Dawson!
![]() Msg inviati: 129 |
eccole qua
![]() |
Emanuele
![]() Webmaster Msg inviati: 2423 |
Ok, perfetto. Ho caricato tutto on-line. Ora gli archivi sono completi.
Ho aggiunto anche la pagina di dettaglio delle delibere. Finisco di sistemare qualche dettaglio estetico e poi mi occupo del lancio pianificato dell'automa. |
Netman
![]() Collaboratore Msg inviati: 1404 |
Emanuele ha scritto:
Ok, perfetto. Ho caricato tutto on-line. Ora gli archivi sono completi. Ho aggiunto anche la pagina di dettaglio delle delibere. Finisco di sistemare qualche dettaglio estetico e poi mi occupo del lancio pianificato dell'automa. se vuoi posso anche mettere un aggiornamento sul sito pcf.it così vediamo se funziona |
Emanuele
![]() Webmaster Msg inviati: 2423 |
Netman ha scritto: se vuoi posso anche mettere un aggiornamento sul sito pcf.it così vediamo se funziona Ma perché, li pubblichi tu stesso gli aggiornamenti di volta in volta? Comunque il controllo degli aggiornamenti viene fatto guardando la data di inserimento dell'ultimo documento pubblicato in ciascuna delle tre liste di delibere. |
Emanuele
![]() Webmaster Msg inviati: 2423 |
Dovrei aver completato tutto. Ho pubblicato anche il riquadro nella pagina iniziale. E' visibile da qui: https://www.fondani.it/index.php?test=1
Voglio fare qualche altra verifica prima di attivarlo definitivamente. Un grazie a Dawson per la collaborazione. |
Dawson!
![]() Msg inviati: 129 |
funziona alla grande!
|