All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Corretto bug che causava la visualizzazione della selezione dell'indirizzo ad ogni geocodifica quando la configurazione
features.kml_generation.location_search_typeera impostata amanual
- Impostando la configurazione
features.kml_generation.location_search_typeamanual, ora è possibile scegliere manualmente l'indirizzo da restituire per ogni segnaposto del KML tra quelli trovati tramite l'API di Geocoding di Google nel caso in cui questa restituisca più risultati per un unico indirizzo. Vedi issue #172.
Formatter:
- Aggiunti parametri
separatoreprefix - Aggiunte
Exceptionpersonalizzate per il progetto
- Ora l'encoding di default dell'interprete Python è impostato a
UTF-8invece di essere platform-dependent. Il programma non crasherà più in caso di caratteri speciali (come→), nemmeno durante i test automatici. Risolve issue #141. - L'Exit Code del programma ora rispecchia lo standard, restituendo
1in caso di errori durante l'esecuzione e0in caso di successo.
- Ora durante la fase di Geocoding degli indirizzi tramite l'API Google Geocoding, se vengono riscontrati errori, questi vengono mostrati tutti insieme solo al termine dell'intera operazione.
- Rimosso il controllo dei file obbligatori prima che venga mostrato il menu di scelta operazione. Risolve issue #140.
Formatter:
- Rinominato parametro
allow_attribute_accessinsandboxed - Spostato modulo
shared.formatterin un pacchetto separato
- Ora è possibile eseguire la ricerca dei segnaposti Google in 2 modalità:
strictepostcode. Questa opzione è personalizzabile solo tramite il file di configurazione alla vocefeatures.kml_generation.location_search_type. Vedi issue #126.
- Rinominato parametro
geocoderingeocoder_fnper la funzionesearch_locationper esprimere meglio la tipologia di parametro richiesta. - Corretto bug che causava la visualizzazione dei messaggi di logging a livello
DEBUGanche se nel file di configurazione era impostato ad un altro livello. Questo bug avveniva solo durante la generazione del KML. Risolve issue #129.
- Ora la funzione
generate_kmlrestituisce una stringa KML invece di creare il file. - Ora la funzione
search_locationrestituisce errore nel caso la chiamata al Geocoder di Google trovasse più risultati per un unico indirizzo (vedi issue #126).
- Ora nel caso di un'anagrafica sia cliente che fornitore, il segnaposto viene creato in entrambe le cartelle invece di solo la cartella "Fornitori". Risolve issue #112.
- Corretto bug introdotto nella
v1.4.2(commitc0df440) per cui il livello di logging dei messaggi mostrati a video era sempre impostato aDEBUG.
- Corretto bug per cui il file di log veniva sempre scritto con il livello della configurazione utente invece di
DEBUG. - Aggiornata versione di
easyfatt-db-connectorper correggere l'issue #106 senza dover disattivare il cast ai tipi corretti (commit27d14b8).
- Aggiunti i seguenti valori alla formattazione personalizzata del segnaposto nel KML:
customerFiscalCode(codice fiscale),customerVatCode(partita IVA),customerHomepage(homepage). Per maggiori informazioni vedi issue #98.
- Corretto bug introdotto con la versione
v1.4.0che causava il mancato caricamento della configurazione utente presente nella cartella di esecuzione del programma. Risolve issue #105. - Corretto bug che causava il crash del programma nel raro caso in cui fossero presenti caratteri non compatibili con l'encoding
cp1252. Ora il file.DefXmlviene aperto e letto con l'encodingUTF8. Risolve issue #107. - Corretto bug che causava il crash del programma nel caso ci fossero prodotti all'interno del file
.DefXmlcon quantità decimale. Risolve issue #106.
- Aggiunto file di log a livello
DEBUGnel percorso./logs/YYYMMDD_hhmmss.log. Risolve issue #87.
Tests:
- Aggiunti test funzionali e di no-regression per il modulo
veryeasyfatt.app.process_csv.
- Aggiunto logging handler
logging.NullHandler()ai logger dei moduli applicativi. In questo modo finchè viene inizializzato il root logger, i messaggi verranno mostrati a schermo, mentre durante i test automatici (in assenza di root logger) non verrà mostrato alcun log in output. - Adesso la configurazione è disponibile globalmente per tutti i moduli del progetto attraverso l'oggetto
settingsdel moduloveryeasyfatt.configuration. Risolve issue #96.
- Corretto bug che causava il crash del programma in modalità "generazione CSV" se il file
.DefXmlpassato conteneva un solo documento. Risolve issue #89. - Corretto bug introdotto con la configurazione globale, che causava un mescolamento errato della configurazione se questa veniva ricaricata da un'altro file. La strategia di "merge" di
Dynaconfnel caso di liste contenenti solo tipi primitivi (str,int,bool, ecc..) infatti prevedeva il merge, mentre era necessario che in tal caso sostituisse i valori. Per maggiori informazioni vedi issue dynaconf/dynaconf#999.
- Ora i segnaposti del KML vengono ordinati per nome prima di essere esportati su file. Risolve issue #95.
- Aggiunta possibilità di copiare il contenuto del file CSV negli appunti. Risolve issue #94.
- Aggiunta possibilità di personalizzare il valore contenuto nel tag KML
<Placemark><description></description></Placemark>
- Ora il peso complessivo della spedizione viene direttamente stampato a schermo. In precedenza essendo stampato come log a livello
INFOpoteva sparire se il livello minimo veniva alzato (ad esempio aWARNING).
- Corretto
FutureWarningmostrato in seguito all'aggiornamento dipandasalla versione2.1.0. - Corretto bug che causava un'eccezione se nessun documento (tag
Document) di carico nel file.DefXmlaveva il tagTransportedWeightvalorizzato. Risolve issue #90. - Corretto bug che causava la duplicazione di segnaposti nel caso in cui ci fossero documenti con indirizzi di consegna sconosciuti (non salvati su DB). Risolve issue #86.
- Ora gli indirizzi nel documento e sul database vengono tutti trasformati in minuscolo prima di essere confrontati per evitare falsi positivi (es.
Via XX SettembreeVIA XX SETTEMBREinterpretati come due indirizzi diversi).
- Aggiunto supporto per formattazione user-friendly (ad esempio
{var:s->uppercase}).
- Aggiunto supporto per formattazione user-friendly alle voci di configurazione
features.kml_generation.placemark_titleeoptions.output.csv_template. Risolve issue #17.
- Aggiunta personalizzazione del titolo del segnaposto. Funzionalità richiesta nell'issue #17.
- Aggiunta la possibilità di bypassare la cache alla funzione
caching.persist_to_filequando viene passato un certo parametro alla funzione decorata (configurabile tramite il parametroenabled).
- Cambiata struttura del progetto da
./src/a./src/package/ - Aggiunto limite di chiamate al secondo alle API di Google Maps e retry automatico dei primi 3 fallimenti.
- Ora è possibile passare un oggetto
Geocoderalla funzionesearch_location()invece di quello di default. - Riportato livello di logging di default a
INFO(era stato portatoDEBUGcon la commit 08a64de del 7 febbraio).
- Fixato bug che avrebbe impedito l'aggiunta di alcuni indirizzi, se e solo se questi non fossero legati a clienti conosciuti e si trovassero ultimi (quindi senza nessun documento appartenente ad un cliente conosciuto dopo) nel documento
.DefXml. - Ora il
RateLimiterdelle API Google non ignora più le eccezioni, ma le rilancia. - Ora la cache delle chiamate API al servizio Geocoding di Google in caso di clienti sconosciuti viene correttamente ignorata.
- Ora il livello di logging scelto da configurazione si riflette sul Root logger, nascondendo o mostrando quindi tutti i messaggi, anche dei moduli figlio.
- Aggiunta geocodifica tramite API di Google Maps per gli indirizzi esportati nel KML in modo da rendere istantanea l'apertura di questi file tramite Google Earth. Implementa issue #17.
- Aggiunta voce di configurazione
features.kml_generation.google_api_keycontenente la chiave per l'accesso alle API di Google Maps utilizzate per fare Geocoding degli indirizzi esportati nel KML. - Aggiunta nuova funzionalità per l'inizializzazione della cache delle API di Google Maps, completa di versione "dry-run" (simula le chiamate e stampa solo il report finale) e controparti CLI.
- Cambiato formato del titolo dei segnaposti esportati in KML da
{name} ({code}) {notes}a{name:.10} {code}come richiesto nell'issue #17. - Aggiunta possibilità al decoratore
@caching.persist_to_file()di scegliere i parametri da aggiungere alla cache.
Tests:
- Disabilitato controllo di versione durante l'esecuzione dei test automatici.
- Modificata modalità con cui veniva controllata la configurazione nei test.
- Rimosso parametro
--failfastdal comando eseguito per lanciare i test (automatici e non). Questo impediva di vedere il risultato completo dei test fermandosi solo al primo test fallito.
- Corretto bug per cui in caso di errori HTTP durante il controllo di nuovi aggiornamenti il programma crashava con un messaggio non inerente al problema.
Tests:
- Corretto errore di battitura nei test che causava il loro fallimento ad ogni run.