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