Coder Social home page Coder Social logo

znc-sistemas / django-municipios Goto Github PK

View Code? Open in Web Editor NEW
48.0 26.0 30.0 340 KB

Aplicação plugável Django com modelos e widgets para os Municípios Brasileiros

License: MIT License

Python 92.54% JavaScript 4.24% HTML 3.22%
django python python3

django-municipios's Introduction

Municípios Brasileiros para Django

Aplicação plugável Django com modelos e widgets para os Municípios Brasileiros

  • Form com selector Ajax
  • widget reutiliz[avel com Field specificop para modelos com campo municipio.

Instalando o django-municipios

$ pip install django-municipios

ou

$ easy_install django-municipios

ou baixar o código fonte do github e rodar "setup.py":

$ git clone git://github.com/znc-sistemas/django-municipios.git

$ cd django-municipios

$ python setup.py install

Dependências

  • jQuery (somente para utilizar widget de seleção de Municípios)

Usando o django-municipios

SETTINGS

adicione a aplicação no INSTALLED_APP no seu settings.py

INSTALLED_APPS = (
    ...

    'municipios',

    ...

)

Utilizando dados geográficos

Se for utilizar GIS adicione a variável MUNICIPIOS_GEO:

MUNICIPIOS_GEO = True

No settings.py, antes de rodar o syncdb. Este parâmetro habilita os campos que armazenam dados Geográficos (GeoDjango).

Para carregar dados geográficos de todos os Municípios e UFs baixe o arquivo de fixture municipios_geo_2013_4674.json.zip (110 MB), e carregue a fixture com

python manage.py loaddata municipios_geo_900913.json.bz2

Utilizando o widget de Seleção de Municípios

from django import forms
from municipios.widgets import SelectMunicipioWidget

class FormEndereco(forms.Form):
    municipio = forms.IntegerField(label=u"UF - Município", widget=SelectMunicipioWidget)

View

def teste(request):
    form = FormEndereco()
    return render_to_response('endereco/teste.html',
           {'form':form,}, context_instance = RequestContext(request))

Template

  1. Inclua o jquery no seu template, ou adicione ao media do seu Form.
  2. form.media - o widget depende de codigo js para funcionar o ajax
<script type="text/javascript" src="{{ STATIC_URL }}js/jquery.min.js"></script>

{{ form.media }}

{{ form }}

Template para o widget

A partir da versão 0.8.0 é possível customizar o template utilizado para apresentar o widget. Os templates identificados pela aplicação são :

  1. municipio_field.html
  2. uf_field.html

e o nome da variável a ser substituída é {{wselect}}

ex.: de template para BootStrapTwitter
<div class="control-group">
    <div class="controls"><label>Município</label> {{wselect}}  </div>
</div>

adicione o HTML acima em um template dentro de por exemplo <app>/municipios/templates/municipios/municipio_field.html

URLs

Adicionar as urls da aplicação no arquivo definido pelo ROOT_URLCONF do setings.py.

Nota

A partir da versão 1.4 do Django o prefixo da url pode ser qualquer um, nas versões anteriores é necessário utilizar o prefixo "muncipios_app".

(

...

url(r'^municipios_app/', include('municipios.urls')),

...

)

Arquivos Estáticos

Para o funcionamento do widget de seleção de municípios em ambiente de produção é necessário utilizar o comando collectstatic do Static Files.

django-municipios's People

Contributors

cadu-leite avatar douglas avatar joilsonmarques avatar leandrolbueno avatar lskbr avatar luizvital avatar luzfcb avatar viniciuscb avatar zokis avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

django-municipios's Issues

Pequenas atualizações para o suporte ao Django 1.10

Erro 1:
O mapeamento Regular Expression para views no urls.py está sendo feito com strings ao invés das assinaturas das funções, e na versão Django 1.10 isso não será mais permitido.
Erro 2:
Também no urls.py, a variável global "urlpatterns" precisa receber uma lista python, e não mais um retorno de "patterns()"

O Django 1.9 já está exibindo um Warning destes erros.

python2.7/site-packages/municipios/urls.py:12: RemovedInDjango110Warning: Support for string view arguments to url() is deprecated and will be removed in Django 1.10 (got teste). Pass the callable instead.
python2.7/site-packages/municipios/urls.py:12: RemovedInDjango110Warning: django.conf.urls.patterns() is deprecated and will be removed in Django 1.10. Update your urlpatterns to be a list of django.conf.urls.url() instances instead.

Se eu tiver tempo, mandarei um pull request. Mas pelo menos já estou avisando.

BTW, excelente projeto, parabéns.

Licenciamento

Opa,

Seria uma boa colocar uma licença. Recomendo a LGPLv3. ;-)

