Browse Source

Adicionado CRUD de mesas e parlamentares.

0.2
Guilherme Gondim 17 years ago
parent
commit
a9a3a94520
  1. 25
      sigi/apps/mesas/admin.py
  2. 2
      sigi/apps/mesas/models.py
  3. 26
      sigi/apps/parlamentares/admin.py
  4. 19
      sigi/apps/parlamentares/models.py
  5. 25
      sigi/sites.py

25
sigi/apps/mesas/admin.py

@ -5,28 +5,42 @@ from sigi.apps.mesas.models import (Legislatura, Coligacao, ComposicaoColigacao,
MembroMesaDiretora)
class LegislaturaAdmin(admin.ModelAdmin):
date_hierarchy = 'data_inicio'
list_display = ('numero', 'data_inicio', 'data_fim', 'data_eleicao')
list_display_links = ('numero',)
search_fields = ('numero',)
class ColigacaoAdmin(admin.ModelAdmin):
list_display = ('nome', 'legislatura', 'numero_votos')
list_display_links = ('nome',)
search_fields = ('nome',)
search_fields = ('nome', 'legislatura__numero')
class ComposicaoColigacaoAdmin(admin.ModelAdmin):
list_display = ('coligacao', 'partido')
list_display_links = ('coligacao', 'partido')
list_filter = ('partido',)
search_fields = ('coligacao__nome', 'partido__nome', 'partido__sigla')
class SessaoLegislativaAdmin(admin.ModelAdmin):
list_display = ('numero', 'mesa_diretora', 'legislatura', 'tipo',
'data_inicio', 'data_fim')
list_display_links = ('numero',)
list_filter = ('tipo',)
fieldsets = (
(None, {
'fields': ('numero', 'mesa_diretora', 'legislatura', 'tipo')
}),
(None, {
'fields': (('data_inicio', 'data_fim'),
('data_inicio_intervalo', 'data_fim_intervalo'))
}),
)
radio_fields = {'tipo': admin.VERTICAL}
search_fields = ('numero', 'mesa_diretora__casa_legislativa__nome')
class CargoAdmin(admin.ModelAdmin):
list_display = ('descricao',)
search_fields = ('descricao',)
class MembroMesaDiretoraInline(admin.TabularInline):
model = MembroMesaDiretora
@ -34,14 +48,17 @@ class MembroMesaDiretoraInline(admin.TabularInline):
extra = 4
class MembroMesaDiretoraAdmin(admin.ModelAdmin):
list_display = ('parlamentar', 'cargo')
list_display_links = ('parlamentar', 'cargo')
list_display = ('parlamentar', 'cargo', 'mesa_diretora')
list_display_links = ('parlamentar',)
list_filter = ('cargo',)
search_fields = ('parlamentar', 'cargo')
search_fields = ('cargo__descricao', 'parlamentar__nome_completo',
'parlamentar__nome_parlamentar',
'mesa_diretora__casa_legislativa__nome')
class MesaDiretoraAdmin(admin.ModelAdmin):
inlines = (MembroMesaDiretoraInline,)
list_display = ('id', 'casa_legislativa')
search_fields = ('casa_legislativa__nome',)
admin.site.register(Legislatura, LegislaturaAdmin)
admin.site.register(Coligacao, ColigacaoAdmin)

2
sigi/apps/mesas/models.py

@ -86,7 +86,7 @@ class MesaDiretora(models.Model):
verbose_name_plural = 'Mesas Diretoras'
def __unicode__(self):
return 'Mesa Diretora da(o) %s' % unicode(self.casa_legislativa)
return 'Mesa Diretora da %s' % unicode(self.casa_legislativa)
class Cargo(models.Model):
descricao = models.CharField(u'descrição', max_length=30)

26
sigi/apps/parlamentares/admin.py

