diff --git a/sigi/apps/casas/admin.py b/sigi/apps/casas/admin.py index 4638633..8470e05 100644 --- a/sigi/apps/casas/admin.py +++ b/sigi/apps/casas/admin.py @@ -1,11 +1,37 @@ # -*- coding: utf-8 -*- from django.contrib import admin +from django.contrib.admin.filterspecs import ChoicesFilterSpec, FilterSpec +from django.contrib.contenttypes import generic from sigi.apps.casas.forms import CasaLegislativaForm from sigi.apps.casas.models import CasaLegislativa +from sigi.apps.contatos.models import Contato +from sigi.apps.contatos.models import Telefone + +class ContatosInline(generic.GenericTabularInline): + model = Contato + +class TelefonesInline(generic.GenericTabularInline): + model = Telefone class CasaLegislativaAdmin(admin.ModelAdmin): form = CasaLegislativaForm - list_display = ('nome', 'email', 'pagina_web') + inlines = (TelefonesInline, ContatosInline) + list_display = ('nome', 'email', 'pagina_web', 'municipio', 'uf') list_display_links = ('nome',) + list_filter = ('tipo',) + fieldsets = ( + (None, { + 'fields': ('nome', 'sigla', 'tipo', 'cnpj'), + }), + ('Endereço', { + 'fields': ('logradouro', 'bairro', 'municipio', 'cep'), + }), + ('Outras informações', { + 'fields': ('email', 'pagina_web', 'foto', 'historico'), + }), + ) + search_fields = ('nome', 'sigla', 'cnpj', 'logradouro', 'bairro', + 'cep', 'municipio__nome', 'municipio__uf__nome', + 'pagina_web') admin.site.register(CasaLegislativa, CasaLegislativaAdmin) diff --git a/sigi/apps/casas/models.py b/sigi/apps/casas/models.py index 7190b02..16f8e4d 100644 --- a/sigi/apps/casas/models.py +++ b/sigi/apps/casas/models.py @@ -10,8 +10,16 @@ class CasaLegislativa(models.Model): ('CT', 'Câmara Distrital'), ('SF', 'Senado Federal'), ) - nome = models.CharField(max_length=60) - sigla = models.CharField(max_length=30, blank=True) + nome = models.CharField( + max_length=60, + help_text='Exemplo: Câmara Municipal de Pains.' + ) + sigla = models.CharField( + max_length=30, + help_text='Forneça apenas se a Casa Legislativa indicar um. ' + 'Exemplo: cmpains.', + blank=True + ) tipo = models.CharField(max_length=2, choices=CASA_CHOICES) cnpj = models.CharField('CNPJ', max_length=18) @@ -26,7 +34,11 @@ class CasaLegislativa(models.Model): ) cep = models.CharField(max_length=9) email = models.EmailField('e-mail', blank=True) - pagina_web = models.URLField(u'página web', blank=True) + pagina_web = models.URLField( + u'página web', + help_text='Exemplo: http://www.camarapains.mg.gov.br.', + blank=True + ) telefones = generic.GenericRelation('contatos.Telefone') foto = models.ImageField( @@ -48,3 +60,7 @@ class CasaLegislativa(models.Model): def __unicode__(self): return self.nome + + def uf (self): + return self.municipio.uf.nome + uf.short_description = 'Unidade Federativa' diff --git a/sigi/apps/contatos/models.py b/sigi/apps/contatos/models.py index b717be1..589e2e8 100644 --- a/sigi/apps/contatos/models.py +++ b/sigi/apps/contatos/models.py @@ -14,10 +14,15 @@ class UnidadeFederativa(models.Model): codigo_ibge = models.PositiveIntegerField( u'código IBGE', primary_key=True, + unique=True, help_text='Código do estado segundo IBGE.' ) nome = models.CharField(max_length=25) - sigla = models.CharField(max_length=2, help_text="Exemplo: MG.") + sigla = models.CharField( + max_length=2, + unique=True, + help_text="Exemplo: MG.", + ) regiao = models.CharField(max_length=2, choices=REGIAO_CHOICES) populacao = models.PositiveIntegerField('população') @@ -33,6 +38,7 @@ class Municipio(models.Model): codigo_ibge = models.PositiveIntegerField( u'código IBGE', primary_key=True, + unique=True, help_text='Código do município segundo IBGE.' ) codigo_mesorregiao = models.PositiveIntegerField( diff --git a/sigi/settings.py b/sigi/settings.py index 84148b9..89074d6 100644 --- a/sigi/settings.py +++ b/sigi/settings.py @@ -84,6 +84,7 @@ INSTALLED_APPS = ( 'django.contrib.sites', 'django.contrib.databrowse', 'django.contrib.admin', + 'django.contrib.admindocs', 'django_extensions', # http://django-command-extensions.googlecode.com/ 'sigi.apps.casas', 'sigi.apps.contatos', diff --git a/sigi/urls.py b/sigi/urls.py index 42dd4d8..e412cf0 100644 --- a/sigi/urls.py +++ b/sigi/urls.py @@ -10,8 +10,8 @@ map(databrowse.site.register, get_models()) urlpatterns = patterns( '', - (r'^(.*)', admin.site.root), (r'^doc/', include('django.contrib.admindocs.urls')), + (r'^(.*)', admin.site.root), # databrowse (r'^databrowse/(.*)', databrowse.site.root),