Browse Source

Adjust sessao model fields

pull/6/head
Marcio Mazza 10 years ago
parent
commit
10c55d4586
  1. 12
      sapl/test_utils.py
  2. 9
      sapl/utils.py
  3. 106
      sessao/models.py

12
sapl/test_utils.py

@ -0,0 +1,12 @@
from pytest import mark
from utils import make_choices
@mark.parametrize("choice_pairs, result", [
(
['A', 'aaa', 'B', 'bbb'],
[[('A', 'aaa'), ('B', 'bbb')], 'A', 'B']
),
])
def test_make_choices(choice_pairs, result):
assert list(make_choices(*choice_pairs)) == result

9
sapl/utils.py

@ -11,3 +11,12 @@ def register_all_models_in_admin(module_name):
if not admin.site.is_registered(model): if not admin.site.is_registered(model):
admin.site.register(model, CustomModelAdmin) admin.site.register(model, CustomModelAdmin)
def make_choices(*choice_pairs):
assert len(choice_pairs) % 2 == 0
choice_pairs = iter(choice_pairs)
choices = zip(choice_pairs, choice_pairs)
yield choices
for key, value in choices:
yield key

106
sessao/models.py

@ -4,11 +4,12 @@ from django.utils.translation import ugettext as _
from materia.models import MateriaLegislativa from materia.models import MateriaLegislativa
from parlamentares.models import CargoMesa, Parlamentar, SessaoLegislativa, Legislatura from parlamentares.models import CargoMesa, Parlamentar, SessaoLegislativa, Legislatura
from sapl.utils import make_choices
class TipoSessaoPlenaria(models.Model): class TipoSessaoPlenaria(models.Model):
nome_sessao = models.CharField(max_length=30, verbose_name=_(u'Tipo')) # nom_sessao nome = models.CharField(max_length=30, verbose_name=_(u'Tipo')) # nom_sessao
numero_minimo = models.IntegerField(verbose_name=_(u'Quórum mínimo')) # num_minimo quorum_minimo = models.IntegerField(verbose_name=_(u'Quórum mínimo')) # num_minimo
class Meta: class Meta:
verbose_name = _(u'Tipo de Sessão Plenária') verbose_name = _(u'Tipo de Sessão Plenária')
@ -16,20 +17,22 @@ class TipoSessaoPlenaria(models.Model):
class SessaoPlenaria(models.Model): class SessaoPlenaria(models.Model):
# TODO lixo??? parece que era FK. Seria: # TODO trash??? Seems to have been a FK in the past. Would be:
# andamento_sessao = models.ForeignKey(AndamentoSessao, blank=True, null=True) # andamento_sessao = models.ForeignKey(AndamentoSessao, blank=True, null=True)
# TODO analyze querying all hosted databases !
cod_andamento_sessao = models.IntegerField(blank=True, null=True) # cod_andamento_sessao cod_andamento_sessao = models.IntegerField(blank=True, null=True) # cod_andamento_sessao
tipo = models.ForeignKey(TipoSessaoPlenaria, verbose_name=_(u'Tipo')) # tip_sessao tipo = models.ForeignKey(TipoSessaoPlenaria, verbose_name=_(u'Tipo')) # tip_sessao
sessao_leg = models.ForeignKey(SessaoLegislativa, verbose_name=_(u'Sessão Legislativa')) # cod_sessao_leg sessao_legislativa = models.ForeignKey(SessaoLegislativa, verbose_name=_(u'Sessão Legislativa')) # cod_sessao_leg
legislatura = models.ForeignKey(Legislatura, verbose_name=_(u'Legislatura')) # num_legislatura legislatura = models.ForeignKey(Legislatura, verbose_name=_(u'Legislatura')) # num_legislatura
# XXX seems to be empty
tipo_expediente = models.CharField(max_length=10) # tip_expediente tipo_expediente = models.CharField(max_length=10) # tip_expediente
data_inicio_sessao = models.DateField(verbose_name=_(u'Abertura')) # dat_inicio_sessao data_inicio = models.DateField(verbose_name=_(u'Abertura')) # dat_inicio_sessao
dia_sessao = models.CharField(max_length=15) # dia_sessao dia = models.CharField(max_length=15) # dia_sessao
hr_inicio_sessao = models.CharField(max_length=5, verbose_name=_(u'Horário')) # hr_inicio_sessao hora_inicio = models.CharField(max_length=5, verbose_name=_(u'Horário')) # hr_inicio_sessao
hr_fim_sessao = models.CharField(max_length=5, blank=True, null=True, verbose_name=_(u'Horário')) # hr_fim_sessao hora_fim = models.CharField(max_length=5, blank=True, null=True, verbose_name=_(u'Horário')) # hr_fim_sessao
numero_sessao_plen = models.IntegerField(verbose_name=_(u'Número')) # num_sessao_plen numero = models.IntegerField(verbose_name=_(u'Número')) # num_sessao_plen
data_fim_sessao = models.DateField(blank=True, null=True, verbose_name=_(u'Encerramento')) # dat_fim_sessao data_fim = models.DateField(blank=True, null=True, verbose_name=_(u'Encerramento')) # dat_fim_sessao
url_audio = models.CharField(max_length=150, blank=True, null=True, verbose_name=_(u'URL Arquivo Áudio (Formatos MP3 / AAC)')) # url_audio url_audio = models.CharField(max_length=150, blank=True, null=True, verbose_name=_(u'URL Arquivo Áudio (Formatos MP3 / AAC)')) # url_audio
url_video = models.CharField(max_length=150, blank=True, null=True, verbose_name=_(u'URL Arquivo Vídeo (Formatos MP4 / FLV / WebM)')) # url_video url_video = models.CharField(max_length=150, blank=True, null=True, verbose_name=_(u'URL Arquivo Vídeo (Formatos MP4 / FLV / WebM)')) # url_video
@ -38,14 +41,26 @@ class SessaoPlenaria(models.Model):
verbose_name_plural = _(u'Sessões Plenárias') verbose_name_plural = _(u'Sessões Plenárias')
class ExpedienteMateria(models.Model): class AbstractOrdemDia(models.Model):
sessao_plen = models.ForeignKey(SessaoPlenaria) # cod_sessao_plen TIPO_VOTACAO_CHOICES, SIMBOLICA, NOMINAL, SECRETA = make_choices(
1, _(u'Simbólica'),
2, _(u'Nominal'),
3, _(u'Secreta'),
)
sessao_plenaria = models.ForeignKey(SessaoPlenaria) # cod_sessao_plen
materia = models.ForeignKey(MateriaLegislativa) # cod_materia materia = models.ForeignKey(MateriaLegislativa) # cod_materia
data_ordem = models.DateField(verbose_name=_(u'Data da Sessão')) # dat_ordem data_ordem = models.DateField(verbose_name=_(u'Data da Sessão')) # dat_ordem
observacao = models.TextField(blank=True, null=True, verbose_name=_(u'Ementa')) # txt_observacao observacao = models.TextField(blank=True, null=True, verbose_name=_(u'Ementa')) # txt_observacao
numero_ordem = models.IntegerField(verbose_name=_(u'Nº Ordem')) # num_ordem numero_ordem = models.IntegerField(verbose_name=_(u'Nº Ordem')) # num_ordem
resultado = models.TextField(blank=True, null=True) # txt_resultado resultado = models.TextField(blank=True, null=True) # txt_resultado
tipo_votacao = models.IntegerField(verbose_name=_(u'Tipo de votação')) # tip_votacao tipo_votacao = models.IntegerField(verbose_name=_(u'Tipo de votação'), choices=TIPO_VOTACAO_CHOICES) # tip_votacao
class Meta:
abstract = True
class ExpedienteMateria(AbstractOrdemDia):
class Meta: class Meta:
verbose_name = _(u'Matéria do Expediente') verbose_name = _(u'Matéria do Expediente')
@ -53,72 +68,66 @@ class ExpedienteMateria(models.Model):
class TipoExpediente(models.Model): class TipoExpediente(models.Model):
nome_expediente = models.CharField(max_length=100, verbose_name=_(u'Tipo')) # nom_expediente nome = models.CharField(max_length=100, verbose_name=_(u'Tipo')) # nom_expediente
class Meta: class Meta:
verbose_name = _(u'Tipo de Expediente') verbose_name = _(u'Tipo de Expediente')
verbose_name_plural = _(u'Tipos de Expediente') verbose_name_plural = _(u'Tipos de Expediente')
class ExpedienteSessaoPlenaria(models.Model): class ExpedienteSessao(models.Model): # ExpedienteSessaoPlenaria
sessao_plen = models.ForeignKey(SessaoPlenaria) # cod_sessao_plen sessao_plenaria = models.ForeignKey(SessaoPlenaria) # cod_sessao_plen
expediente = models.ForeignKey(TipoExpediente) # cod_expediente tipo = models.ForeignKey(TipoExpediente) # cod_expediente
expediente = models.TextField(blank=True, null=True) # txt_expediente conteudo = models.TextField(blank=True, null=True, verbose_name=_(u'Conteúdo do expediente')) # txt_expediente
class Meta: class Meta:
verbose_name = _(u'Expediente de Sessão Plenaria') verbose_name = _(u'Expediente de Sessão Plenaria')
verbose_name_plural = _(u'Expedientes de Sessão Plenaria') verbose_name_plural = _(u'Expedientes de Sessão Plenaria')
class MesaSessaoPlenaria(models.Model): class IntegranteMesa(models.Model): # MesaSessaoPlenaria
sessao_plenaria = models.ForeignKey(SessaoPlenaria) # cod_sessao_plen
cargo = models.ForeignKey(CargoMesa) # cod_cargo cargo = models.ForeignKey(CargoMesa) # cod_cargo
sessao_leg = models.ForeignKey(SessaoLegislativa) # cod_sessao_leg
parlamentar = models.ForeignKey(Parlamentar) # cod_parlamentar parlamentar = models.ForeignKey(Parlamentar) # cod_parlamentar
sessao_plen = models.ForeignKey(SessaoPlenaria) # cod_sessao_plen
class Meta: class Meta:
verbose_name = _(u'Mesa de Sessão Plenaria') verbose_name = _(u'Participação em Mesa de Sessão Plenaria')
verbose_name_plural = _(u'Mesas de Sessão Plenaria') verbose_name_plural = _(u'Participações em Mesas de Sessão Plenaria')
class Oradores(models.Model): class AbstractOrador(models.Model): # Oradores
sessao_plen = models.ForeignKey(SessaoPlenaria) # cod_sessao_plen sessao_plenaria = models.ForeignKey(SessaoPlenaria) # cod_sessao_plen
parlamentar = models.ForeignKey(Parlamentar, verbose_name=_(u'Parlamentar')) # cod_parlamentar parlamentar = models.ForeignKey(Parlamentar, verbose_name=_(u'Parlamentar')) # cod_parlamentar
numero_ordem = models.IntegerField(verbose_name=_(u'Ordem de pronunciamento')) # num_ordem numero_ordem = models.IntegerField(verbose_name=_(u'Ordem de pronunciamento')) # num_ordem
url_discurso = models.CharField(max_length=150, blank=True, null=True, verbose_name=_(u'URL Vídeo')) # url_discurso url_discurso = models.CharField(max_length=150, blank=True, null=True, verbose_name=_(u'URL Vídeo')) # url_discurso
class Meta:
abstract = True
class Orador(AbstractOrador): # Oradores
class Meta: class Meta:
verbose_name = _(u'Orador das Explicações Pessoais') verbose_name = _(u'Orador das Explicações Pessoais')
verbose_name_plural = _(u'Oradores das Explicações Pessoais') verbose_name_plural = _(u'Oradores das Explicações Pessoais')
class OradoresExpediente(models.Model): class OradorExpediente(AbstractOrador): # OradoresExpediente
sessao_plen = models.ForeignKey(SessaoPlenaria) # cod_sessao_plen
parlamentar = models.ForeignKey(Parlamentar, verbose_name=_(u'Parlamentar')) # cod_parlamentar
numero_ordem = models.IntegerField(verbose_name=_(u'Ordem de pronunciamento')) # num_ordem
url_discurso = models.CharField(max_length=150, blank=True, null=True, verbose_name=_(u'URL Vídeo')) # url_discurso
class Meta: class Meta:
verbose_name = _(u'Orador do Expediente') verbose_name = _(u'Orador do Expediente')
verbose_name_plural = _(u'Oradores do Expediente') verbose_name_plural = _(u'Oradores do Expediente')
class OrdemDia(models.Model): class OrdemDia(AbstractOrdemDia):
sessao_plen = models.ForeignKey(SessaoPlenaria) # cod_sessao_plen
materia = models.ForeignKey(MateriaLegislativa) # cod_materia
data_ordem = models.DateField(verbose_name=_(u'Data da Sessão')) # dat_ordem
observacao = models.TextField(blank=True, null=True, verbose_name=_(u'Ementa')) # txt_observacao
numero_ordem = models.IntegerField(verbose_name=_(u'Nº Ordem')) # num_ordem
resultado = models.TextField(blank=True, null=True) # txt_resultado
tipo_votacao = models.IntegerField(verbose_name=_(u'Tipo de votação')) # tip_votacao
class Meta: class Meta:
verbose_name = _(u'Matéria da Ordem do Dia') verbose_name = _(u'Matéria da Ordem do Dia')
verbose_name_plural = _(u'Matérias da Ordem do Dia') verbose_name_plural = _(u'Matérias da Ordem do Dia')
class OrdemDiaPresenca(models.Model): class PresencaOrdemDia(models.Model): # OrdemDiaPresenca
sessao_plen = models.ForeignKey(SessaoPlenaria) # cod_sessao_plen sessao_plenaria = models.ForeignKey(SessaoPlenaria) # cod_sessao_plen
parlamentar = models.ForeignKey(Parlamentar) # cod_parlamentar parlamentar = models.ForeignKey(Parlamentar) # cod_parlamentar
data_ordem = models.DateField() # dat_ordem data_ordem = models.DateField() # dat_ordem
@ -128,7 +137,7 @@ class OrdemDiaPresenca(models.Model):
class TipoResultadoVotacao(models.Model): class TipoResultadoVotacao(models.Model):
nome_resultado = models.CharField(max_length=100, verbose_name=_(u'Tipo')) # nom_resultado nome = models.CharField(max_length=100, verbose_name=_(u'Tipo')) # nom_resultado
class Meta: class Meta:
verbose_name = _(u'Tipo de Resultado de Votação') verbose_name = _(u'Tipo de Resultado de Votação')
@ -139,9 +148,9 @@ class RegistroVotacao(models.Model):
tipo_resultado_votacao = models.ForeignKey(TipoResultadoVotacao, verbose_name=_(u'Resultado da Votação')) # tip_resultado_votacao tipo_resultado_votacao = models.ForeignKey(TipoResultadoVotacao, verbose_name=_(u'Resultado da Votação')) # tip_resultado_votacao
materia = models.ForeignKey(MateriaLegislativa) # cod_materia materia = models.ForeignKey(MateriaLegislativa) # cod_materia
ordem = models.ForeignKey(OrdemDia) # cod_ordem ordem = models.ForeignKey(OrdemDia) # cod_ordem
numero_votos_sim = models.IntegerField(verbose_name=_(u'Sim:')) # num_votos_sim numero_votos_sim = models.IntegerField(verbose_name=_(u'Sim')) # num_votos_sim
numero_votos_nao = models.IntegerField(verbose_name=_(u'Não:')) # num_votos_nao numero_votos_nao = models.IntegerField(verbose_name=_(u'Não')) # num_votos_nao
numero_abstencao = models.IntegerField(verbose_name=_(u'Abstenções:')) # num_abstencao numero_abstencoes = models.IntegerField(verbose_name=_(u'Abstenções')) # num_abstencao
observacao = models.TextField(blank=True, null=True, verbose_name=_(u'Observações')) # txt_observacao observacao = models.TextField(blank=True, null=True, verbose_name=_(u'Observações')) # txt_observacao
class Meta: class Meta:
@ -149,18 +158,19 @@ class RegistroVotacao(models.Model):
verbose_name_plural = _(u'Votações') verbose_name_plural = _(u'Votações')
class RegistroVotacaoParlamentar(models.Model): class VotoParlamentar(models.Model): # RegistroVotacaoParlamentar
votacao = models.ForeignKey(RegistroVotacao) # cod_votacao votacao = models.ForeignKey(RegistroVotacao) # cod_votacao
parlamentar = models.ForeignKey(Parlamentar) # cod_parlamentar parlamentar = models.ForeignKey(Parlamentar) # cod_parlamentar
vot_parlamentar = models.CharField(max_length=10) # vot_parlamentar # XXX change to restricted choices
voto = models.CharField(max_length=10) # vot_parlamentar
class Meta: class Meta:
verbose_name = _(u'Registro de Votação de Parlamentar') verbose_name = _(u'Registro de Votação de Parlamentar')
verbose_name_plural = _(u'Registros de Votações de Parlamentares') verbose_name_plural = _(u'Registros de Votações de Parlamentares')
class SessaoPlenariaPresenca(models.Model): class PresencaSessao(models.Model): # SessaoPlenariaPresenca
sessao_plen = models.ForeignKey(SessaoPlenaria) # cod_sessao_plen sessao_plenaria = models.ForeignKey(SessaoPlenaria) # cod_sessao_plen
parlamentar = models.ForeignKey(Parlamentar) # cod_parlamentar parlamentar = models.ForeignKey(Parlamentar) # cod_parlamentar
data_sessao = models.DateField(blank=True, null=True) # dat_sessao data_sessao = models.DateField(blank=True, null=True) # dat_sessao

Loading…
Cancel
Save