@ -1,21 +1,45 @@
# -*- coding: utf-8 -*-
from django.contrib import admin
from django.contrib.contenttypes import generic
from sigi.apps.contatos.models import Telefone
from sigi.apps.parlamentares.models import Partido, Parlamentar, Mandato
class TelefonesInline(generic.GenericTabularInline):
model = Telefone
extra = 1
class PartidoAdmin(admin.ModelAdmin):
list_display = ('nome', 'sigla')
list_display_links = ('nome', 'sigla')
search_fields = ('nome', 'sigla')
class ParlamentarAdmin(admin.ModelAdmin):
inlines = (TelefonesInline,)
list_display = ('nome_completo', 'nome_parlamentar', 'sexo')
list_display_links = ('nome_completo', 'nome_parlamentar')
list_filter = ('sexo',)
list_filter = ('nome_completo', 'sexo')
fieldsets = (
(None, {
'fields': ('nome_completo', 'nome_parlamentar', 'sexo'),
}),
('Endereço', {
'fields': ('logradouro', 'bairro', 'municipio', 'cep'),
}),
('Outras informações', {
'fields': ('data_nascimento', 'email', 'pagina_web', 'foto'),
}),
)
search_fields = ('nome_completo', 'nome_parlamentar', 'email',
'pagina_web', 'municipio__nome')
radio_fields = {'sexo': admin.VERTICAL}
class MandatoAdmin(admin.ModelAdmin):
list_display = ('parlamentar', 'legislatura', 'partido',
'inicio_mandato', 'fim_mandato', 'is_afastado')
list_filter = ('is_afastado', 'partido', 'suplencia')
search_fields = ('legislatura__numero', 'parlamentar__nome_completo',
'parlamentar__nome_parlamentar', 'partido__nome',
'partido__sigla')
radio_fields = {'suplencia': admin.VERTICAL}
admin.site.register(Partido, PartidoAdmin)

19
sigi/apps/parlamentares/models.py

@ -18,6 +18,7 @@ class Parlamentar(models.Model):
('F', 'Feminino'),
)
nome_completo = models.CharField(max_length=60)
nome_completo.alphabetic_filter = True
nome_parlamentar = models.CharField(max_length=35, blank=True)
foto = models.ImageField(
upload_to='fotos/parlamentares',
@ -36,17 +37,18 @@ class Parlamentar(models.Model):
blank=True,
null=True,
)
logradouro = models.CharField(max_length=100)
bairro = models.CharField(max_length=40)
cidade = models.ForeignKey('contatos.Municipio')
logradouro = models.CharField(max_length=100, blank=True)
bairro = models.CharField(max_length=40, blank=True)
municipio = models.ForeignKey('contatos.Municipio', blank=True, null=True)
cep = models.CharField(
'CEP',
max_length=9,
blank=True,
help_text="Formato: <em>XXXXX-XXX</em>."
)
telefones = generic.GenericRelation('contatos.Telefone')
pagina_web = models.URLField(u'página web')
email = models.EmailField('e-mail')
pagina_web = models.URLField(u'página web', blank=True)
email = models.EmailField('e-mail', blank=True)
class Meta:
ordering = ('nome_completo',)
@ -68,12 +70,15 @@ class Mandato(models.Model):
inicio_mandato = models.DateField(u'início de mandato')
fim_mandato = models.DateField('fim de mandato')
is_afastado = models.BooleanField(
'Afastado',
'afastado',
default=False,
help_text=u'Marque caso parlamentar não esteja ativo'
help_text=u'Marque caso parlamentar não esteja ativo.'
)
suplencia = models.CharField(
u'suplência',
max_length=1,
choices=SUPLENCIA_CHOICES,
)
def __unicode__(self):
return str(self.id)

25
sigi/sites.py

@ -14,9 +14,16 @@ from sigi.apps.inventario.admin import (Fornecedor, FornecedorAdmin, Fabricante,
TipoEquipamentoAdmin, ModeloEquipamento,
ModeloEquipamentoAdmin, Bem, BemAdmin)
from sigi.apps.servicos.admin import Servico, ServicoAdmin
from sigi.apps.mesas.admin import (Legislatura, LegislaturaAdmin, Coligacao,
ColigacaoAdmin, ComposicaoColigacao,
ComposicaoColigacaoAdmin, SessaoLegislativa,
SessaoLegislativaAdmin, MesaDiretora,
MesaDiretoraAdmin, Cargo, CargoAdmin,
MembroMesaDiretora, MembroMesaDiretoraAdmin)
from sigi.apps.parlamentares.admin import (Partido, PartidoAdmin, Parlamentar,
ParlamentarAdmin, Mandato, MandatoAdmin)
class DefaultSite(AdminSite):
class DefaultSite(AdminSite):
index_template = 'index.html'
login_template = 'login.html'
@ -56,3 +63,17 @@ default.register(Bem, BemAdmin)
# sigi.apps.servicos
default.register(Servico, ServicoAdmin)
# sigi.apps.mesas
default.register(Legislatura, LegislaturaAdmin)
default.register(Coligacao, ColigacaoAdmin)
default.register(ComposicaoColigacao, ComposicaoColigacaoAdmin)
default.register(SessaoLegislativa, SessaoLegislativaAdmin)
default.register(MesaDiretora, MesaDiretoraAdmin)
default.register(Cargo, CargoAdmin)
default.register(MembroMesaDiretora, MembroMesaDiretoraAdmin)
# sigi.apps.parlamentares
default.register(Partido, PartidoAdmin)
default.register(Parlamentar, ParlamentarAdmin)
default.register(Mandato, MandatoAdmin)

Loading…
Cancel
Save