add 1st Migration

Precisa adicionar uma migration para ficar compatível com Django 1.7

Import incorreto de modulo removido no django 1.6

ImportError at /
No module named defaults
Request Method: GET
Request URL: http://127.0.0.1:8000/
Django Version: 1.6
Exception Type: ImportError
Exception Value:
No module named defaults
Exception Location: /home/sutransdev/1envs_virtualenv/projetoposto-dev/local/lib/python2.7/site-packages/municipios/urls.py in , line 1
Python Executable: /home/sutransdev/1envs_virtualenv/projetoposto-dev/bin/python
Python Version: 2.7.5
Python Path:
['/home/sutransdev/projetos/projetoposto/projetoposto/projetoposto',
'/home/sutransdev/1envs_virtualenv/projetoposto-dev/src/django-userena',
'/home/sutransdev/projetos/projetoposto/projetoposto/projetoposto',
'/home/sutransdev/projetos/projetoposto/projetoposto',
'/home/sutransdev/1envs_virtualenv/projetoposto-dev/lib/python2.7',
'/home/sutransdev/1envs_virtualenv/projetoposto-dev/lib/python2.7/plat-x86_64-linux-gnu',
'/home/sutransdev/1envs_virtualenv/projetoposto-dev/lib/python2.7/lib-tk',
'/home/sutransdev/1envs_virtualenv/projetoposto-dev/lib/python2.7/lib-old',
'/home/sutransdev/1envs_virtualenv/projetoposto-dev/lib/python2.7/lib-dynload',
'/usr/lib/python2.7',
'/usr/lib/python2.7/plat-x86_64-linux-gnu',
'/usr/lib/python2.7/lib-tk',
'/home/sutransdev/1envs_virtualenv/projetoposto-dev/local/lib/python2.7/site-packages',
'/home/sutransdev/projetos/projetoposto/projetoposto/projetoposto/projetoposto',
'/home/sutransdev/projetos/projetoposto/projetoposto/projetoposto']
Server time: Qua, 6 Nov 2013 15:12:35 -0300

Fixture de cidade e municipios

Disponibilizar fixture de cidade e municipios.

json + zip. talvez abrir um outro projeto !?!
talvez coloque em um server meu.

mas é possível pegar no ibge. só mais complicado. se não rolar este finds (28/05/2011)
pode cobrar.
[]s

Fazer merge

Fazer um merge considerando as alterações feitas no modelo e settings

Falta o release no PyPI

Olá pessoal da ZNC!

Tchurma, acho que vocês publicaram este release da lib aqui no Github, mas esqueceram de puxar para o PyPI.

A versão do PyPI não tem migrações e falha em Django 1.10.

Abraços

Resolução reversa da URL pro base_url.js não funciona se instalo o django-municipios como um pacote

Olá,

Estou tentando usar o django-municipios em um projeto. Inicialmente, instalei ele via pip e segui as instruções do README -- incluindo colocar o URLConf.

O que acontece, porém, é que a URL do base_url.js passada pelo SelectMunicipioWidget.Media é a seguinte:

<script type="text/javascript" src="/base_url.js"></script>

Quando deveria ser

<script type="text/javascript" src="/municipios/base_url.js"></script>

Quando, em vez de usar o pacote instalado pelo pip, eu copio o municipios/ pra raiz do projeto, ele faz do jeito certo.

Será que fiz algo errado na instalação?


Analisando melhor, vi que isso deve ser ter a ver com uma das últimas linhas de código do municipios/widgets.py:

base_url_js = reverse_lazy('municipios-base-url-js')

Minha teoria:

Ao tentar reverter a URL usando o pacote instalado, o django não vê que tem um projeto incluindo o URLConf do municipios, e que portanto ele deve colocar o municipios/ na frente da URL.

Quando tenta reverter a URL usando a app no próprio diretório do projeto, ele consegue "perceber" e coloca o caminho na frente.

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.