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. 23
      sigi/sites.py

25
sigi/apps/mesas/admin.py

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

2
sigi/apps/mesas/models.py

@ -86,7 +86,7 @@ class MesaDiretora(models.Model):
verbose_name_plural = 'Mesas Diretoras' verbose_name_plural = 'Mesas Diretoras'
def __unicode__(self): 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): class Cargo(models.Model):
descricao = models.CharField(u'descrição', max_length=30) descricao = models.CharField(u'descrição', max_length=30)

26
sigi/apps/parlamentares/admin.py

@ -1,21 +1,45 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
from django.contrib import admin 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 from sigi.apps.parlamentares.models import Partido, Parlamentar, Mandato
class TelefonesInline(generic.GenericTabularInline):
model = Telefone
extra = 1
class PartidoAdmin(admin.ModelAdmin): class PartidoAdmin(admin.ModelAdmin):
list_display = ('nome', 'sigla') list_display = ('nome', 'sigla')
list_display_links = ('nome', 'sigla') list_display_links = ('nome', 'sigla')
search_fields = ('nome', 'sigla')
class ParlamentarAdmin(admin.ModelAdmin): class ParlamentarAdmin(admin.ModelAdmin):
inlines = (TelefonesInline,)
list_display = ('nome_completo', 'nome_parlamentar', 'sexo') list_display = ('nome_completo', 'nome_parlamentar', 'sexo')
list_display_links = ('nome_completo', 'nome_parlamentar') 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} radio_fields = {'sexo': admin.VERTICAL}
class MandatoAdmin(admin.ModelAdmin): class MandatoAdmin(admin.ModelAdmin):
list_display = ('parlamentar', 'legislatura', 'partido', list_display = ('parlamentar', 'legislatura', 'partido',
'inicio_mandato', 'fim_mandato', 'is_afastado') 'inicio_mandato', 'fim_mandato', 'is_afastado')
list_filter = ('is_afastado', 'partido', 'suplencia') 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} radio_fields = {'suplencia': admin.VERTICAL}
admin.site.register(Partido, PartidoAdmin) admin.site.register(Partido, PartidoAdmin)

19
sigi/apps/parlamentares/models.py

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

23
sigi/sites.py

@ -14,7 +14,14 @@ from sigi.apps.inventario.admin import (Fornecedor, FornecedorAdmin, Fabricante,
TipoEquipamentoAdmin, ModeloEquipamento, TipoEquipamentoAdmin, ModeloEquipamento,
ModeloEquipamentoAdmin, Bem, BemAdmin) ModeloEquipamentoAdmin, Bem, BemAdmin)
from sigi.apps.servicos.admin import Servico, ServicoAdmin 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' index_template = 'index.html'
@ -56,3 +63,17 @@ default.register(Bem, BemAdmin)
# sigi.apps.servicos # sigi.apps.servicos
default.register(Servico, ServicoAdmin) 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