mirror of https://github.com/interlegis/sigi.git
Marcio Mazza
10 years ago
10 changed files with 246 additions and 260 deletions
@ -1,114 +0,0 @@ |
|||
# -*- coding: utf-8 -*- |
|||
from django.contrib import admin |
|||
from django.http import HttpResponse |
|||
from django.utils.html import escape |
|||
from django.utils.translation import ugettext as _ |
|||
|
|||
from sigi.apps.mesas.models import (Legislatura, Coligacao, ComposicaoColigacao, |
|||
SessaoLegislativa, MesaDiretora, Cargo, |
|||
MembroMesaDiretora) |
|||
from sigi.apps.parlamentares.models import Mandato |
|||
from sigi.apps.utils.base_admin import BaseModelAdmin |
|||
|
|||
|
|||
class MandatoInline(admin.TabularInline): |
|||
model = Mandato |
|||
raw_id_fields = ['parlamentar', ] |
|||
|
|||
|
|||
class LegislaturaAdmin(BaseModelAdmin): |
|||
date_hierarchy = 'data_inicio' |
|||
list_display = ('numero', 'casa_legislativa', 'uf', 'data_inicio', 'data_fim', 'data_eleicao', 'total_parlamentares') |
|||
raw_id_fields = ('casa_legislativa',) |
|||
list_display_links = ('numero',) |
|||
list_filter = ('casa_legislativa__municipio__uf', ) |
|||
search_fields = ('casa_legislativa__nome', 'casa_legislativa__municipio__nome') |
|||
inlines = (MandatoInline,) |
|||
|
|||
def uf(self, obj): |
|||
return obj.casa_legislativa.municipio.uf.sigla |
|||
uf.short_description = _(u'UF') |
|||
uf.admin_order_field = 'casa_legislativa__municipio__uf' |
|||
|
|||
def lookup_allowed(self, lookup, value): |
|||
return super(LegislaturaAdmin, self).lookup_allowed(lookup, value) or \ |
|||
lookup in ['casa_legislativa__municipio__uf__codigo_ibge__exact'] |
|||
|
|||
def response_change(self, request, obj): |
|||
response = super(LegislaturaAdmin, self).response_change(request, obj) |
|||
if "_popup" in request.POST: |
|||
response = HttpResponse('<script type="text/javascript">opener.dismissAddAnotherPopup(window, "%s", "%s");</script>' % |
|||
# escape() calls force_unicode. |
|||
(escape(obj.pk), escapejs(obj))) |
|||
return response |
|||
|
|||
|
|||
class ColigacaoAdmin(BaseModelAdmin): |
|||
list_display = ('nome', 'legislatura', 'numero_votos') |
|||
list_display_links = ('nome',) |
|||
raw_id_fields = ('legislatura',) |
|||
search_fields = ('nome', 'legislatura__numero') |
|||
|
|||
|
|||
class ComposicaoColigacaoAdmin(BaseModelAdmin): |
|||
list_display = ('coligacao', 'partido') |
|||
list_display_links = ('coligacao', 'partido') |
|||
list_filter = ('partido',) |
|||
raw_id_fields = ('coligacao', 'partido') |
|||
search_fields = ('coligacao__nome', 'partido__nome', 'partido__sigla') |
|||
|
|||
|
|||
class SessaoLegislativaAdmin(BaseModelAdmin): |
|||
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} |
|||
raw_id_fields = ('mesa_diretora', 'legislatura') |
|||
search_fields = ('numero', 'mesa_diretora__casa_legislativa__nome') |
|||
|
|||
|
|||
class CargoAdmin(BaseModelAdmin): |
|||
list_display = ('descricao',) |
|||
search_fields = ('descricao',) |
|||
|
|||
|
|||
class MembroMesaDiretoraInline(admin.TabularInline): |
|||
model = MembroMesaDiretora |
|||
max_num = 11 |
|||
extra = 4 |
|||
raw_id_fields = ('parlamentar', 'cargo') |
|||
|
|||
|
|||
class MembroMesaDiretoraAdmin(BaseModelAdmin): |
|||
list_display = ('parlamentar', 'cargo', 'mesa_diretora') |
|||
list_display_links = ('parlamentar',) |
|||
list_filter = ('cargo',) |
|||
raw_id_fields = ('parlamentar', 'cargo', 'mesa_diretora') |
|||
search_fields = ('cargo__descricao', 'parlamentar__nome_completo', |
|||
'parlamentar__nome_parlamentar', |
|||
'mesa_diretora__casa_legislativa__nome') |
|||
|
|||
|
|||
class MesaDiretoraAdmin(BaseModelAdmin): |
|||
inlines = (MembroMesaDiretoraInline,) |
|||
raw_id_fields = ('casa_legislativa',) |
|||
list_display = ('id', 'casa_legislativa') |
|||
search_fields = ('casa_legislativa__nome',) |
|||
|
|||
admin.site.register(Legislatura, LegislaturaAdmin) |
|||
admin.site.register(Coligacao, ColigacaoAdmin) |
|||
admin.site.register(ComposicaoColigacao, ComposicaoColigacaoAdmin) |
|||
admin.site.register(SessaoLegislativa, SessaoLegislativaAdmin) |
|||
admin.site.register(MesaDiretora, MesaDiretoraAdmin) |
|||
admin.site.register(Cargo, CargoAdmin) |
|||
admin.site.register(MembroMesaDiretora, MembroMesaDiretoraAdmin) |
@ -1,135 +0,0 @@ |
|||
# coding: utf-8 |
|||
from django.db import models |
|||
from django.utils.translation import ugettext as _ |
|||
|
|||
from sigi.apps.casas.models import CasaLegislativa |
|||
|
|||
|
|||
class Legislatura(models.Model): |
|||
casa_legislativa = models.ForeignKey(CasaLegislativa) |
|||
numero = models.PositiveSmallIntegerField(_(u'número legislatura')) |
|||
data_inicio = models.DateField(_(u'início')) |
|||
data_fim = models.DateField(_(u'fim')) |
|||
data_eleicao = models.DateField(_(u'data da eleição')) |
|||
total_parlamentares = models.PositiveIntegerField(_(u"Total de parlamentares")) |
|||
|
|||
casa_legislativa.convenio_uf_filter = True |
|||
casa_legislativa.convenio_cl_tipo_filter = True |
|||
|
|||
class Meta: |
|||
unique_together = (('casa_legislativa', 'numero')) |
|||
ordering = ['casa_legislativa__municipio__uf__sigla', '-data_inicio'] |
|||
|
|||
def __unicode__(self): |
|||
return _(u"%(number)sª legislatura da %(parliament)s (%(initial_year)s-%(final_year)s)") % dict( |
|||
number=self.numero, |
|||
parliament=self.casa_legislativa.__unicode__(), |
|||
initial_year=self.data_inicio.year, |
|||
final_year=self.data_fim.year) |
|||
|
|||
|
|||
class Coligacao(models.Model): |
|||
nome = models.CharField(max_length=50) |
|||
legislatura = models.ForeignKey(Legislatura) |
|||
numero_votos = models.PositiveIntegerField( |
|||
_(u'número de votos'), |
|||
blank=True, |
|||
null=True, |
|||
) |
|||
|
|||
class Meta: |
|||
ordering = ('legislatura', 'nome') |
|||
verbose_name = _(u'coligação') |
|||
verbose_name_plural = _(u'coligações') |
|||
|
|||
def __unicode__(self): |
|||
return self.nome |
|||
|
|||
|
|||
class ComposicaoColigacao(models.Model): |
|||
coligacao = models.ForeignKey(Coligacao, verbose_name=_(u'coligação')) |
|||
partido = models.ForeignKey('parlamentares.Partido') |
|||
|
|||
class Meta: |
|||
verbose_name = _(u'composição da coligação') |
|||
verbose_name_plural = _(u'composições das coligações') |
|||
|
|||
def __unicode__(self): |
|||
return str(self.id) |
|||
|
|||
|
|||
class SessaoLegislativa(models.Model): |
|||
SESSAO_CHOICES = ( |
|||
('O', _(u'Ordinária')), |
|||
('E', _(u'Extraordinária')), |
|||
) |
|||
numero = models.PositiveSmallIntegerField(_(u'número da sessão'), unique=True) |
|||
mesa_diretora = models.ForeignKey( |
|||
'MesaDiretora', |
|||
verbose_name=_(u'Mesa Diretora') |
|||
) |
|||
legislatura = models.ForeignKey(Legislatura) |
|||
tipo = models.CharField( |
|||
max_length=1, |
|||
choices=SESSAO_CHOICES, |
|||
default='O' |
|||
) |
|||
data_inicio = models.DateField(_(u'início')) |
|||
data_fim = models.DateField(_(u'fim')) |
|||
data_inicio_intervalo = models.DateField( |
|||
_(u'início de intervalo'), |
|||
blank=True, |
|||
null=True |
|||
) |
|||
data_fim_intervalo = models.DateField( |
|||
_(u'fim de intervalo'), |
|||
blank=True, |
|||
null=True |
|||
) |
|||
|
|||
class Meta: |
|||
ordering = ('legislatura', 'numero') |
|||
verbose_name = _(u'Sessão Legislativa') |
|||
verbose_name_plural = _(u'Sessões Legislativas') |
|||
|
|||
def __unicode__(self): |
|||
return str(self.numero) |
|||
|
|||
|
|||
class MesaDiretora(models.Model): |
|||
casa_legislativa = models.ForeignKey( |
|||
'casas.CasaLegislativa', |
|||
verbose_name=_(u'Casa Legislativa') |
|||
) |
|||
|
|||
class Meta: |
|||
verbose_name = _(u'Mesa Diretora') |
|||
verbose_name_plural = _(u'Mesas Diretoras') |
|||
|
|||
def __unicode__(self): |
|||
return _(u'Mesa Diretora da %s') % unicode(self.casa_legislativa) |
|||
|
|||
|
|||
class Cargo(models.Model): |
|||
descricao = models.CharField(_(u'descrição'), max_length=30) |
|||
|
|||
class Meta: |
|||
ordering = ('descricao',) |
|||
|
|||
def __unicode__(self): |
|||
return self.descricao |
|||
|
|||
|
|||
class MembroMesaDiretora(models.Model): |
|||
parlamentar = models.ForeignKey('parlamentares.Parlamentar') |
|||
cargo = models.ForeignKey(Cargo) |
|||
mesa_diretora = models.ForeignKey(MesaDiretora) |
|||
|
|||
class Meta: |
|||
ordering = ('parlamentar',) |
|||
unique_together = ('cargo', 'mesa_diretora') |
|||
verbose_name = _(u'membro de Mesa Diretora') |
|||
verbose_name_plural = _(u'membros de Mesas Diretora') |
|||
|
|||
def __unicode__(self): |
|||
return '%s (%s)' % (unicode(self.parlamentar), unicode(self.cargo)) |
Loading…
Reference in new issue