GithubHelp home page GithubHelp logo

soter82 / django_comuni_italiani Goto Github PK

View Code? Open in Web Editor NEW

This project forked from kbytesys/django_comuni_italiani

0.0 1.0 0.0 969 KB

Django app for Italian cities and regions

License: GNU Lesser General Public License v2.1

Python 100.00%

django_comuni_italiani's Introduction

Django Comuni Italiani

Applicazione Django per gestire comuni, province e regioni


Questa applicazione django contiene lo stretto necessario per gestire le entità topografiche italiane (regioni, province, città metropolitane, comuni) importate dai dati pubblici dell'istat reperibili al link http://www.istat.it/it/archivio/6789


Requisiti e installazione

I requiti sono i seguenti:

  • Python 3+
  • Django 1.7+

Per l'installazione potete utilizzare pip:

pip install django-comuni-italiani

Oppure prendere l'ultima versione da github https://github.com/kbytesys/django_comuni_italiani ed eseguire il classico:

./setup.py install

Nella configurazione di django aggiungi l'applicazione dove ti è più conveniente:

INSTALLED_APPS = (
    ...
    'comuni_italiani',
    ...
)

L'app dispone di alcune viste per chiamate ajax e alto, dovrete dunque aggiungere gli url a quelli del vostro progetto:

urlpatterns = [
    ...
    url(r'^comuni_italiani/', include('comuni_italiani.urls', namespace='comuni_italiani')),
    ...
]

Un dump dei dati più aggiornati al momento del rilascio è distribuito sotto forma di fixture. Esso può essere caricato con il seguente comando:

./manage.py loaddata --app comuni_italiani comuni_italiani.json

Chiamate ajax/json

L'app vi fornisce alcune chiamate per l'elenco e la ricerca delle diverse entità attraverso json/ajax.

Troverete la documentazione completa nel wiki.

Supporto django-autocomplete-light

Se utilizzate django-autocomplete-light potete facilmente aggiungere le definizioni per il completamento automatico aggiungendo la seguente app tra quelle installate:

INSTALLED_APPS = (
    ...
    'comuni_italiani',
    'comuni_italiani.autocomplete',
    ...
)

Ovviamente dovete aver aggiunto autocomplete light seguendo la documentazione che troverete qui

Aggiornamento dei dati

Purtroppo l'aggiornamento dei dati non è un'operazione semplice, soprattutto perché i tuoi dati contenuti nelle applicazioni che svilupperai potrebbero essere legati a dati soggetti a cambiamenti (hanno abrogato una provincia? maledetti!)

./manage.py import_regioni_prov
./manage.py import_comuni

Entrambi i comandi possono accettare i file csv aggiornati presi dal sito dell'istat. Tuttavia se la loro struttura (o anche semplicemente il nome della colonna) cambia, l'importazione potrebbe fallire.

Per l'aggiornamento delle province e regioni attualmente non viene eseguito alcun particolare controllo nel caso di rimozione, in quanto è un'operazione delicata che deve essere gestita manualmente in base alle vostre basi dati.

L'aggiornamento dei comuni è più intelligente.

  • Durante l'aggiornamento se viene rilevato un comune con lo stesso codice istat, ma con diverso nome, verrà richiesto di confermare l'aggiornamento o saltare il record. Ciò evita probabili inconvenienti durante le (rare) rinumerazioni dei comuni in una provincia.

  • Al termine dell'aggiornamento vengono elencati i comuni presenti del db, ma assenti nel csv. Ciò vi aiuterà a rilevare i comuni eliminati/abrogati/accorpati

  • Al termine dell'aggiornamento verranno elencati i comuni omonimi. Attualmente sono presenti 8 nomi di comune uguali per un totale di 16 comuni

In ogni caso sarà vostro compito fare i dovuti aggiustamenti.

FAQ

A quando risale l'ultimo aggiornamento dei dati?
L'applicazione ha già inclusi i dati istat aggiornati al 30 gennaio 2015

Perchè documentazione e codice sorgente sono in Italiano?
Questa appliazione ha uno scopo intimamente riservato al "mercato" italiano. In genere se si ha la necessità di utilizzare luoghi e lingue diverse consiglio l'uso di django-cities-light oppure di django-cities

Posso aggiornare i comuni eliminandoli e reimportando i dati da zero?
Assumento che tu possa farlo sbloccando temporaneamente le foreign keys, non è una buona idea. Mentre province e regioni hanno sempre lo stesso codice istat, il codice istat di un comune può cambiare. Per questo motivo i comuni hanno una chiave numerica autogenerata che potrebbe non essere coerente tra un'importazione e l'altra.

Nei nuovi dati non trovo più la superfice e l'altitudine dei comuni!
Nei dati del 2016 l'Istat ha deciso di non includere quelle informazioni nelle loro esportazioni.

Changelog

25/01/2016 1.3.0 - Aggiornamento dati e importazione al 1 gennaio 2016
11/12/2015 1.2.0 - Supporto django-autocomplete-light
30/06/2015 1.1.0 - Chiamate ajax/json per ricerca

TODO

  • Form temizzabili per selezionare una provincia da regione e un comune da provincia

django_comuni_italiani's People

Contributors

kbytesys avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.