|
|
|
# -*- coding: utf-8 -*-
|
|
|
|
from django.db import models
|
|
|
|
from django.utils.translation import ugettext as _
|
|
|
|
|
|
|
|
|
|
|
|
class Legislatura(models.Model):
|
|
|
|
data_inicio = models.DateField(verbose_name=_(u'Data Início'))
|
|
|
|
data_fim = models.DateField(verbose_name=_(u'Data Fim'))
|
|
|
|
data_eleicao = models.DateField(verbose_name=_(u'Data Eleição'))
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
verbose_name = _(u'Legislatura')
|
|
|
|
verbose_name_plural = _(u'Legislaturas')
|
|
|
|
|
|
|
|
|
|
|
|
class SessaoLegislativa(models.Model):
|
|
|
|
ORDINARIA = 'O'
|
|
|
|
EXTRAORDINARIA = 'E'
|
|
|
|
TIPO_SESSAO_CHOICES = ((ORDINARIA, _(u'Ordinária')),
|
|
|
|
(EXTRAORDINARIA, _(u'Extraordinária')))
|
|
|
|
|
|
|
|
legislatura = models.ForeignKey(Legislatura)
|
|
|
|
numero = models.IntegerField(verbose_name=_(u'Número'))
|
|
|
|
tipo = models.CharField(max_length=1, verbose_name=_(u'Tipo'), choices=TIPO_SESSAO_CHOICES)
|
|
|
|
data_inicio = models.DateField(verbose_name=_(u'Data Início'))
|
|
|
|
data_fim = models.DateField(verbose_name=_(u'Data Fim'))
|
|
|
|
data_inicio_intervalo = models.DateField(blank=True, null=True, verbose_name=_(u'Início Intervalo'))
|
|
|
|
data_fim_intervalo = models.DateField(blank=True, null=True, verbose_name=_(u'Fim Intervalo'))
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
verbose_name = _(u'Sessão Legislativa')
|
|
|
|
verbose_name_plural = _(u'Sessões Legislativas')
|
|
|
|
|
|
|
|
|
|
|
|
class Coligacao(models.Model):
|
|
|
|
legislatura = models.ForeignKey(Legislatura, verbose_name=_(u'Legislatura'))
|
|
|
|
nome = models.CharField(max_length=50, verbose_name=_(u'Nome'))
|
|
|
|
numero_votos = models.IntegerField(blank=True, null=True, verbose_name=_(u'Nº Votos Recebidos'))
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
verbose_name = _(u'Coligação')
|
|
|
|
verbose_name_plural = _(u'Coligações')
|
|
|
|
|
|
|
|
|
|
|
|
class Partido(models.Model):
|
|
|
|
sigla = models.CharField(max_length=9, verbose_name=_(u'Sigla'))
|
|
|
|
nome = models.CharField(max_length=50, verbose_name=_(u'Nome'))
|
|
|
|
data_criacao = models.DateField(blank=True, null=True, verbose_name=_(u'Data Criação'))
|
|
|
|
data_extincao = models.DateField(blank=True, null=True, verbose_name=_(u'Data Extinção'))
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
verbose_name = _(u'Partido')
|
|
|
|
verbose_name_plural = _(u'Partidos')
|
|
|
|
|
|
|
|
|
|
|
|
class ComposicaoColigacao(models.Model):
|
|
|
|
# TODO M2M
|
|
|
|
partido = models.ForeignKey(Partido)
|
|
|
|
coligacao = models.ForeignKey(Coligacao)
|
|
|
|
|
|
|
|
|
|
|
|
class Municipio(models.Model): # Localidade
|
|
|
|
# TODO filter on migration leaving only cities
|
|
|
|
|
|
|
|
REGIAO_CHOICES = (
|
|
|
|
('CO', u'Centro-Oeste'),
|
|
|
|
('NE', u'Nordeste'),
|
|
|
|
('NO', u'Norte'),
|
|
|
|
('SE', u'Sudeste'), # TODO convert on migrate SD => SE
|
|
|
|
('SL', u'Sul'),
|
|
|
|
('EX', u'Exterior'),
|
|
|
|
)
|
|
|
|
|
|
|
|
UF_CHOICES = (
|
|
|
|
('AC', u'Acre'),
|
|
|
|
('AL', u'Alagoas'),
|
|
|
|
('AP', u'Amapá'),
|
|
|
|
('AM', u'Amazonas'),
|
|
|
|
('BA', u'Bahia'),
|
|
|
|
('CE', u'Ceará'),
|
|
|
|
('DF', u'Distrito Federal'),
|
|
|
|
('ES', u'Espírito Santo'),
|
|
|
|
('GO', u'Goiás'),
|
|
|
|
('MA', u'Maranhão'),
|
|
|
|
('MT', u'Mato Grosso'),
|
|
|
|
('MS', u'Mato Grosso do Sul'),
|
|
|
|
('MG', u'Minas Gerais'),
|
|
|
|
('PR', u'Paraná'),
|
|
|
|
('PB', u'Paraíba'),
|
|
|
|
('PA', u'Pará'),
|
|
|
|
('PE', u'Pernambuco'),
|
|
|
|
('PI', u'Piauí'),
|
|
|
|
('RJ', u'Rio de Janeiro'),
|
|
|
|
('RN', u'Rio Grande do Norte'),
|
|
|
|
('RS', u'Rio Grande do Sul'),
|
|
|
|
('RO', u'Rondônia'),
|
|
|
|
('RR', u'Roraima'),
|
|
|
|
('SC', u'Santa Catarina'),
|
|
|
|
('SE', u'Sergipe'),
|
|
|
|
('SP', u'São Paulo'),
|
|
|
|
('TO', u'Tocantins'),
|
|
|
|
('EX', u'Exterior'),
|
|
|
|
)
|
|
|
|
|
|
|
|
nome = models.CharField(max_length=50, blank=True, null=True)
|
|
|
|
uf = models.CharField(max_length=2, blank=True, null=True, choices=UF_CHOICES)
|
|
|
|
regiao = models.CharField(max_length=2, blank=True, null=True, choices=REGIAO_CHOICES)
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
verbose_name = _(u'Município')
|
|
|
|
verbose_name_plural = _(u'Municípios')
|
|
|
|
|
|
|
|
|
|
|
|
class NivelInstrucao(models.Model):
|
|
|
|
descricao = models.CharField(max_length=50, verbose_name=_(u'Nível de Instrução'))
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
verbose_name = _(u'Nível Instrução')
|
|
|
|
verbose_name_plural = _(u'Níveis Instrução')
|
|
|
|
|
|
|
|
def __unicode__(self):
|
|
|
|
return self.nivel_instrucao
|
|
|
|
|
|
|
|
|
|
|
|
class SituacaoMilitar(models.Model):
|
|
|
|
descricao = models.CharField(max_length=50, verbose_name=_(u'Situação Militar'))
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
verbose_name = _(u'Tipo Situação Militar')
|
|
|
|
verbose_name_plural = _(u'Tipos Situações Militares')
|
|
|
|
|
|
|
|
|
|
|
|
class Parlamentar(models.Model):
|
|
|
|
FEMININO = 'F'
|
|
|
|
MASCULINO = 'M'
|
|
|
|
SEXO_CHOICE = ((FEMININO, _(u'Feminino')),
|
|
|
|
(MASCULINO, _(u'Masculino')))
|
|
|
|
|
|
|
|
nivel_instrucao = models.ForeignKey(NivelInstrucao, blank=True, null=True, verbose_name=_(u'Nível Instrução'))
|
|
|
|
situacao_militar = models.ForeignKey(SituacaoMilitar, blank=True, null=True, verbose_name=_(u'Situação Militar'))
|
|
|
|
nome_completo = models.CharField(max_length=50, verbose_name=_(u'Nome Completo'))
|
|
|
|
nome_parlamentar = models.CharField(max_length=50, blank=True, null=True, verbose_name=_(u'Nome Parlamentar'))
|
|
|
|
sexo = models.CharField(max_length=1, verbose_name=_(u'Sexo'), choices=SEXO_CHOICE)
|
|
|
|
data_nascimento = models.DateField(blank=True, null=True, verbose_name=_(u'Data Nascimento'))
|
|
|
|
cpf = models.CharField(max_length=14, blank=True, null=True, verbose_name=_(u'C.P.F'))
|
|
|
|
rg = models.CharField(max_length=15, blank=True, null=True, verbose_name=_(u'R.G.'))
|
|
|
|
titulo_eleitor = models.CharField(max_length=15, blank=True, null=True, verbose_name=_(u'Título de Eleitor'))
|
|
|
|
cod_casa = models.IntegerField()
|
|
|
|
numero_gab_parlamentar = models.CharField(max_length=10, blank=True, null=True, verbose_name=_(u'Nº Gabinete'))
|
|
|
|
telefone = models.CharField(max_length=50, blank=True, null=True, verbose_name=_(u'Telefone'))
|
|
|
|
fax = models.CharField(max_length=50, blank=True, null=True, verbose_name=_(u'Fax'))
|
|
|
|
endereco_residencia = models.CharField(max_length=100, blank=True, null=True, verbose_name=_(u'Endereço Residencial'))
|
|
|
|
municipio_residencia = models.ForeignKey(Municipio, blank=True, null=True, verbose_name=_(u'Município'))
|
|
|
|
cep_residencia = models.CharField(max_length=9, blank=True, null=True, verbose_name=_(u'CEP'))
|
|
|
|
telefone_residencia = models.CharField(max_length=50, blank=True, null=True, verbose_name=_(u'Telefone Residencial'))
|
|
|
|
fax_residencia = models.CharField(max_length=50, blank=True, null=True, verbose_name=_(u'Fax Residencial'))
|
|
|
|
endereco_web = models.CharField(max_length=100, blank=True, null=True, verbose_name=_(u'HomePage'))
|
|
|
|
profissao = models.CharField(max_length=50, blank=True, null=True, verbose_name=_(u'Profissão'))
|
|
|
|
email = models.CharField(max_length=100, blank=True, null=True, verbose_name=_(u'Correio Eletrônico'))
|
|
|
|
locais_atuacao = models.CharField(max_length=100, blank=True, null=True, verbose_name=_(u'Locais de Atuação'))
|
|
|
|
ativo = models.BooleanField(verbose_name=_(u'Ativo na Casa?'))
|
|
|
|
biografia = models.TextField(blank=True, null=True, verbose_name=_(u'Biografia'))
|
|
|
|
unidade_deliberativa = models.BooleanField()
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
verbose_name = _(u'Parlamentar')
|
|
|
|
verbose_name_plural = _(u'Parlamentares')
|
|
|
|
|
|
|
|
def __unicode__(self):
|
|
|
|
return self.nome_completo
|
|
|
|
|
|
|
|
|
|
|
|
class TipoDependente(models.Model):
|
|
|
|
descricao = models.CharField(max_length=50)
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
verbose_name = _(u'Tipo de Dependente')
|
|
|
|
verbose_name_plural = _(u'Tipos de Dependente')
|
|
|
|
|
|
|
|
|
|
|
|
class Dependente(models.Model):
|
|
|
|
FEMININO = 'F'
|
|
|
|
MASCULINO = 'M'
|
|
|
|
SEXO_CHOICE = ((FEMININO, _(u'Feminino')),
|
|
|
|
(MASCULINO, _(u'Masculino')))
|
|
|
|
|
|
|
|
tipo = models.ForeignKey(TipoDependente, verbose_name=_(u'Tipo'))
|
|
|
|
parlamentar = models.ForeignKey(Parlamentar)
|
|
|
|
nome = models.CharField(max_length=50, verbose_name=_(u'Nome'))
|
|
|
|
sexo = models.CharField(max_length=1, verbose_name=_(u'Sexo'), choices=SEXO_CHOICE)
|
|
|
|
data_nascimento = models.DateField(blank=True, null=True, verbose_name=_(u'Data Nascimento'))
|
|
|
|
cpf = models.CharField(max_length=14, blank=True, null=True, verbose_name=_(u'CPF'))
|
|
|
|
rg = models.CharField(max_length=15, blank=True, null=True, verbose_name=_(u'RG'))
|
|
|
|
titulo_eleitor = models.CharField(max_length=15, blank=True, null=True, verbose_name=_(u'Nº Título Eleitor'))
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
verbose_name = _(u'Dependente')
|
|
|
|
verbose_name_plural = _(u'Dependentes')
|
|
|
|
|
|
|
|
|
|
|
|
class Filiacao(models.Model):
|
|
|
|
data = models.DateField(verbose_name=_(u'Data Filiação'))
|
|
|
|
parlamentar = models.ForeignKey(Parlamentar)
|
|
|
|
partido = models.ForeignKey(Partido, verbose_name=_(u'Partido'))
|
|
|
|
data_desfiliacao = models.DateField(blank=True, null=True, verbose_name=_(u'Data Desfiliação'))
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
verbose_name = _(u'Filiação')
|
|
|
|
verbose_name_plural = _(u'Filiações')
|
|
|
|
|
|
|
|
|
|
|
|
class TipoAfastamento(models.Model):
|
|
|
|
descricao = models.CharField(max_length=50, verbose_name=_(u'Descrição'))
|
|
|
|
afastamento = models.BooleanField(verbose_name=_(u'Indicador'))
|
|
|
|
fim_mandato = models.BooleanField(verbose_name=_(u'Indicador'))
|
|
|
|
dispositivo = models.CharField(max_length=50, blank=True, null=True, verbose_name=_(u'Dispositivo'))
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
verbose_name = _(u'Tipo de Afastamento')
|
|
|
|
verbose_name_plural = _(u'Tipos de Afastamento')
|
|
|
|
|
|
|
|
|
|
|
|
class Mandato(models.Model):
|
|
|
|
parlamentar = models.ForeignKey(Parlamentar)
|
|
|
|
tipo_afastamento = models.ForeignKey(TipoAfastamento, blank=True, null=True)
|
|
|
|
legislatura = models.ForeignKey(Legislatura, verbose_name=_(u'Legislatura'))
|
|
|
|
coligacao = models.ForeignKey(Coligacao, blank=True, null=True, verbose_name=_(u'Coligação'))
|
|
|
|
# TODO what is this field??????
|
|
|
|
tipo_causa_fim_mandato = models.IntegerField(blank=True, null=True)
|
|
|
|
data_fim_mandato = models.DateField(blank=True, null=True, verbose_name=_(u'Fim do Mandato'))
|
|
|
|
votos_recebidos = models.IntegerField(blank=True, null=True, verbose_name=_(u'Votos Recebidos'))
|
|
|
|
data_expedicao_diploma = models.DateField(blank=True, null=True, verbose_name=_(u'Expedição do Diploma'))
|
|
|
|
observacao = models.TextField(blank=True, null=True, verbose_name=_(u'Observação'))
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
verbose_name = _(u'Mandato')
|
|
|
|
verbose_name_plural = _(u'Mandatos')
|
|
|
|
|
|
|
|
|
|
|
|
class CargoMesa(models.Model):
|
|
|
|
# TODO M2M ????
|
|
|
|
descricao = models.CharField(max_length=50, verbose_name=_(u'Cargo na Mesa'))
|
|
|
|
unico = models.BooleanField(verbose_name=_(u'Cargo Único'))
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
verbose_name = _(u'Cargo na Mesa')
|
|
|
|
verbose_name_plural = _(u'Cargos na Mesa')
|
|
|
|
|
|
|
|
|
|
|
|
class ComposicaoMesa(models.Model):
|
|
|
|
# TODO M2M ???? Ternary?????
|
|
|
|
parlamentar = models.ForeignKey(Parlamentar)
|
|
|
|
sessao_legislativa = models.ForeignKey(SessaoLegislativa)
|
|
|
|
cargo = models.ForeignKey(CargoMesa)
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
verbose_name = _(u'Ocupação de cargo na Mesa')
|
|
|
|
verbose_name_plural = _(u'Ocupações de cargo na Mesa')
|