Browse Source

Track legacy renames with yaml mappings

Instead of the previous comment annotations on field sources
pull/6/head
Marcio Mazza 10 years ago
parent
commit
7ed335176c
  1. 30
      base/models.py
  2. 45
      comissoes/legacy.yaml
  3. 76
      comissoes/models.py
  4. 94
      legacy/scripts/field_renames.py
  5. 18
      lexml/legacy.yaml
  6. 30
      lexml/models.py
  7. 164
      materia/legacy.yaml
  8. 236
      materia/models.py
  9. 48
      norma/legacy.yaml
  10. 78
      norma/models.py
  11. 111
      parlamentares/legacy.yaml
  12. 160
      parlamentares/models.py
  13. 64
      protocoloadm/legacy.yaml
  14. 106
      protocoloadm/models.py
  15. 81
      sessao/legacy.yaml
  16. 100
      sessao/models.py

30
base/models.py

@ -6,21 +6,21 @@ from django.utils.translation import ugettext as _
class CasaLegislativa(models.Model):
# TODO ajustar todos os max_length !!!!
# cod_casa => id (pk)
nome = models.CharField(max_length=100, verbose_name=_(u'Nome')) # nom_casa
sigla = models.CharField(max_length=100, verbose_name=_(u'Sigla')) # sgl_casa
endereco = models.CharField(max_length=100, verbose_name=_(u'Endereço')) # end_casa
cep = models.CharField(max_length=100, verbose_name=_(u'CEP')) # num_cep
municipio = models.CharField(max_length=100, verbose_name=_(u'Município')) # municipio
uf = models.CharField(max_length=100, verbose_name=_(u'UF')) # sgl_uf
telefone = models.CharField(max_length=100, verbose_name=_(u'Telefone')) # num_tel
fax = models.CharField(max_length=100, verbose_name=_(u'Fax')) # num_fax
cor_fundo = models.CharField(max_length=100, verbose_name=_(u'Cor de fundo')) # cor_fundo
cor_borda = models.CharField(max_length=100, verbose_name=_(u'Cor da borda')) # cor_borda
cor_principal = models.CharField(max_length=100, verbose_name=_(u'Cor principal')) # cor_principal
logotipo = models.CharField(max_length=100, verbose_name=_(u'Logotipo')) # nom_logo
endereco_web = models.CharField(max_length=100, verbose_name=_(u'HomePage')) # end_web_casa
email = models.CharField(max_length=100, verbose_name=_(u'E-mail')) # end_email_casa
informacao_geral = models.CharField(max_length=100, verbose_name=_(u'Informação Geral')) # informacao_geral
nome = models.CharField(max_length=100, verbose_name=_(u'Nome'))
sigla = models.CharField(max_length=100, verbose_name=_(u'Sigla'))
endereco = models.CharField(max_length=100, verbose_name=_(u'Endereço'))
cep = models.CharField(max_length=100, verbose_name=_(u'CEP'))
municipio = models.CharField(max_length=100, verbose_name=_(u'Município'))
uf = models.CharField(max_length=100, verbose_name=_(u'UF'))
telefone = models.CharField(max_length=100, verbose_name=_(u'Telefone'))
fax = models.CharField(max_length=100, verbose_name=_(u'Fax'))
cor_fundo = models.CharField(max_length=100, verbose_name=_(u'Cor de fundo'))
cor_borda = models.CharField(max_length=100, verbose_name=_(u'Cor da borda'))
cor_principal = models.CharField(max_length=100, verbose_name=_(u'Cor principal'))
logotipo = models.CharField(max_length=100, verbose_name=_(u'Logotipo'))
endereco_web = models.CharField(max_length=100, verbose_name=_(u'HomePage'))
email = models.CharField(max_length=100, verbose_name=_(u'E-mail'))
informacao_geral = models.CharField(max_length=100, verbose_name=_(u'Informação Geral'))
class Meta:
verbose_name = _(u'Casa Legislativa')

45
comissoes/legacy.yaml

@ -0,0 +1,45 @@
TipoComissao:
dispositivo_regimental: des_dispositivo_regimental
natureza: sgl_natureza_comissao
nome: nom_tipo_comissao
sigla: sgl_tipo_comissao
Comissao:
agenda_reuniao: des_agenda_reuniao
apelido_temp: nom_apelido_temp
data_criacao: dat_criacao
data_extincao: dat_extincao
data_fim_comissao: dat_fim_comissao
data_final_prevista_temp: dat_final_prevista_temp
data_instalacao_temp: dat_instalacao_temp
data_prorrogada_temp: dat_prorrogada_temp
email: end_email
endereco_secretaria: end_secretaria
fax_secretaria: num_fax_secretaria
finalidade: txt_finalidade
local_reuniao: loc_reuniao
nome: nom_comissao
secretario: nom_secretario
sigla: sgl_comissao
telefone_reuniao: num_tel_reuniao
telefone_secretaria: num_tel_secretaria
tipo: tip_comissao
unidade_deliberativa: ind_unid_deliberativa
Periodo (PeriodoCompComissao):
data_fim: dat_fim_periodo
data_inicio: dat_inicio_periodo
CargoComissao:
nome: des_cargo
unico: ind_unico
Participacao (ComposicaoComissao):
cargo: cod_cargo
composicao: cod_comissao
data_designacao: dat_designacao
data_desligamento: dat_desligamento
motivo_desligamento: des_motivo_desligamento
observacao: obs_composicao
parlamentar: cod_parlamentar
titular: ind_titular

76
comissoes/models.py

@ -10,10 +10,10 @@ class TipoComissao(models.Model):
PERMANENTE = 'P'
NATUREZA_CHOICES = ((TEMPORARIA, _(u'Temporária')),
(PERMANENTE, _(u'Permanente')))
nome = models.CharField(max_length=50, verbose_name=_(u'Nome')) # nom_tipo_comissao
natureza = models.CharField(max_length=1, verbose_name=_(u'Natureza'), choices=NATUREZA_CHOICES) # sgl_natureza_comissao
sigla = models.CharField(max_length=10, verbose_name=_(u'Sigla')) # sgl_tipo_comissao
dispositivo_regimental = models.CharField(max_length=50, blank=True, null=True, verbose_name=_(u'Dispositivo Regimental')) # des_dispositivo_regimental
nome = models.CharField(max_length=50, verbose_name=_(u'Nome'))
natureza = models.CharField(max_length=1, verbose_name=_(u'Natureza'), choices=NATUREZA_CHOICES)
sigla = models.CharField(max_length=10, verbose_name=_(u'Sigla'))
dispositivo_regimental = models.CharField(max_length=50, blank=True, null=True, verbose_name=_(u'Dispositivo Regimental'))
class Meta:
verbose_name = _(u'Tipo de Comissão')
@ -24,26 +24,26 @@ class TipoComissao(models.Model):
class Comissao(models.Model):
tipo = models.ForeignKey(TipoComissao, verbose_name=_(u'Tipo')) # tip_comissao
nome = models.CharField(max_length=60, verbose_name=_(u'Nome')) # nom_comissao
sigla = models.CharField(max_length=10, verbose_name=_(u'Sigla')) # sgl_comissao
data_criacao = models.DateField(verbose_name=_(u'Data de Criação')) # dat_criacao
data_extincao = models.DateField(blank=True, null=True, verbose_name=_(u'Data de Extinção')) # dat_extincao
apelido_temp = models.CharField(max_length=100, blank=True, null=True, verbose_name=_(u'Apelido')) # nom_apelido_temp
data_instalacao_temp = models.DateField(blank=True, null=True, verbose_name=_(u'Data Instalação')) # dat_instalacao_temp
data_final_prevista_temp = models.DateField(blank=True, null=True, verbose_name=_(u'Data Prevista Término')) # dat_final_prevista_temp
data_prorrogada_temp = models.DateField(blank=True, null=True, verbose_name=_(u'Novo Prazo')) # dat_prorrogada_temp
data_fim_comissao = models.DateField(blank=True, null=True, verbose_name=_(u'Data Término')) # dat_fim_comissao
secretario = models.CharField(max_length=30, blank=True, null=True, verbose_name=_(u'Secretário')) # nom_secretario
telefone_reuniao = models.CharField(max_length=15, blank=True, null=True, verbose_name=_(u'Tel. Sala Reunião')) # num_tel_reuniao
endereco_secretaria = models.CharField(max_length=100, blank=True, null=True, verbose_name=_(u'Endereço Secretaria')) # end_secretaria
telefone_secretaria = models.CharField(max_length=15, blank=True, null=True, verbose_name=_(u'Tel. Secretaria')) # num_tel_secretaria
fax_secretaria = models.CharField(max_length=15, blank=True, null=True, verbose_name=_(u'Fax Secretaria')) # num_fax_secretaria
agenda_reuniao = models.CharField(max_length=100, blank=True, null=True, verbose_name=_(u'Data/Hora Reunião')) # des_agenda_reuniao
local_reuniao = models.CharField(max_length=100, blank=True, null=True, verbose_name=_(u'Local Reunião')) # loc_reuniao
finalidade = models.TextField(blank=True, null=True, verbose_name=_(u'Finalidade')) # txt_finalidade
email = models.CharField(max_length=100, blank=True, null=True, verbose_name=_(u'E-mail')) # end_email
unidade_deliberativa = models.BooleanField() # ind_unid_deliberativa
tipo = models.ForeignKey(TipoComissao, verbose_name=_(u'Tipo'))
nome = models.CharField(max_length=60, verbose_name=_(u'Nome'))
sigla = models.CharField(max_length=10, verbose_name=_(u'Sigla'))
data_criacao = models.DateField(verbose_name=_(u'Data de Criação'))
data_extincao = models.DateField(blank=True, null=True, verbose_name=_(u'Data de Extinção'))
apelido_temp = models.CharField(max_length=100, blank=True, null=True, verbose_name=_(u'Apelido'))
data_instalacao_temp = models.DateField(blank=True, null=True, verbose_name=_(u'Data Instalação'))
data_final_prevista_temp = models.DateField(blank=True, null=True, verbose_name=_(u'Data Prevista Término'))
data_prorrogada_temp = models.DateField(blank=True, null=True, verbose_name=_(u'Novo Prazo'))
data_fim_comissao = models.DateField(blank=True, null=True, verbose_name=_(u'Data Término'))
secretario = models.CharField(max_length=30, blank=True, null=True, verbose_name=_(u'Secretário'))
telefone_reuniao = models.CharField(max_length=15, blank=True, null=True, verbose_name=_(u'Tel. Sala Reunião'))
endereco_secretaria = models.CharField(max_length=100, blank=True, null=True, verbose_name=_(u'Endereço Secretaria'))
telefone_secretaria = models.CharField(max_length=15, blank=True, null=True, verbose_name=_(u'Tel. Secretaria'))
fax_secretaria = models.CharField(max_length=15, blank=True, null=True, verbose_name=_(u'Fax Secretaria'))
agenda_reuniao = models.CharField(max_length=100, blank=True, null=True, verbose_name=_(u'Data/Hora Reunião'))
local_reuniao = models.CharField(max_length=100, blank=True, null=True, verbose_name=_(u'Local Reunião'))
finalidade = models.TextField(blank=True, null=True, verbose_name=_(u'Finalidade'))
email = models.CharField(max_length=100, blank=True, null=True, verbose_name=_(u'E-mail'))
unidade_deliberativa = models.BooleanField()
class Meta:
verbose_name = _(u'Comissão')
@ -54,8 +54,8 @@ class Comissao(models.Model):
class Periodo(models.Model): # PeriodoCompComissao
data_inicio = models.DateField(verbose_name=_(u'Data Início')) # dat_inicio_periodo
data_fim = models.DateField(blank=True, null=True, verbose_name=_(u'Data Fim')) # dat_fim_periodo
data_inicio = models.DateField(verbose_name=_(u'Data Início'))
data_fim = models.DateField(blank=True, null=True, verbose_name=_(u'Data Fim'))
class Meta:
verbose_name = _(u'Período de composição de Comissão')
@ -66,8 +66,8 @@ class Periodo(models.Model): # PeriodoCompComissao
class CargoComissao(models.Model):
nome = models.CharField(max_length=50, verbose_name=_(u'Cargo')) # des_cargo
unico = models.BooleanField(verbose_name=_(u'Único')) # ind_unico
nome = models.CharField(max_length=50, verbose_name=_(u'Cargo'))
unico = models.BooleanField(verbose_name=_(u'Único'))
class Meta:
verbose_name = _(u'Cargo de Comissão')
@ -78,8 +78,8 @@ class CargoComissao(models.Model):
class Composicao(models.Model): # IGNORE
comissao = models.ForeignKey(Comissao, verbose_name=_(u'Comissão')) # cod_comissao
periodo = models.ForeignKey(Periodo, verbose_name=_(u'Período')) # cod_periodo_comp
comissao = models.ForeignKey(Comissao, verbose_name=_(u'Comissão'))
periodo = models.ForeignKey(Periodo, verbose_name=_(u'Período'))
class Meta:
verbose_name = _(u'Composição de Comissão')
@ -90,14 +90,14 @@ class Composicao(models.Model): # IGNORE
class Participacao(models.Model): # ComposicaoComissao
composicao = models.ForeignKey(Composicao) # cod_comissao
parlamentar = models.ForeignKey(Parlamentar) # cod_parlamentar
cargo = models.ForeignKey(CargoComissao) # cod_cargo
titular = models.BooleanField(verbose_name=_(u'Titular')) # ind_titular
data_designacao = models.DateField(verbose_name=_(u'Data Designação')) # dat_designacao
data_desligamento = models.DateField(blank=True, null=True, verbose_name=_(u'Data Desligamento')) # dat_desligamento
motivo_desligamento = models.CharField(max_length=150, blank=True, null=True, verbose_name=_(u'Motivo Desligamento')) # des_motivo_desligamento
observacao = models.CharField(max_length=150, blank=True, null=True, verbose_name=_(u'Observação')) # obs_composicao
composicao = models.ForeignKey(Composicao)
parlamentar = models.ForeignKey(Parlamentar)
cargo = models.ForeignKey(CargoComissao)
titular = models.BooleanField(verbose_name=_(u'Titular'))
data_designacao = models.DateField(verbose_name=_(u'Data Designação'))
data_desligamento = models.DateField(blank=True, null=True, verbose_name=_(u'Data Desligamento'))
motivo_desligamento = models.CharField(max_length=150, blank=True, null=True, verbose_name=_(u'Motivo Desligamento'))
observacao = models.CharField(max_length=150, blank=True, null=True, verbose_name=_(u'Observação'))
class Meta:
verbose_name = _(u'Participação em Comissão')

94
legacy/scripts/field_renames.py

@ -1,75 +1,39 @@
import re
from collections import defaultdict, OrderedDict
from difflib import SequenceMatcher
from inspect import getsourcelines
from migration_base import appconfs, legacy_app
import yaml
import pkg_resources
from migration_base import appconfs
def is_unannotated_field_line(line):
return not line.strip().startswith('#') and ' = ' in line and ' # ' not in line
MODEL_RENAME_PATTERN = re.compile('(.+) \((.+)\)')
def is_field_line(line):
return not line.strip().startswith('#') and ' = ' in line and ' # ' in line
def get_field(line):
return line.split('=')[0].strip()
def print_commented_source(model):
new_fields = [f.name for f in model._meta.fields]
legacy_fields = [f.name for f in legacy_app.get_model(model.__name__)._meta.fields if f.name != 'ind_excluido']
new_to_old = dict(zip(new_fields, legacy_fields))
lines = getsourcelines(model)[0]
cols = max(map(len, [line for line in lines if is_field_line(line)]))
print '\n'
for line in lines:
if not is_unannotated_field_line(line):
print line.rstrip()
else:
print '%s # %s' % (line.rstrip().ljust(cols), new_to_old[get_field(line)])
return new_to_old
field_renames = OrderedDict()
field_renames = {}
model_renames = {}
for app in appconfs:
for model in app.models.values():
new_to_old = OrderedDict()
lines = getsourcelines(model)[0]
class_line = lines[0].strip()
match = re.match('class (.+)\(models\.Model\): *\# *(.*)', class_line)
app_rename_data = yaml.load(pkg_resources.resource_string(app.module.__name__, 'legacy.yaml'))
for model_name, renames in app_rename_data.items():
match = MODEL_RENAME_PATTERN.match(model_name)
if match:
model_name, rename = match.groups()
assert model_name == model.__name__
model_renames[model] = rename
for line in lines:
if is_field_line(line):
new = get_field(line)
old = line.split('#')[-1].strip()
new_to_old[new] = old
field_renames[model] = new_to_old
def check_similarity():
def similar(a, b):
return SequenceMatcher(None, a, b).ratio()
different_pairs = defaultdict(list)
for model, new_to_old in field_renames.items():
for new, old in new_to_old.items():
if similar(new, old) < 0.7:
different_pairs[model].append((new, old))
if different_pairs:
print '\n\n######## Different Pairs #########'
for model, pairs in different_pairs.items():
print '%s (%s)' % (model.__name__, app.name)
for a, b in pairs:
print ' ', a, b
return different_pairs
model_name, old_name = match.groups()
else:
old_name = None
model = getattr(app.models_module, model_name)
if old_name:
model_renames[model] = old_name
field_renames[model] = renames
# collect renames from parent classes
for model, renames in field_renames.items():
if any(parent in field_renames for parent in model.__mro__[1:]):
renames = {}
for parent in reversed(model.__mro__):
if parent in field_renames:
renames.update(field_renames[parent])
field_renames[model] = renames
# remove abstract classes
for model in field_renames:
if model._meta.abstract:
del field_renames[model]

18
lexml/legacy.yaml

@ -0,0 +1,18 @@
LexmlProvedor (LexmlRegistroProvedor):
email_responsavel: adm_email
id_provedor: id_provedor
id_responsavel: id_responsavel
nome: nom_provedor
nome_responsavel: nom_responsavel
sigla: sgl_provedor
tipo: tipo
xml: xml_provedor
LexmlPublicador (LexmlRegistroPublicador):
email_responsavel: adm_email
id_publicador: id_publicador
id_responsavel: id_responsavel
nome: nom_publicador
nome_responsavel: nom_responsavel
sigla: sigla
tipo: tipo

30
lexml/models.py

@ -4,14 +4,14 @@ from django.utils.translation import ugettext as _
class LexmlProvedor(models.Model): # LexmlRegistroProvedor
id_provedor = models.IntegerField(verbose_name=_(u'Id do provedor')) # id_provedor
nome = models.CharField(max_length=255, verbose_name=_(u'Nome do provedor')) # nom_provedor
sigla = models.CharField(max_length=15) # sgl_provedor
email_responsavel = models.CharField(max_length=50, blank=True, null=True, verbose_name=_(u'E-mail do responsável')) # adm_email
nome_responsavel = models.CharField(max_length=255, blank=True, null=True, verbose_name=_(u'Nome do responsável')) # nom_responsavel
tipo = models.CharField(max_length=50) # tipo
id_responsavel = models.IntegerField(blank=True, null=True, verbose_name=_(u'Id do responsável')) # id_responsavel
xml = models.TextField(blank=True, null=True, verbose_name=_(u'XML fornecido pela equipe do LexML:')) # xml_provedor
id_provedor = models.IntegerField(verbose_name=_(u'Id do provedor'))
nome = models.CharField(max_length=255, verbose_name=_(u'Nome do provedor'))
sigla = models.CharField(max_length=15)
email_responsavel = models.CharField(max_length=50, blank=True, null=True, verbose_name=_(u'E-mail do responsável'))
nome_responsavel = models.CharField(max_length=255, blank=True, null=True, verbose_name=_(u'Nome do responsável'))
tipo = models.CharField(max_length=50)
id_responsavel = models.IntegerField(blank=True, null=True, verbose_name=_(u'Id do responsável'))
xml = models.TextField(blank=True, null=True, verbose_name=_(u'XML fornecido pela equipe do LexML:'))
class Meta:
verbose_name = _(u'Provedor Lexml')
@ -19,13 +19,13 @@ class LexmlProvedor(models.Model): # LexmlRegistroProvedor
class LexmlPublicador(models.Model):
id_publicador = models.IntegerField(verbose_name=_(u'Id do publicador')) # id_publicador
nome = models.CharField(max_length=255, verbose_name=_(u'Nome do publicador')) # nom_publicador
email_responsavel = models.CharField(max_length=50, blank=True, null=True, verbose_name=_(u'E-mail do responsável')) # adm_email
sigla = models.CharField(max_length=255, blank=True, null=True, verbose_name=_(u'Sigla do Publicador')) # sigla
nome_responsavel = models.CharField(max_length=255, blank=True, null=True, verbose_name=_(u'Nome do responsável')) # nom_responsavel
tipo = models.CharField(max_length=50) # tipo
id_responsavel = models.IntegerField(verbose_name=_(u'Id do responsável')) # id_responsavel
id_publicador = models.IntegerField(verbose_name=_(u'Id do publicador'))
nome = models.CharField(max_length=255, verbose_name=_(u'Nome do publicador'))
email_responsavel = models.CharField(max_length=50, blank=True, null=True, verbose_name=_(u'E-mail do responsável'))
sigla = models.CharField(max_length=255, blank=True, null=True, verbose_name=_(u'Sigla do Publicador'))
nome_responsavel = models.CharField(max_length=255, blank=True, null=True, verbose_name=_(u'Nome do responsável'))
tipo = models.CharField(max_length=50)
id_responsavel = models.IntegerField(verbose_name=_(u'Id do responsável'))
class Meta:
verbose_name = _(u'Publicador Lexml')

164
materia/legacy.yaml

@ -0,0 +1,164 @@
TipoMateriaLegislativa:
descricao: des_tipo_materia
num_automatica: ind_num_automatica
quorum_minimo_votacao: quorum_minimo_votacao
sigla: sgl_tipo_materia
RegimeTramitacao:
descricao: des_regime_tramitacao
Origem:
nome: nom_origem
sigla: sgl_origem
MateriaLegislativa:
ano_ident_basica: ano_ident_basica
ano_origem_externa: ano_origem_externa
apelido: nom_apelido
complementar: ind_complementar
data_apresentacao: dat_apresentacao
data_fim_prazo: dat_fim_prazo
data_origem_externa: dat_origem_externa
data_publicacao: dat_publicacao
dias_prazo: num_dias_prazo
em_tramitacao: ind_tramitacao
ementa: txt_ementa
indexacao: txt_indexacao
local_origem_externa: cod_local_origem_externa
numero_ident_basica: num_ident_basica
numero_origem_externa: num_origem_externa
numero_protocolo: num_protocolo
objeto: des_objeto
observacao: txt_observacao
polemica: ind_polemica
regime_tramitacao: cod_regime_tramitacao
resultado: txt_resultado
tipo_apresentacao: tip_apresentacao
tipo_id_basica: tip_id_basica
tipo_origem_externa: tip_origem_externa
AcompanhamentoMateria (AcompMateria):
email: end_email
hash: txt_hash
materia: cod_materia
Anexada:
data_anexacao: dat_anexacao
data_desanexacao: dat_desanexacao
materia_anexada: cod_materia_anexada
materia_principal: cod_materia_principal
AssuntoMateria:
assunto: des_assunto
dispositivo: des_dispositivo
TipoAutor:
descricao: des_tipo_autor
Autor:
cargo: des_cargo
comissao: cod_comissao
nome: nom_autor
parlamentar: cod_parlamentar
partido: cod_partido
tipo: tip_autor
username: col_username
Autoria:
autor: cod_autor
materia: cod_materia
primeiro_autor: ind_primeiro_autor
DespachoInicial:
comissao: cod_comissao
materia: cod_materia
numero_ordem: num_ordem
TipoDocumento:
descricao: des_tipo_documento
DocumentoAcessorio:
autor: nom_autor_documento
data: dat_documento
ementa: txt_ementa
indexacao: txt_indexacao
materia: cod_materia
nome: nom_documento
tipo: tip_documento
MateriaAssunto:
assunto: cod_assunto
materia: cod_materia
Numeracao:
ano_materia: ano_materia
data_materia: dat_materia
materia: cod_materia
numero_materia: num_materia
numero_ordem: num_ordem
tipo_materia: tip_materia
Orgao:
endereco: end_orgao
nome: nom_orgao
sigla: sgl_orgao
telefone: num_tel_orgao
unidade_deliberativa: ind_unid_deliberativa
TipoFimRelatoria:
descricao: des_fim_relatoria
Relatoria:
comissao: cod_comissao
data_designacao_relator: dat_desig_relator
data_destituicao_relator: dat_destit_relator
materia: cod_materia
parlamentar: cod_parlamentar
tipo_fim_relatoria: tip_fim_relatoria
Parecer:
materia: cod_materia
parecer: txt_parecer
relatoria: cod_relatoria
tipo_apresentacao: tip_apresentacao
tipo_conclusao: tip_conclusao
TipoProposicao:
descricao: des_tipo_proposicao
materia_ou_documento: ind_mat_ou_doc
modelo: nom_modelo
tipo_materia: tip_mat_ou_doc
Proposicao:
autor: cod_autor
data_devolucao: dat_devolucao
data_envio: dat_envio
data_recebimento: dat_recebimento
descricao: txt_descricao
justificativa_devolucao: txt_justif_devolucao
materia: cod_mat_ou_doc
numero_proposicao: num_proposicao
tipo: tip_proposicao
StatusTramitacao:
descricao: des_status
indicador: ind_fim_tramitacao
sigla: sgl_status
UnidadeTramitacao:
comissao: cod_comissao
orgao: cod_orgao
parlamentar: cod_parlamentar
Tramitacao:
data_encaminhamento: dat_encaminha
data_fim_prazo: dat_fim_prazo
data_tramitacao: dat_tramitacao
materia: cod_materia
status: cod_status
texto: txt_tramitacao
turno: sgl_turno
ultima: ind_ult_tramitacao
unidade_tramitacao_destino: cod_unid_tram_dest
unidade_tramitacao_local: cod_unid_tram_local
urgente: ind_urgencia

236
materia/models.py

@ -7,12 +7,12 @@ from parlamentares.models import Parlamentar, Partido
class TipoMateriaLegislativa(models.Model):
sigla = models.CharField(max_length=5, verbose_name=_(u'Sigla')) # sgl_tipo_materia
descricao = models.CharField(max_length=50, verbose_name=_(u'Descrição ')) # des_tipo_materia
sigla = models.CharField(max_length=5, verbose_name=_(u'Sigla'))
descricao = models.CharField(max_length=50, verbose_name=_(u'Descrição '))
# XXX o que é isso ?
num_automatica = models.BooleanField() # ind_num_automatica
num_automatica = models.BooleanField()
# XXX o que é isso ?
quorum_minimo_votacao = models.IntegerField() # quorum_minimo_votacao
quorum_minimo_votacao = models.IntegerField()
class Meta:
verbose_name = _(u'Tipo de Matéria Legislativa')
@ -20,7 +20,7 @@ class TipoMateriaLegislativa(models.Model):
class RegimeTramitacao(models.Model):
descricao = models.CharField(max_length=50) # des_regime_tramitacao
descricao = models.CharField(max_length=50)
class Meta:
verbose_name = _(u'Regime Tramitação')
@ -28,8 +28,8 @@ class RegimeTramitacao(models.Model):
class Origem(models.Model):
sigla = models.CharField(max_length=10, verbose_name=_(u'Sigla')) # sgl_origem
nome = models.CharField(max_length=50, verbose_name=_(u'Nome')) # nom_origem
sigla = models.CharField(max_length=10, verbose_name=_(u'Sigla'))
nome = models.CharField(max_length=50, verbose_name=_(u'Nome'))
class Meta:
verbose_name = _(u'Origem')
@ -41,30 +41,30 @@ class MateriaLegislativa(models.Model):
TIPO_APRESENTACAO_CHOICES = ((ORAL, _(u'Oral')),
(ESCRITA, _(u'Escrita')))
tipo_id_basica = models.ForeignKey(TipoMateriaLegislativa, verbose_name=_(u'Tipo')) # tip_id_basica
numero_protocolo = models.IntegerField(blank=True, null=True,verbose_name=_(u'Núm. Protocolo')) # num_protocolo
numero_ident_basica = models.IntegerField(verbose_name=_(u'Número')) # num_ident_basica
ano_ident_basica = models.SmallIntegerField(verbose_name=_(u'Ano')) # ano_ident_basica
data_apresentacao = models.DateField(blank=True, null=True, verbose_name=_(u'Data Apresentação')) # dat_apresentacao
tipo_apresentacao = models.CharField(max_length=1, blank=True, null=True, verbose_name=_(u'Tipo de Apresentação'), choices=TIPO_APRESENTACAO_CHOICES) # tip_apresentacao
regime_tramitacao = models.ForeignKey(RegimeTramitacao, verbose_name=_(u'Regime Tramitação')) # cod_regime_tramitacao
data_publicacao = models.DateField(blank=True, null=True, verbose_name=_(u'Data Publicação')) # dat_publicacao
tipo_origem_externa = models.ForeignKey(TipoMateriaLegislativa, blank=True, null=True, related_name='+', verbose_name=_(u'Tipo')) # tip_origem_externa
numero_origem_externa = models.CharField(max_length=5, blank=True, null=True, verbose_name=_(u'Número')) # num_origem_externa
ano_origem_externa = models.SmallIntegerField(blank=True, null=True, verbose_name=_(u'Ano')) # ano_origem_externa
data_origem_externa = models.DateField(blank=True, null=True, verbose_name=_(u'Data')) # dat_origem_externa
local_origem_externa = models.ForeignKey(Origem, blank=True, null=True, verbose_name=_(u'Local Origem')) # cod_local_origem_externa
apelido = models.CharField(max_length=50, blank=True, null=True, verbose_name=_(u'Apelido')) # nom_apelido
dias_prazo = models.IntegerField(blank=True, null=True, verbose_name=_(u'Dias Prazo')) # num_dias_prazo
data_fim_prazo = models.DateField(blank=True, null=True, verbose_name=_(u'Data Fim Prazo')) # dat_fim_prazo
em_tramitacao = models.BooleanField(verbose_name=_(u'Em Tramitação?')) # ind_tramitacao
polemica = models.NullBooleanField(blank=True, verbose_name=_(u'Matéria Polêmica?')) # ind_polemica
objeto = models.CharField(max_length=150, blank=True, null=True, verbose_name=_(u'Objeto')) # des_objeto
complementar = models.NullBooleanField(blank=True, verbose_name=_(u'É Complementar?')) # ind_complementar
ementa = models.TextField(verbose_name=_(u'Ementa')) # txt_ementa
indexacao = models.TextField(blank=True, null=True, verbose_name=_(u'Indexação')) # txt_indexacao
observacao = models.TextField(blank=True, null=True, verbose_name=_(u'Observação')) # txt_observacao
resultado = models.TextField(blank=True, null=True) # txt_resultado
tipo_id_basica = models.ForeignKey(TipoMateriaLegislativa, verbose_name=_(u'Tipo'))
numero_protocolo = models.IntegerField(blank=True, null=True,verbose_name=_(u'Núm. Protocolo'))
numero_ident_basica = models.IntegerField(verbose_name=_(u'Número'))
ano_ident_basica = models.SmallIntegerField(verbose_name=_(u'Ano'))
data_apresentacao = models.DateField(blank=True, null=True, verbose_name=_(u'Data Apresentação'))
tipo_apresentacao = models.CharField(max_length=1, blank=True, null=True, verbose_name=_(u'Tipo de Apresentação'), choices=TIPO_APRESENTACAO_CHOICES)
regime_tramitacao = models.ForeignKey(RegimeTramitacao, verbose_name=_(u'Regime Tramitação'))
data_publicacao = models.DateField(blank=True, null=True, verbose_name=_(u'Data Publicação'))
tipo_origem_externa = models.ForeignKey(TipoMateriaLegislativa, blank=True, null=True, related_name='+', verbose_name=_(u'Tipo'))
numero_origem_externa = models.CharField(max_length=5, blank=True, null=True, verbose_name=_(u'Número'))
ano_origem_externa = models.SmallIntegerField(blank=True, null=True, verbose_name=_(u'Ano'))
data_origem_externa = models.DateField(blank=True, null=True, verbose_name=_(u'Data'))
local_origem_externa = models.ForeignKey(Origem, blank=True, null=True, verbose_name=_(u'Local Origem'))
apelido = models.CharField(max_length=50, blank=True, null=True, verbose_name=_(u'Apelido'))
dias_prazo = models.IntegerField(blank=True, null=True, verbose_name=_(u'Dias Prazo'))
data_fim_prazo = models.DateField(blank=True, null=True, verbose_name=_(u'Data Fim Prazo'))
em_tramitacao = models.BooleanField(verbose_name=_(u'Em Tramitação?'))
polemica = models.NullBooleanField(blank=True, verbose_name=_(u'Matéria Polêmica?'))
objeto = models.CharField(max_length=150, blank=True, null=True, verbose_name=_(u'Objeto'))
complementar = models.NullBooleanField(blank=True, verbose_name=_(u'É Complementar?'))
ementa = models.TextField(verbose_name=_(u'Ementa'))
indexacao = models.TextField(blank=True, null=True, verbose_name=_(u'Indexação'))
observacao = models.TextField(blank=True, null=True, verbose_name=_(u'Observação'))
resultado = models.TextField(blank=True, null=True)
# XXX novo
anexadas = models.ManyToManyField('self', through='Anexada',
symmetrical=False, related_name='anexo_de',
@ -76,9 +76,9 @@ class MateriaLegislativa(models.Model):
class AcompanhamentoMateria(models.Model): # AcompMateria
materia = models.ForeignKey(MateriaLegislativa) # cod_materia
email = models.CharField(max_length=100, verbose_name=_(u'Endereço de E-mail')) # end_email
hash = models.CharField(max_length=8) # txt_hash
materia = models.ForeignKey(MateriaLegislativa)
email = models.CharField(max_length=100, verbose_name=_(u'Endereço de E-mail'))
hash = models.CharField(max_length=8)
class Meta:
verbose_name = _(u'Acompanhamento de Matéria')
@ -86,10 +86,10 @@ class AcompanhamentoMateria(models.Model): # AcompMateria
class Anexada(models.Model):
materia_principal = models.ForeignKey(MateriaLegislativa, related_name='+') # cod_materia_principal
materia_anexada = models.ForeignKey(MateriaLegislativa, related_name='+') # cod_materia_anexada
data_anexacao = models.DateField(verbose_name=_(u'Data Anexação')) # dat_anexacao
data_desanexacao = models.DateField(blank=True, null=True, verbose_name=_(u'Data Desanexação')) # dat_desanexacao
materia_principal = models.ForeignKey(MateriaLegislativa, related_name='+')
materia_anexada = models.ForeignKey(MateriaLegislativa, related_name='+')
data_anexacao = models.DateField(verbose_name=_(u'Data Anexação'))
data_desanexacao = models.DateField(blank=True, null=True, verbose_name=_(u'Data Desanexação'))
class Meta:
verbose_name = _(u'Anexada')
@ -97,8 +97,8 @@ class Anexada(models.Model):
class AssuntoMateria(models.Model):
assunto = models.CharField(max_length=200) # des_assunto
dispositivo = models.CharField(max_length=50) # des_dispositivo
assunto = models.CharField(max_length=200)
dispositivo = models.CharField(max_length=50)
class Meta:
verbose_name = _(u'Assunto de Matéria')
@ -106,7 +106,7 @@ class AssuntoMateria(models.Model):
class TipoAutor(models.Model):
descricao = models.CharField(max_length=50, verbose_name=_(u'Descrição')) # des_tipo_autor
descricao = models.CharField(max_length=50, verbose_name=_(u'Descrição'))
class Meta:
verbose_name = _(u'Tipo de Autor')
@ -114,13 +114,13 @@ class TipoAutor(models.Model):
class Autor(models.Model):
partido = models.ForeignKey(Partido, blank=True, null=True) # cod_partido
comissao = models.ForeignKey(Comissao, blank=True, null=True) # cod_comissao
parlamentar = models.ForeignKey(Parlamentar, blank=True, null=True) # cod_parlamentar
tipo = models.ForeignKey(TipoAutor, verbose_name=_(u'Tipo')) # tip_autor
nome = models.CharField(max_length=50, blank=True, null=True, verbose_name=_(u'Autor')) # nom_autor
cargo = models.CharField(max_length=50, blank=True, null=True) # des_cargo
username = models.CharField(max_length=50, blank=True, null=True) # col_username
partido = models.ForeignKey(Partido, blank=True, null=True)
comissao = models.ForeignKey(Comissao, blank=True, null=True)
parlamentar = models.ForeignKey(Parlamentar, blank=True, null=True)
tipo = models.ForeignKey(TipoAutor, verbose_name=_(u'Tipo'))
nome = models.CharField(max_length=50, blank=True, null=True, verbose_name=_(u'Autor'))
cargo = models.CharField(max_length=50, blank=True, null=True)
username = models.CharField(max_length=50, blank=True, null=True)
class Meta:
verbose_name = _(u'Autor')
@ -128,9 +128,9 @@ class Autor(models.Model):
class Autoria(models.Model):
autor = models.ForeignKey(Autor) # cod_autor
materia = models.ForeignKey(MateriaLegislativa) # cod_materia
primeiro_autor = models.BooleanField(verbose_name=_(u'Primeiro Autor')) # ind_primeiro_autor
autor = models.ForeignKey(Autor)
materia = models.ForeignKey(MateriaLegislativa)
primeiro_autor = models.BooleanField(verbose_name=_(u'Primeiro Autor'))
class Meta:
verbose_name = _(u'Autoria')
@ -139,9 +139,9 @@ class Autoria(models.Model):
class DespachoInicial(models.Model):
# TODO M2M?
materia = models.ForeignKey(MateriaLegislativa) # cod_materia
numero_ordem = models.IntegerField() # num_ordem
comissao = models.ForeignKey(Comissao) # cod_comissao
materia = models.ForeignKey(MateriaLegislativa)
numero_ordem = models.IntegerField()
comissao = models.ForeignKey(Comissao)
class Meta:
verbose_name = _(u'Despacho Inicial')
@ -149,7 +149,7 @@ class DespachoInicial(models.Model):
class TipoDocumento(models.Model):
descricao = models.CharField(max_length=50, verbose_name=_(u'Tipo Documento')) # des_tipo_documento
descricao = models.CharField(max_length=50, verbose_name=_(u'Tipo Documento'))
class Meta:
verbose_name = _(u'Tipo de Documento')
@ -157,13 +157,13 @@ class TipoDocumento(models.Model):
class DocumentoAcessorio(models.Model):
materia = models.ForeignKey(MateriaLegislativa) # cod_materia
tipo = models.ForeignKey(TipoDocumento, verbose_name=_(u'Tipo')) # tip_documento
nome = models.CharField(max_length=30, verbose_name=_(u'Descrição')) # nom_documento
data = models.DateField(blank=True, null=True, verbose_name=_(u'Data')) # dat_documento
autor = models.CharField(max_length=50, blank=True, null=True, verbose_name=_(u'Autor')) # nom_autor_documento
ementa = models.TextField(blank=True, null=True, verbose_name=_(u'Ementa')) # txt_ementa
indexacao = models.TextField(blank=True, null=True) # txt_indexacao
materia = models.ForeignKey(MateriaLegislativa)
tipo = models.ForeignKey(TipoDocumento, verbose_name=_(u'Tipo'))
nome = models.CharField(max_length=30, verbose_name=_(u'Descrição'))
data = models.DateField(blank=True, null=True, verbose_name=_(u'Data'))
autor = models.CharField(max_length=50, blank=True, null=True, verbose_name=_(u'Autor'))
ementa = models.TextField(blank=True, null=True, verbose_name=_(u'Ementa'))
indexacao = models.TextField(blank=True, null=True)
class Meta:
verbose_name = _(u'Documento Acessório')
@ -172,8 +172,8 @@ class DocumentoAcessorio(models.Model):
class MateriaAssunto(models.Model):
# TODO M2M ??
assunto = models.ForeignKey(AssuntoMateria) # cod_assunto
materia = models.ForeignKey(MateriaLegislativa) # cod_materia
assunto = models.ForeignKey(AssuntoMateria)
materia = models.ForeignKey(MateriaLegislativa)
class Meta:
verbose_name = _(u'Relação Matéria - Assunto')
@ -181,12 +181,12 @@ class MateriaAssunto(models.Model):
class Numeracao(models.Model):
materia = models.ForeignKey(MateriaLegislativa) # cod_materia
numero_ordem = models.IntegerField() # num_ordem
tipo_materia = models.ForeignKey(TipoMateriaLegislativa, verbose_name=_(u'Tipo de Matéria')) # tip_materia
numero_materia = models.CharField(max_length=5, verbose_name=_(u'Número')) # num_materia
ano_materia = models.SmallIntegerField(verbose_name=_(u'Ano')) # ano_materia
data_materia = models.DateField(blank=True, null=True, verbose_name=_(u'Data')) # dat_materia
materia = models.ForeignKey(MateriaLegislativa)
numero_ordem = models.IntegerField()
tipo_materia = models.ForeignKey(TipoMateriaLegislativa, verbose_name=_(u'Tipo de Matéria'))
numero_materia = models.CharField(max_length=5, verbose_name=_(u'Número'))
ano_materia = models.SmallIntegerField(verbose_name=_(u'Ano'))
data_materia = models.DateField(blank=True, null=True, verbose_name=_(u'Data'))
class Meta:
verbose_name = _(u'Numeração')
@ -194,11 +194,11 @@ class Numeracao(models.Model):
class Orgao(models.Model):
nome = models.CharField(max_length=60, verbose_name=_(u'Nome')) # nom_orgao
sigla = models.CharField(max_length=10, verbose_name=_(u'Sigla')) # sgl_orgao
unidade_deliberativa = models.BooleanField(verbose_name=_(u'Unidade Deliberativa')) # ind_unid_deliberativa
endereco = models.CharField(max_length=100, blank=True, null=True, verbose_name=_(u'Endereço')) # end_orgao
telefone = models.CharField(max_length=50, blank=True, null=True, verbose_name=_(u'Telefone')) # num_tel_orgao
nome = models.CharField(max_length=60, verbose_name=_(u'Nome'))
sigla = models.CharField(max_length=10, verbose_name=_(u'Sigla'))
unidade_deliberativa = models.BooleanField(verbose_name=_(u'Unidade Deliberativa'))
endereco = models.CharField(max_length=100, blank=True, null=True, verbose_name=_(u'Endereço'))
telefone = models.CharField(max_length=50, blank=True, null=True, verbose_name=_(u'Telefone'))
class Meta:
verbose_name = _(u'Órgão')
@ -206,7 +206,7 @@ class Orgao(models.Model):
class TipoFimRelatoria(models.Model):
descricao = models.CharField(max_length=50, verbose_name=_(u'Tipo Fim Relatoria')) # des_fim_relatoria
descricao = models.CharField(max_length=50, verbose_name=_(u'Tipo Fim Relatoria'))
class Meta:
verbose_name = _(u'Tipo Fim de Relatoria')
@ -214,12 +214,12 @@ class TipoFimRelatoria(models.Model):
class Relatoria(models.Model):
materia = models.ForeignKey(MateriaLegislativa) # cod_materia
parlamentar = models.ForeignKey(Parlamentar, verbose_name=_(u'Parlamentar')) # cod_parlamentar
tipo_fim_relatoria = models.ForeignKey(TipoFimRelatoria, blank=True, null=True, verbose_name=_(u'Motivo Fim Relatoria')) # tip_fim_relatoria
comissao = models.ForeignKey(Comissao, blank=True, null=True, verbose_name=_(u'Localização Atual')) # cod_comissao
data_designacao_relator = models.DateField(verbose_name=_(u'Data Designação')) # dat_desig_relator
data_destituicao_relator = models.DateField(blank=True, null=True, verbose_name=_(u'Data Destituição')) # dat_destit_relator
materia = models.ForeignKey(MateriaLegislativa)
parlamentar = models.ForeignKey(Parlamentar, verbose_name=_(u'Parlamentar'))
tipo_fim_relatoria = models.ForeignKey(TipoFimRelatoria, blank=True, null=True, verbose_name=_(u'Motivo Fim Relatoria'))
comissao = models.ForeignKey(Comissao, blank=True, null=True, verbose_name=_(u'Localização Atual'))
data_designacao_relator = models.DateField(verbose_name=_(u'Data Designação'))
data_destituicao_relator = models.DateField(blank=True, null=True, verbose_name=_(u'Data Destituição'))
class Meta:
verbose_name = _(u'Relatoria')
@ -232,11 +232,11 @@ class Parecer(models.Model):
APRESENTACAO_CHOICES = ((ORAL, _(u'Oral')),
(ESCRITA, _(u'Escrita')))
relatoria = models.ForeignKey(Relatoria) # cod_relatoria
materia = models.ForeignKey(MateriaLegislativa) # cod_materia
tipo_conclusao = models.CharField(max_length=3, blank=True, null=True) # tip_conclusao
tipo_apresentacao = models.CharField(max_length=1, choices=APRESENTACAO_CHOICES) # tip_apresentacao
parecer = models.TextField(blank=True, null=True) # txt_parecer
relatoria = models.ForeignKey(Relatoria)
materia = models.ForeignKey(MateriaLegislativa)
tipo_conclusao = models.CharField(max_length=3, blank=True, null=True)
tipo_apresentacao = models.CharField(max_length=1, choices=APRESENTACAO_CHOICES)
parecer = models.TextField(blank=True, null=True)
class Meta:
verbose_name = _(u'Parecer')
@ -249,12 +249,12 @@ class TipoProposicao(models.Model):
MAT_OU_DOC_CHOICES = ((MATERIA, _(u'Matéria')),
(DOCUMENTO, _(u'Documento')))
descricao = models.CharField(max_length=50, verbose_name=_(u'Descrição')) # des_tipo_proposicao
materia_ou_documento = models.CharField(max_length=1, verbose_name=_(u'Gera'), choices=MAT_OU_DOC_CHOICES) # ind_mat_ou_doc
modelo = models.CharField(max_length=50, verbose_name=_(u'Modelo XML')) # nom_modelo
descricao = models.CharField(max_length=50, verbose_name=_(u'Descrição'))
materia_ou_documento = models.CharField(max_length=1, verbose_name=_(u'Gera'), choices=MAT_OU_DOC_CHOICES)
modelo = models.CharField(max_length=50, verbose_name=_(u'Modelo XML'))
# mutually exclusive (depend on materia_ou_documento)
tipo_materia = models.ForeignKey(TipoMateriaLegislativa, blank=True, null=True, verbose_name=_(u'Tipo Matéria')) # tip_mat_ou_doc
tipo_materia = models.ForeignKey(TipoMateriaLegislativa, blank=True, null=True, verbose_name=_(u'Tipo Matéria'))
tipo_documento = models.ForeignKey(TipoDocumento, blank=True, null=True, verbose_name=_(u'Tipo Documento'))
class Meta:
@ -263,19 +263,19 @@ class TipoProposicao(models.Model):
class Proposicao(models.Model):
materia = models.ForeignKey(MateriaLegislativa, blank=True, null=True) # cod_materia
autor = models.ForeignKey(Autor) # cod_autor
tipo = models.ForeignKey(TipoProposicao, verbose_name=_(u'Tipo')) # tip_proposicao
materia = models.ForeignKey(MateriaLegislativa, blank=True, null=True)
autor = models.ForeignKey(Autor)
tipo = models.ForeignKey(TipoProposicao, verbose_name=_(u'Tipo'))
# XXX data_envio was not null, but actual data said otherwise!!!
data_envio = models.DateTimeField(null=True, verbose_name=_(u'Data de Envio')) # dat_envio
data_recebimento = models.DateTimeField(blank=True, null=True, verbose_name=_(u'Data de Incorporação')) # dat_recebimento
descricao = models.CharField(max_length=100, verbose_name=_(u'Descrição')) # txt_descricao
data_devolucao = models.DateTimeField(blank=True, null=True, verbose_name=_(u'Data de devolução')) # dat_devolucao
justificativa_devolucao = models.CharField(max_length=200, blank=True, null=True, verbose_name=_(u'Justificativa da Devolução')) # txt_justif_devolucao
numero_proposicao = models.IntegerField(blank=True, null=True, verbose_name=_(u'')) # num_proposicao
data_envio = models.DateTimeField(null=True, verbose_name=_(u'Data de Envio'))
data_recebimento = models.DateTimeField(blank=True, null=True, verbose_name=_(u'Data de Incorporação'))
descricao = models.CharField(max_length=100, verbose_name=_(u'Descrição'))
data_devolucao = models.DateTimeField(blank=True, null=True, verbose_name=_(u'Data de devolução'))
justificativa_devolucao = models.CharField(max_length=200, blank=True, null=True, verbose_name=_(u'Justificativa da Devolução'))
numero_proposicao = models.IntegerField(blank=True, null=True, verbose_name=_(u''))
# mutually exclusive (depend on tipo.materia_ou_documento)
materia = models.ForeignKey(MateriaLegislativa, blank=True, null=True, verbose_name=_(u'Matéria')) # cod_mat_ou_doc
materia = models.ForeignKey(MateriaLegislativa, blank=True, null=True, verbose_name=_(u'Matéria'))
documento = models.ForeignKey(DocumentoAcessorio, blank=True, null=True, verbose_name=_(u'Documento'))
class Meta:
@ -289,10 +289,10 @@ class StatusTramitacao(models.Model):
INDICADOR_CHOICES = ((FIM, _(u'Fim')),
(RETORNO, _(u'Retorno')))
sigla = models.CharField(max_length=10, verbose_name=_(u'Sigla')) # sgl_status
descricao = models.CharField(max_length=60, verbose_name=_(u'Descrição')) # des_status
sigla = models.CharField(max_length=10, verbose_name=_(u'Sigla'))
descricao = models.CharField(max_length=60, verbose_name=_(u'Descrição'))
# TODO make specific migration considering both ind_fim_tramitacao, ind_retorno_tramitacao
indicador = models.CharField(max_length=1, verbose_name=_(u'Indicador da Tramitação'), choices=INDICADOR_CHOICES) # ind_fim_tramitacao
indicador = models.CharField(max_length=1, verbose_name=_(u'Indicador da Tramitação'), choices=INDICADOR_CHOICES)
class Meta:
verbose_name = _(u'Status de Tramitação')
@ -300,9 +300,9 @@ class StatusTramitacao(models.Model):
class UnidadeTramitacao(models.Model):
comissao = models.ForeignKey(Comissao, blank=True, null=True, verbose_name=_(u'Comissão')) # cod_comissao
orgao = models.ForeignKey(Orgao, blank=True, null=True, verbose_name=_(u'Órgão')) # cod_orgao
parlamentar = models.ForeignKey(Parlamentar, blank=True, null=True, verbose_name=_(u'Parlamentar')) # cod_parlamentar
comissao = models.ForeignKey(Comissao, blank=True, null=True, verbose_name=_(u'Comissão'))
orgao = models.ForeignKey(Orgao, blank=True, null=True, verbose_name=_(u'Órgão'))
parlamentar = models.ForeignKey(Parlamentar, blank=True, null=True, verbose_name=_(u'Parlamentar'))
class Meta:
verbose_name = _(u'Unidade de Tramitação')
@ -327,17 +327,17 @@ class Tramitacao(models.Model):
(PRIMEIRA_VOTACAO, _(u'1ª Votação')),
(SEGUNDA_TERCEIRA_VOTACAO, _(u'2ª e 3ª Votação')))
status = models.ForeignKey(StatusTramitacao, blank=True, null=True, verbose_name=_(u'Status')) # cod_status
materia = models.ForeignKey(MateriaLegislativa) # cod_materia
data_tramitacao = models.DateField(blank=True, null=True, verbose_name=_(u'Data Tramitação')) # dat_tramitacao
unidade_tramitacao_local = models.ForeignKey(UnidadeTramitacao, blank=True, null=True, related_name='+', verbose_name=_(u'Unidade Local')) # cod_unid_tram_local
data_encaminhamento = models.DateField(blank=True, null=True, verbose_name=_(u'Data Encaminhamento')) # dat_encaminha
unidade_tramitacao_destino = models.ForeignKey(UnidadeTramitacao, blank=True, null=True, related_name='+', verbose_name=_(u'Unidade Destino')) # cod_unid_tram_dest
ultima = models.BooleanField() # ind_ult_tramitacao
urgente = models.BooleanField(verbose_name=_(u'Urgente ?')) # ind_urgencia
turno = models.CharField(max_length=1, blank=True, null=True, verbose_name=_(u'Turno'), choices=TURNO_CHOICES) # sgl_turno
texto = models.TextField(blank=True, null=True, verbose_name=_(u'Texto da Ação')) # txt_tramitacao
data_fim_prazo = models.DateField(blank=True, null=True, verbose_name=_(u'Data Fim Prazo')) # dat_fim_prazo
status = models.ForeignKey(StatusTramitacao, blank=True, null=True, verbose_name=_(u'Status'))
materia = models.ForeignKey(MateriaLegislativa)
data_tramitacao = models.DateField(blank=True, null=True, verbose_name=_(u'Data Tramitação'))
unidade_tramitacao_local = models.ForeignKey(UnidadeTramitacao, blank=True, null=True, related_name='+', verbose_name=_(u'Unidade Local'))
data_encaminhamento = models.DateField(blank=True, null=True, verbose_name=_(u'Data Encaminhamento'))
unidade_tramitacao_destino = models.ForeignKey(UnidadeTramitacao, blank=True, null=True, related_name='+', verbose_name=_(u'Unidade Destino'))
ultima = models.BooleanField()
urgente = models.BooleanField(verbose_name=_(u'Urgente ?'))
turno = models.CharField(max_length=1, blank=True, null=True, verbose_name=_(u'Turno'), choices=TURNO_CHOICES)
texto = models.TextField(blank=True, null=True, verbose_name=_(u'Texto da Ação'))
data_fim_prazo = models.DateField(blank=True, null=True, verbose_name=_(u'Data Fim Prazo'))
class Meta:
verbose_name = _(u'Tramitação')

48
norma/legacy.yaml

@ -0,0 +1,48 @@
AssuntoNorma:
assunto: des_assunto
descricao: des_estendida
TipoNormaJuridica:
descricao: des_tipo_norma
equivalente_lexml: voc_lexml
sigla: sgl_tipo_norma
NormaJuridica:
ano: ano_norma
assunto: cod_assunto
complemento: ind_complemento
data: dat_norma
data_publicacao: dat_publicacao
data_vigencia: dat_vigencia
ementa: txt_ementa
esfera_federacao: tip_esfera_federacao
indexacao: txt_indexacao
materia: cod_materia
numero: num_norma
observacao: txt_observacao
pagina_fim_publicacao: num_pag_fim_publ
pagina_inicio_publicacao: num_pag_inicio_publ
timestamp: timestamp
tipo: tip_norma
veiculo_publicacao: des_veiculo_publicacao
LegislacaoCitada:
alinea: des_alinea
artigo: des_artigo
capitulo: des_capitulo
disposicoes: des_disposicoes
inciso: des_inciso
item: des_item
livro: des_livro
materia: cod_materia
norma: cod_norma
paragrafo: des_paragrafo
parte: des_parte
secao: des_secao
subsecao: des_subsecao
titulo: des_titulo
VinculoNormaJuridica:
norma_referente: cod_norma_referente
norma_referida: cod_norma_referida
tipo_vinculo: tip_vinculo

78
norma/models.py

@ -6,8 +6,8 @@ from materia.models import MateriaLegislativa
class AssuntoNorma(models.Model):
assunto = models.CharField(max_length=50, verbose_name=_(u'Assunto')) # des_assunto
descricao = models.CharField(max_length=250, blank=True, null=True, verbose_name=_(u'Descrição')) # des_estendida
assunto = models.CharField(max_length=50, verbose_name=_(u'Assunto'))
descricao = models.CharField(max_length=250, blank=True, null=True, verbose_name=_(u'Descrição'))
class Meta:
verbose_name = _(u'Assunto de Norma')
@ -31,9 +31,9 @@ class TipoNormaJuridica(models.Model):
'resolucao',
'regimento.interno',
))
equivalente_lexml = models.CharField(max_length=50, blank=True, null=True, verbose_name=_(u'Equivalente LexML'), choices=EQUIVALENTE_LEXML_CHOICES) # voc_lexml
sigla = models.CharField(max_length=3, verbose_name=_(u'Sigla')) # sgl_tipo_norma
descricao = models.CharField(max_length=50, verbose_name=_(u'Descrição')) # des_tipo_norma
equivalente_lexml = models.CharField(max_length=50, blank=True, null=True, verbose_name=_(u'Equivalente LexML'), choices=EQUIVALENTE_LEXML_CHOICES)
sigla = models.CharField(max_length=3, verbose_name=_(u'Sigla'))
descricao = models.CharField(max_length=50, verbose_name=_(u'Descrição'))
class Meta:
verbose_name = _(u'Tipo de Norma Jurídica')
@ -48,23 +48,23 @@ class NormaJuridica(models.Model):
(ESTADUAL, _(u'Estadual')),
(FEDERAL, _(u'Federal')))
tipo = models.ForeignKey(TipoNormaJuridica, verbose_name=_(u'Tipo')) # tip_norma
materia = models.ForeignKey(MateriaLegislativa, blank=True, null=True) # cod_materia
numero = models.IntegerField(verbose_name=_(u'Número')) # num_norma
ano = models.SmallIntegerField(verbose_name=_(u'Ano')) # ano_norma
esfera_federacao = models.CharField(max_length=1, verbose_name=_(u'Esfera Federação'), choices=ESFERA_FEDERACAO_CHOICES) # tip_esfera_federacao
data = models.DateField(blank=True, null=True, verbose_name=_(u'Data')) # dat_norma
data_publicacao = models.DateField(blank=True, null=True, verbose_name=_(u'Data Publicação')) # dat_publicacao
veiculo_publicacao = models.CharField(max_length=30, blank=True, null=True, verbose_name=_(u'Veículo Publicação')) # des_veiculo_publicacao
pagina_inicio_publicacao = models.IntegerField(blank=True, null=True, verbose_name=_(u'Pg. Início')) # num_pag_inicio_publ
pagina_fim_publicacao = models.IntegerField(blank=True, null=True, verbose_name=_(u'Pg. Fim')) # num_pag_fim_publ
ementa = models.TextField(verbose_name=_(u'Ementa')) # txt_ementa
indexacao = models.TextField(blank=True, null=True, verbose_name=_(u'Indexação')) # txt_indexacao
observacao = models.TextField(blank=True, null=True, verbose_name=_(u'Observação')) # txt_observacao
complemento = models.NullBooleanField(blank=True, verbose_name=_(u'Complementar ?')) # ind_complemento
assunto = models.ForeignKey(AssuntoNorma) # XXX was a CharField (attention on migrate) # cod_assunto
data_vigencia = models.DateField(blank=True, null=True) # dat_vigencia
timestamp = models.DateTimeField() # timestamp
tipo = models.ForeignKey(TipoNormaJuridica, verbose_name=_(u'Tipo'))
materia = models.ForeignKey(MateriaLegislativa, blank=True, null=True)
numero = models.IntegerField(verbose_name=_(u'Número'))
ano = models.SmallIntegerField(verbose_name=_(u'Ano'))
esfera_federacao = models.CharField(max_length=1, verbose_name=_(u'Esfera Federação'), choices=ESFERA_FEDERACAO_CHOICES)
data = models.DateField(blank=True, null=True, verbose_name=_(u'Data'))
data_publicacao = models.DateField(blank=True, null=True, verbose_name=_(u'Data Publicação'))
veiculo_publicacao = models.CharField(max_length=30, blank=True, null=True, verbose_name=_(u'Veículo Publicação'))
pagina_inicio_publicacao = models.IntegerField(blank=True, null=True, verbose_name=_(u'Pg. Início'))
pagina_fim_publicacao = models.IntegerField(blank=True, null=True, verbose_name=_(u'Pg. Fim'))
ementa = models.TextField(verbose_name=_(u'Ementa'))
indexacao = models.TextField(blank=True, null=True, verbose_name=_(u'Indexação'))
observacao = models.TextField(blank=True, null=True, verbose_name=_(u'Observação'))
complemento = models.NullBooleanField(blank=True, verbose_name=_(u'Complementar ?'))
assunto = models.ForeignKey(AssuntoNorma) # XXX was a CharField (attention on migrate)
data_vigencia = models.DateField(blank=True, null=True)
timestamp = models.DateTimeField()
class Meta:
verbose_name = _(u'Norma Jurídica')
@ -72,20 +72,20 @@ class NormaJuridica(models.Model):
class LegislacaoCitada(models.Model):
materia = models.ForeignKey(MateriaLegislativa) # cod_materia
norma = models.ForeignKey(NormaJuridica) # cod_norma
disposicoes = models.CharField(max_length=15, blank=True, null=True, verbose_name=_(u'Disposição')) # des_disposicoes
parte = models.CharField(max_length=8, blank=True, null=True, verbose_name=_(u'Parte')) # des_parte
livro = models.CharField(max_length=7, blank=True, null=True, verbose_name=_(u'Livro')) # des_livro
titulo = models.CharField(max_length=7, blank=True, null=True, verbose_name=_(u'Título')) # des_titulo
capitulo = models.CharField(max_length=7, blank=True, null=True, verbose_name=_(u'Capítulo')) # des_capitulo
secao = models.CharField(max_length=7, blank=True, null=True, verbose_name=_(u'Seção')) # des_secao
subsecao = models.CharField(max_length=7, blank=True, null=True, verbose_name=_(u'Subseção')) # des_subsecao
artigo = models.CharField(max_length=4, blank=True, null=True, verbose_name=_(u'Artigo')) # des_artigo
paragrafo = models.CharField(max_length=3, blank=True, null=True, verbose_name=_(u'Parágrafo')) # des_paragrafo
inciso = models.CharField(max_length=10, blank=True, null=True, verbose_name=_(u'Inciso')) # des_inciso
alinea = models.CharField(max_length=3, blank=True, null=True, verbose_name=_(u'Alínea')) # des_alinea
item = models.CharField(max_length=3, blank=True, null=True, verbose_name=_(u'Item')) # des_item
materia = models.ForeignKey(MateriaLegislativa)
norma = models.ForeignKey(NormaJuridica)
disposicoes = models.CharField(max_length=15, blank=True, null=True, verbose_name=_(u'Disposição'))
parte = models.CharField(max_length=8, blank=True, null=True, verbose_name=_(u'Parte'))
livro = models.CharField(max_length=7, blank=True, null=True, verbose_name=_(u'Livro'))
titulo = models.CharField(max_length=7, blank=True, null=True, verbose_name=_(u'Título'))
capitulo = models.CharField(max_length=7, blank=True, null=True, verbose_name=_(u'Capítulo'))
secao = models.CharField(max_length=7, blank=True, null=True, verbose_name=_(u'Seção'))
subsecao = models.CharField(max_length=7, blank=True, null=True, verbose_name=_(u'Subseção'))
artigo = models.CharField(max_length=4, blank=True, null=True, verbose_name=_(u'Artigo'))
paragrafo = models.CharField(max_length=3, blank=True, null=True, verbose_name=_(u'Parágrafo'))
inciso = models.CharField(max_length=10, blank=True, null=True, verbose_name=_(u'Inciso'))
alinea = models.CharField(max_length=3, blank=True, null=True, verbose_name=_(u'Alínea'))
item = models.CharField(max_length=3, blank=True, null=True, verbose_name=_(u'Item'))
class Meta:
verbose_name = _(u'Matéria Legislativa')
@ -104,9 +104,9 @@ class VinculoNormaJuridica(models.Model):
)
# TODO M2M ???
norma_referente = models.ForeignKey(NormaJuridica, related_name='+') # cod_norma_referente
norma_referida = models.ForeignKey(NormaJuridica, related_name='+') # cod_norma_referida
tipo_vinculo = models.CharField(max_length=1, blank=True, null=True, choices=TIPO_VINCULO_CHOICES) # tip_vinculo
norma_referente = models.ForeignKey(NormaJuridica, related_name='+')
norma_referida = models.ForeignKey(NormaJuridica, related_name='+')
tipo_vinculo = models.CharField(max_length=1, blank=True, null=True, choices=TIPO_VINCULO_CHOICES)
class Meta:
verbose_name = _(u'Vínculo entre Normas Jurídicas')

111
parlamentares/legacy.yaml

@ -0,0 +1,111 @@
Legislatura:
data_eleicao: dat_eleicao
data_fim: dat_fim
data_inicio: dat_inicio
SessaoLegislativa:
data_fim: dat_fim
data_fim_intervalo: dat_fim_intervalo
data_inicio: dat_inicio
data_inicio_intervalo: dat_inicio_intervalo
legislatura: num_legislatura
numero: num_sessao_leg
tipo: tip_sessao_leg
Coligacao:
legislatura: num_legislatura
nome: nom_coligacao
numero_votos: num_votos_coligacao
Partido:
data_criacao: dat_criacao
data_extincao: dat_extincao
nome: nom_partido
sigla: sgl_partido
ComposicaoColigacao:
coligacao: cod_coligacao
partido: cod_partido
Municipio (Localidade):
nome: nom_localidade
regiao: sgl_regiao
uf: sgl_uf
NivelInstrucao:
descricao: des_nivel_instrucao
SituacaoMilitar:
descricao: des_tipo_situacao
Parlamentar:
ativo: ind_ativo
biografia: txt_biografia
cep_residencia: num_cep_resid
cod_casa: cod_casa
cpf: num_cpf
data_nascimento: dat_nascimento
email: end_email
endereco_residencia: end_residencial
endereco_web: end_web
fax: num_fax_parlamentar
fax_residencia: num_fax_resid
locais_atuacao: des_local_atuacao
municipio_residencia: cod_localidade_resid
nivel_instrucao: cod_nivel_instrucao
nome_completo: nom_completo
nome_parlamentar: nom_parlamentar
numero_gab_parlamentar: num_gab_parlamentar
profissao: nom_profissao
rg: num_rg
sexo: sex_parlamentar
situacao_militar: tip_situacao_militar
telefone: num_tel_parlamentar
telefone_residencia: num_tel_resid
titulo_eleitor: num_tit_eleitor
unidade_deliberativa: ind_unid_deliberativa
TipoDependente:
descricao: des_tipo_dependente
Dependente:
cpf: num_cpf
data_nascimento: dat_nascimento
nome: nom_dependente
parlamentar: cod_parlamentar
rg: num_rg
sexo: sex_dependente
tipo: tip_dependente
titulo_eleitor: num_tit_eleitor
Filiacao:
data: dat_filiacao
data_desfiliacao: dat_desfiliacao
parlamentar: cod_parlamentar
partido: cod_partido
TipoAfastamento:
afastamento: ind_afastamento
descricao: des_afastamento
dispositivo: des_dispositivo
fim_mandato: ind_fim_mandato
Mandato:
coligacao: cod_coligacao
data_expedicao_diploma: dat_expedicao_diploma
data_fim_mandato: dat_fim_mandato
legislatura: num_legislatura
observacao: txt_observacao
parlamentar: cod_parlamentar
tipo_afastamento: tip_afastamento
tipo_causa_fim_mandato: tip_causa_fim_mandato
votos_recebidos: num_votos_recebidos
CargoMesa:
descricao: des_cargo
unico: ind_unico
ComposicaoMesa:
cargo: cod_cargo
parlamentar: cod_parlamentar
sessao_legislativa: cod_sessao_leg

160
parlamentares/models.py

@ -4,9 +4,9 @@ from django.utils.translation import ugettext as _
class Legislatura(models.Model):
data_inicio = models.DateField(verbose_name=_(u'Data Início')) # dat_inicio
data_fim = models.DateField(verbose_name=_(u'Data Fim')) # dat_fim
data_eleicao = models.DateField(verbose_name=_(u'Data Eleição')) # dat_eleicao
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')
@ -19,13 +19,13 @@ class SessaoLegislativa(models.Model):
TIPO_SESSAO_CHOICES = ((ORDINARIA, _(u'Ordinária')),
(EXTRAORDINARIA, _(u'Extraordinária')))
legislatura = models.ForeignKey(Legislatura) # num_legislatura
numero = models.IntegerField(verbose_name=_(u'Número')) # num_sessao_leg
tipo = models.CharField(max_length=1, verbose_name=_(u'Tipo'), choices=TIPO_SESSAO_CHOICES) # tip_sessao_leg
data_inicio = models.DateField(verbose_name=_(u'Data Início')) # dat_inicio
data_fim = models.DateField(verbose_name=_(u'Data Fim')) # dat_fim
data_inicio_intervalo = models.DateField(blank=True, null=True, verbose_name=_(u'Início Intervalo')) # dat_inicio_intervalo
data_fim_intervalo = models.DateField(blank=True, null=True, verbose_name=_(u'Fim Intervalo')) # dat_fim_intervalo
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')
@ -33,9 +33,9 @@ class SessaoLegislativa(models.Model):
class Coligacao(models.Model):
legislatura = models.ForeignKey(Legislatura, verbose_name=_(u'Legislatura')) # num_legislatura
nome = models.CharField(max_length=50, verbose_name=_(u'Nome')) # nom_coligacao
numero_votos = models.IntegerField(blank=True, null=True, verbose_name=_(u'Nº Votos Recebidos')) # num_votos_coligacao
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')
@ -43,10 +43,10 @@ class Coligacao(models.Model):
class Partido(models.Model):
sigla = models.CharField(max_length=9, verbose_name=_(u'Sigla')) # sgl_partido
nome = models.CharField(max_length=50, verbose_name=_(u'Nome')) # nom_partido
data_criacao = models.DateField(blank=True, null=True, verbose_name=_(u'Data Criação')) # dat_criacao
data_extincao = models.DateField(blank=True, null=True, verbose_name=_(u'Data Extinção')) # dat_extincao
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')
@ -55,8 +55,8 @@ class Partido(models.Model):
class ComposicaoColigacao(models.Model):
# TODO M2M
partido = models.ForeignKey(Partido) # cod_partido
coligacao = models.ForeignKey(Coligacao) # cod_coligacao
partido = models.ForeignKey(Partido)
coligacao = models.ForeignKey(Coligacao)
class Municipio(models.Model): # Localidade
@ -102,9 +102,9 @@ class Municipio(models.Model): # Localidade
('EX', u'Exterior'),
)
nome = models.CharField(max_length=50, blank=True, null=True) # nom_localidade
uf = models.CharField(max_length=2, blank=True, null=True, choices=UF_CHOICES) # sgl_uf
regiao = models.CharField(max_length=2, blank=True, null=True, choices=REGIAO_CHOICES) # sgl_regiao
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')
@ -112,7 +112,7 @@ class Municipio(models.Model): # Localidade
class NivelInstrucao(models.Model):
descricao = models.CharField(max_length=50, verbose_name=_(u'Nível de Instrução')) # des_nivel_instrucao
descricao = models.CharField(max_length=50, verbose_name=_(u'Nível de Instrução'))
class Meta:
verbose_name = _(u'Nível Instrução')
@ -123,7 +123,7 @@ class NivelInstrucao(models.Model):
class SituacaoMilitar(models.Model):
descricao = models.CharField(max_length=50, verbose_name=_(u'Situação Militar')) # des_tipo_situacao
descricao = models.CharField(max_length=50, verbose_name=_(u'Situação Militar'))
class Meta:
verbose_name = _(u'Tipo Situação Militar')
@ -136,31 +136,31 @@ class Parlamentar(models.Model):
SEXO_CHOICE = ((FEMININO, _(u'Feminino')),
(MASCULINO, _(u'Masculino')))
nivel_instrucao = models.ForeignKey(NivelInstrucao, blank=True, null=True, verbose_name=_(u'Nível Instrução')) # cod_nivel_instrucao
situacao_militar = models.ForeignKey(SituacaoMilitar, blank=True, null=True, verbose_name=_(u'Situação Militar')) # tip_situacao_militar
nome_completo = models.CharField(max_length=50, verbose_name=_(u'Nome Completo')) # nom_completo
nome_parlamentar = models.CharField(max_length=50, blank=True, null=True, verbose_name=_(u'Nome Parlamentar')) # nom_parlamentar
sexo = models.CharField(max_length=1, verbose_name=_(u'Sexo'), choices=SEXO_CHOICE) # sex_parlamentar
data_nascimento = models.DateField(blank=True, null=True, verbose_name=_(u'Data Nascimento')) # dat_nascimento
cpf = models.CharField(max_length=14, blank=True, null=True, verbose_name=_(u'C.P.F')) # num_cpf
rg = models.CharField(max_length=15, blank=True, null=True, verbose_name=_(u'R.G.')) # num_rg
titulo_eleitor = models.CharField(max_length=15, blank=True, null=True, verbose_name=_(u'Título de Eleitor')) # num_tit_eleitor
cod_casa = models.IntegerField() # cod_casa
numero_gab_parlamentar = models.CharField(max_length=10, blank=True, null=True, verbose_name=_(u'Nº Gabinete')) # num_gab_parlamentar
telefone = models.CharField(max_length=50, blank=True, null=True, verbose_name=_(u'Telefone')) # num_tel_parlamentar
fax = models.CharField(max_length=50, blank=True, null=True, verbose_name=_(u'Fax')) # num_fax_parlamentar
endereco_residencia = models.CharField(max_length=100, blank=True, null=True, verbose_name=_(u'Endereço Residencial')) # end_residencial
municipio_residencia = models.ForeignKey(Municipio, blank=True, null=True, verbose_name=_(u'Município')) # cod_localidade_resid
cep_residencia = models.CharField(max_length=9, blank=True, null=True, verbose_name=_(u'CEP')) # num_cep_resid
telefone_residencia = models.CharField(max_length=50, blank=True, null=True, verbose_name=_(u'Telefone Residencial')) # num_tel_resid
fax_residencia = models.CharField(max_length=50, blank=True, null=True, verbose_name=_(u'Fax Residencial')) # num_fax_resid
endereco_web = models.CharField(max_length=100, blank=True, null=True, verbose_name=_(u'HomePage')) # end_web
profissao = models.CharField(max_length=50, blank=True, null=True, verbose_name=_(u'Profissão')) # nom_profissao
email = models.CharField(max_length=100, blank=True, null=True, verbose_name=_(u'Correio Eletrônico')) # end_email
locais_atuacao = models.CharField(max_length=100, blank=True, null=True, verbose_name=_(u'Locais de Atuação')) # des_local_atuacao
ativo = models.BooleanField(verbose_name=_(u'Ativo na Casa?')) # ind_ativo
biografia = models.TextField(blank=True, null=True, verbose_name=_(u'Biografia')) # txt_biografia
unidade_deliberativa = models.BooleanField() # ind_unid_deliberativa
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')
@ -171,7 +171,7 @@ class Parlamentar(models.Model):
class TipoDependente(models.Model):
descricao = models.CharField(max_length=50) # des_tipo_dependente
descricao = models.CharField(max_length=50)
class Meta:
verbose_name = _(u'Tipo de Dependente')
@ -184,14 +184,14 @@ class Dependente(models.Model):
SEXO_CHOICE = ((FEMININO, _(u'Feminino')),
(MASCULINO, _(u'Masculino')))
tipo = models.ForeignKey(TipoDependente, verbose_name=_(u'Tipo')) # tip_dependente
parlamentar = models.ForeignKey(Parlamentar) # cod_parlamentar
nome = models.CharField(max_length=50, verbose_name=_(u'Nome')) # nom_dependente
sexo = models.CharField(max_length=1, verbose_name=_(u'Sexo'), choices=SEXO_CHOICE) # sex_dependente
data_nascimento = models.DateField(blank=True, null=True, verbose_name=_(u'Data Nascimento')) # dat_nascimento
cpf = models.CharField(max_length=14, blank=True, null=True, verbose_name=_(u'CPF')) # num_cpf
rg = models.CharField(max_length=15, blank=True, null=True, verbose_name=_(u'RG')) # num_rg
titulo_eleitor = models.CharField(max_length=15, blank=True, null=True, verbose_name=_(u'Nº Título Eleitor')) # num_tit_eleitor
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')
@ -199,10 +199,10 @@ class Dependente(models.Model):
class Filiacao(models.Model):
data = models.DateField(verbose_name=_(u'Data Filiação')) # dat_filiacao
parlamentar = models.ForeignKey(Parlamentar) # cod_parlamentar
partido = models.ForeignKey(Partido, verbose_name=_(u'Partido')) # cod_partido
data_desfiliacao = models.DateField(blank=True, null=True, verbose_name=_(u'Data Desfiliação')) # dat_desfiliacao
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')
@ -210,10 +210,10 @@ class Filiacao(models.Model):
class TipoAfastamento(models.Model):
descricao = models.CharField(max_length=50, verbose_name=_(u'Descrição')) # des_afastamento
afastamento = models.BooleanField(verbose_name=_(u'Indicador')) # ind_afastamento
fim_mandato = models.BooleanField(verbose_name=_(u'Indicador')) # ind_fim_mandato
dispositivo = models.CharField(max_length=50, blank=True, null=True, verbose_name=_(u'Dispositivo')) # des_dispositivo
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')
@ -221,16 +221,16 @@ class TipoAfastamento(models.Model):
class Mandato(models.Model):
parlamentar = models.ForeignKey(Parlamentar) # cod_parlamentar
tipo_afastamento = models.ForeignKey(TipoAfastamento, blank=True, null=True) # tip_afastamento
legislatura = models.ForeignKey(Legislatura, verbose_name=_(u'Legislatura')) # num_legislatura
coligacao = models.ForeignKey(Coligacao, blank=True, null=True, verbose_name=_(u'Coligação')) # cod_coligacao
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) # tip_causa_fim_mandato
data_fim_mandato = models.DateField(blank=True, null=True, verbose_name=_(u'Fim do Mandato')) # dat_fim_mandato
votos_recebidos = models.IntegerField(blank=True, null=True, verbose_name=_(u'Votos Recebidos')) # num_votos_recebidos
data_expedicao_diploma = models.DateField(blank=True, null=True, verbose_name=_(u'Expedição do Diploma')) # dat_expedicao_diploma
observacao = models.TextField(blank=True, null=True, verbose_name=_(u'Observação')) # txt_observacao
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')
@ -239,8 +239,8 @@ class Mandato(models.Model):
class CargoMesa(models.Model):
# TODO M2M ????
descricao = models.CharField(max_length=50, verbose_name=_(u'Cargo na Mesa')) # des_cargo
unico = models.BooleanField(verbose_name=_(u'Cargo Único')) # ind_unico
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')
@ -249,9 +249,9 @@ class CargoMesa(models.Model):
class ComposicaoMesa(models.Model):
# TODO M2M ???? Ternary?????
parlamentar = models.ForeignKey(Parlamentar) # cod_parlamentar
sessao_legislativa = models.ForeignKey(SessaoLegislativa) # cod_sessao_leg
cargo = models.ForeignKey(CargoMesa) # cod_cargo
parlamentar = models.ForeignKey(Parlamentar)
sessao_legislativa = models.ForeignKey(SessaoLegislativa)
cargo = models.ForeignKey(CargoMesa)
class Meta:
verbose_name = _(u'Ocupação de cargo na Mesa')

64
protocoloadm/legacy.yaml

@ -0,0 +1,64 @@
TipoDocumentoAdministrativo:
descricao: des_tipo_documento
sigla: sgl_tipo_documento
DocumentoAdministrativo:
ano: ano_documento
assunto: txt_assunto
autor: cod_autor
data: dat_documento
data_fim_prazo: dat_fim_prazo
dias_prazo: num_dias_prazo
interessado: txt_interessado
numero: num_documento
numero_protocolo: num_protocolo
observacao: txt_observacao
tipo: tip_documento
tramitacao: ind_tramitacao
DocumentoAcessorioAdministrativo:
arquivo: nom_arquivo
assunto: txt_assunto
autor: nom_autor_documento
data: dat_documento
documento: cod_documento
indexacao: txt_indexacao
nome: nom_documento
tipo: tip_documento
Protocolo:
ano: ano_protocolo
anulado: ind_anulado
assunto_ementa: txt_assunto_ementa
autor: cod_autor
data: dat_protocolo
hora: hor_protocolo
interessado: txt_interessado
ip_anulacao: txt_ip_anulacao
justificativa_anulacao: txt_just_anulacao
numero: num_protocolo
numero_paginas: num_paginas
observacao: txt_observacao
timestamp: dat_timestamp
timestamp_anulacao: timestamp_anulacao
tipo_documento: tip_documento
tipo_materia: tip_materia
tipo_processo: tip_processo
tipo_protocolo: tip_protocolo
user_anulacao: txt_user_anulacao
StatusTramitacaoAdministrativo:
descricao: des_status
indicador: ind_fim_tramitacao
sigla: sgl_status
TramitacaoAdministrativo:
data_encaminhamento: dat_encaminha
data_fim_prazo: dat_fim_prazo
data_tramitacao: dat_tramitacao
documento: cod_documento
status: cod_status
texto: txt_tramitacao
ultima: ind_ult_tramitacao
unidade_tramitacao_destino: cod_unid_tram_dest
unidade_tramitacao_local: cod_unid_tram_local

106
protocoloadm/models.py

@ -6,8 +6,8 @@ from materia.models import Autor, TipoMateriaLegislativa, UnidadeTramitacao
class TipoDocumentoAdministrativo(models.Model):
sigla = models.CharField(max_length=5, verbose_name=_(u'Sigla')) # sgl_tipo_documento
descricao = models.CharField(max_length=50, verbose_name=_(u'Descrição')) # des_tipo_documento
sigla = models.CharField(max_length=5, verbose_name=_(u'Sigla'))
descricao = models.CharField(max_length=50, verbose_name=_(u'Descrição'))
class Meta:
verbose_name = _(u'Tipo de Documento Administrativo')
@ -15,18 +15,18 @@ class TipoDocumentoAdministrativo(models.Model):
class DocumentoAdministrativo(models.Model):
tipo = models.ForeignKey(TipoDocumentoAdministrativo, verbose_name=_(u'Tipo Documento')) # tip_documento
numero = models.IntegerField(verbose_name=_(u'Número')) # num_documento
ano = models.SmallIntegerField(verbose_name=_(u'Ano')) # ano_documento
data = models.DateField(verbose_name=_(u'Data')) # dat_documento
numero_protocolo = models.IntegerField(blank=True, null=True, verbose_name=_(u'Núm. Protocolo')) # num_protocolo
interessado = models.CharField(max_length=50, blank=True, null=True, verbose_name=_(u'Interessado')) # txt_interessado
autor = models.ForeignKey(Autor, blank=True, null=True) # cod_autor
dias_prazo = models.IntegerField(blank=True, null=True, verbose_name=_(u'Dias Prazo')) # num_dias_prazo
data_fim_prazo = models.DateField(blank=True, null=True, verbose_name=_(u'Data Fim Prazo')) # dat_fim_prazo
tramitacao = models.BooleanField(verbose_name=_(u'Em Tramitação?')) # ind_tramitacao
assunto = models.TextField(verbose_name=_(u'Assunto')) # txt_assunto
observacao = models.TextField(blank=True, null=True, verbose_name=_(u'Observação')) # txt_observacao
tipo = models.ForeignKey(TipoDocumentoAdministrativo, verbose_name=_(u'Tipo Documento'))
numero = models.IntegerField(verbose_name=_(u'Número'))
ano = models.SmallIntegerField(verbose_name=_(u'Ano'))
data = models.DateField(verbose_name=_(u'Data'))
numero_protocolo = models.IntegerField(blank=True, null=True, verbose_name=_(u'Núm. Protocolo'))
interessado = models.CharField(max_length=50, blank=True, null=True, verbose_name=_(u'Interessado'))
autor = models.ForeignKey(Autor, blank=True, null=True)
dias_prazo = models.IntegerField(blank=True, null=True, verbose_name=_(u'Dias Prazo'))
data_fim_prazo = models.DateField(blank=True, null=True, verbose_name=_(u'Data Fim Prazo'))
tramitacao = models.BooleanField(verbose_name=_(u'Em Tramitação?'))
assunto = models.TextField(verbose_name=_(u'Assunto'))
observacao = models.TextField(blank=True, null=True, verbose_name=_(u'Observação'))
class Meta:
verbose_name = _(u'Documento Administrativo')
@ -34,14 +34,14 @@ class DocumentoAdministrativo(models.Model):
class DocumentoAcessorioAdministrativo(models.Model):
documento = models.ForeignKey(DocumentoAdministrativo) # cod_documento
tipo = models.ForeignKey(TipoDocumentoAdministrativo, verbose_name=_(u'Tipo')) # tip_documento
nome = models.CharField(max_length=30, verbose_name=_(u'Nome')) # nom_documento
arquivo = models.CharField(max_length=100, verbose_name=_(u'Arquivo')) # nom_arquivo
data = models.DateField(blank=True, null=True, verbose_name=_(u'Data')) # dat_documento
autor = models.CharField(max_length=50, blank=True, null=True, verbose_name=_(u'Autor')) # nom_autor_documento
assunto = models.TextField(blank=True, null=True, verbose_name=_(u'Assunto')) # txt_assunto
indexacao = models.TextField(blank=True, null=True) # txt_indexacao
documento = models.ForeignKey(DocumentoAdministrativo)
tipo = models.ForeignKey(TipoDocumentoAdministrativo, verbose_name=_(u'Tipo'))
nome = models.CharField(max_length=30, verbose_name=_(u'Nome'))
arquivo = models.CharField(max_length=100, verbose_name=_(u'Arquivo'))
data = models.DateField(blank=True, null=True, verbose_name=_(u'Data'))
autor = models.CharField(max_length=50, blank=True, null=True, verbose_name=_(u'Autor'))
assunto = models.TextField(blank=True, null=True, verbose_name=_(u'Assunto'))
indexacao = models.TextField(blank=True, null=True)
class Meta:
verbose_name = _(u'Documento Acessório')
@ -49,25 +49,25 @@ class DocumentoAcessorioAdministrativo(models.Model):
class Protocolo(models.Model):
numero = models.IntegerField(blank=True, null=True, verbose_name=_(u'Número do Protocolo')) # num_protocolo
ano = models.SmallIntegerField() # ano_protocolo
data = models.DateField() # dat_protocolo
hora = models.TimeField() # hor_protocolo
timestamp = models.DateTimeField() # dat_timestamp
tipo_protocolo = models.IntegerField(verbose_name=_(u'Tipo de Protocolo')) # tip_protocolo
tipo_processo = models.IntegerField() # tip_processo
interessado = models.CharField(max_length=60, blank=True, null=True, verbose_name=_(u'Interessado')) # txt_interessado
autor = models.ForeignKey(Autor, blank=True, null=True) # cod_autor
assunto_ementa = models.TextField(blank=True, null=True) # txt_assunto_ementa
tipo_documento = models.ForeignKey(TipoDocumentoAdministrativo, blank=True, null=True, verbose_name=_(u'Tipo de documento')) # tip_documento
tipo_materia = models.ForeignKey(TipoMateriaLegislativa, blank=True, null=True, verbose_name=_(u'Tipo Matéria')) # tip_materia
numero_paginas = models.IntegerField(blank=True, null=True, verbose_name=_(u'Número de Páginas')) # num_paginas
observacao = models.TextField(blank=True, null=True, verbose_name=_(u'Observação')) # txt_observacao
anulado = models.BooleanField() # ind_anulado
user_anulacao = models.CharField(max_length=20, blank=True, null=True) # txt_user_anulacao
ip_anulacao = models.CharField(max_length=15, blank=True, null=True) # txt_ip_anulacao
justificativa_anulacao = models.CharField(max_length=60, blank=True, null=True) # txt_just_anulacao
timestamp_anulacao = models.DateTimeField(blank=True, null=True) # timestamp_anulacao
numero = models.IntegerField(blank=True, null=True, verbose_name=_(u'Número do Protocolo'))
ano = models.SmallIntegerField()
data = models.DateField()
hora = models.TimeField()
timestamp = models.DateTimeField()
tipo_protocolo = models.IntegerField(verbose_name=_(u'Tipo de Protocolo'))
tipo_processo = models.IntegerField()
interessado = models.CharField(max_length=60, blank=True, null=True, verbose_name=_(u'Interessado'))
autor = models.ForeignKey(Autor, blank=True, null=True)
assunto_ementa = models.TextField(blank=True, null=True)
tipo_documento = models.ForeignKey(TipoDocumentoAdministrativo, blank=True, null=True, verbose_name=_(u'Tipo de documento'))
tipo_materia = models.ForeignKey(TipoMateriaLegislativa, blank=True, null=True, verbose_name=_(u'Tipo Matéria'))
numero_paginas = models.IntegerField(blank=True, null=True, verbose_name=_(u'Número de Páginas'))
observacao = models.TextField(blank=True, null=True, verbose_name=_(u'Observação'))
anulado = models.BooleanField()
user_anulacao = models.CharField(max_length=20, blank=True, null=True)
ip_anulacao = models.CharField(max_length=15, blank=True, null=True)
justificativa_anulacao = models.CharField(max_length=60, blank=True, null=True)
timestamp_anulacao = models.DateTimeField(blank=True, null=True)
class Meta:
verbose_name = _(u'Protocolo')
@ -80,10 +80,10 @@ class StatusTramitacaoAdministrativo(models.Model):
INDICADOR_CHOICES = ((FIM, _(u'Fim')),
(RETORNO, _(u'Retorno')))
sigla = models.CharField(max_length=10, verbose_name=_(u'Sigla')) # sgl_status
descricao = models.CharField(max_length=60, verbose_name=_(u'Descrição')) # des_status
sigla = models.CharField(max_length=10, verbose_name=_(u'Sigla'))
descricao = models.CharField(max_length=60, verbose_name=_(u'Descrição'))
# TODO make specific migration considering both ind_fim_tramitacao, ind_retorno_tramitacao
indicador = models.CharField(max_length=1, verbose_name=_(u'Indicador da Tramitação'), choices=INDICADOR_CHOICES) # ind_fim_tramitacao
indicador = models.CharField(max_length=1, verbose_name=_(u'Indicador da Tramitação'), choices=INDICADOR_CHOICES)
class Meta:
verbose_name = _(u'Status de Tramitação')
@ -91,15 +91,15 @@ class StatusTramitacaoAdministrativo(models.Model):
class TramitacaoAdministrativo(models.Model):
status = models.ForeignKey(StatusTramitacaoAdministrativo, blank=True, null=True, verbose_name=_(u'Status')) # cod_status
documento = models.ForeignKey(DocumentoAdministrativo) # cod_documento
data_tramitacao = models.DateField(blank=True, null=True, verbose_name=_(u'Data Tramitação')) # dat_tramitacao
unidade_tramitacao_local = models.ForeignKey(UnidadeTramitacao, blank=True, null=True, related_name='+', verbose_name=_(u'Unidade Local')) # cod_unid_tram_local
data_encaminhamento = models.DateField(blank=True, null=True, verbose_name=_(u'Data Encaminhamento')) # dat_encaminha
unidade_tramitacao_destino = models.ForeignKey(UnidadeTramitacao, blank=True, null=True, related_name='+', verbose_name=_(u'Unidade Destino')) # cod_unid_tram_dest
ultima = models.BooleanField() # ind_ult_tramitacao
texto = models.TextField(blank=True, null=True, verbose_name=_(u'Texto da Ação')) # txt_tramitacao
data_fim_prazo = models.DateField(blank=True, null=True, verbose_name=_(u'Data Fim do Prazo')) # dat_fim_prazo
status = models.ForeignKey(StatusTramitacaoAdministrativo, blank=True, null=True, verbose_name=_(u'Status'))
documento = models.ForeignKey(DocumentoAdministrativo)
data_tramitacao = models.DateField(blank=True, null=True, verbose_name=_(u'Data Tramitação'))
unidade_tramitacao_local = models.ForeignKey(UnidadeTramitacao, blank=True, null=True, related_name='+', verbose_name=_(u'Unidade Local'))
data_encaminhamento = models.DateField(blank=True, null=True, verbose_name=_(u'Data Encaminhamento'))
unidade_tramitacao_destino = models.ForeignKey(UnidadeTramitacao, blank=True, null=True, related_name='+', verbose_name=_(u'Unidade Destino'))
ultima = models.BooleanField()
texto = models.TextField(blank=True, null=True, verbose_name=_(u'Texto da Ação'))
data_fim_prazo = models.DateField(blank=True, null=True, verbose_name=_(u'Data Fim do Prazo'))
class Meta:
verbose_name = _(u'Tramitação de Documento Administrativo')

81
sessao/legacy.yaml

@ -0,0 +1,81 @@
TipoSessaoPlenaria:
nome: nom_sessao
quorum_minimo: num_minimo
SessaoPlenaria:
cod_andamento_sessao: cod_andamento_sessao
data_fim: dat_fim_sessao
data_inicio: dat_inicio_sessao
dia: dia_sessao
hora_fim: hr_fim_sessao
hora_inicio: hr_inicio_sessao
legislatura: num_legislatura
numero: num_sessao_plen
sessao_legislativa: cod_sessao_leg
tipo: tip_sessao
tipo_expediente: tip_expediente
url_audio: url_audio
url_video: url_video
AbstractOrdemDia:
data_ordem: dat_ordem
materia: cod_materia
numero_ordem: num_ordem
observacao: txt_observacao
resultado: txt_resultado
sessao_plenaria: cod_sessao_plen
tipo_votacao: tip_votacao
ExpedienteMateria: {}
TipoExpediente:
nome: nom_expediente
ExpedienteSessao (ExpedienteSessaoPlenaria):
conteudo: txt_expediente
sessao_plenaria: cod_sessao_plen
tipo: cod_expediente
IntegranteMesa (MesaSessaoPlenaria):
cargo: cod_cargo
parlamentar: cod_parlamentar
sessao_plenaria: cod_sessao_plen
AbstractOrador:
numero_ordem: num_ordem
parlamentar: cod_parlamentar
sessao_plenaria: cod_sessao_plen
url_discurso: url_discurso
Orador (Oradores): {}
OradorExpediente (OradoresExpediente): {}
OrdemDia: {}
PresencaOrdemDia (OrdemDiaPresenca):
data_ordem: dat_ordem
parlamentar: cod_parlamentar
sessao_plenaria: cod_sessao_plen
TipoResultadoVotacao:
nome: nom_resultado
RegistroVotacao:
materia: cod_materia
numero_abstencoes: num_abstencao
numero_votos_nao: num_votos_nao
numero_votos_sim: num_votos_sim
observacao: txt_observacao
ordem: cod_ordem
tipo_resultado_votacao: tip_resultado_votacao
VotoParlamentar (RegistroVotacaoParlamentar):
parlamentar: cod_parlamentar
votacao: cod_votacao
voto: vot_parlamentar
SessaoPlenariaPresenca:
data_sessao: dat_sessao
parlamentar: cod_parlamentar
sessao_plen: cod_sessao_plen

100
sessao/models.py

@ -8,8 +8,8 @@ from sapl.utils import make_choices
class TipoSessaoPlenaria(models.Model):
nome = models.CharField(max_length=30, verbose_name=_(u'Tipo')) # nom_sessao
quorum_minimo = models.IntegerField(verbose_name=_(u'Quórum mínimo')) # num_minimo
nome = models.CharField(max_length=30, verbose_name=_(u'Tipo'))
quorum_minimo = models.IntegerField(verbose_name=_(u'Quórum mínimo'))
class Meta:
verbose_name = _(u'Tipo de Sessão Plenária')
@ -23,21 +23,21 @@ class SessaoPlenaria(models.Model):
# TODO trash??? Seems to have been a FK in the past. Would be:
# 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)
tipo = models.ForeignKey(TipoSessaoPlenaria, verbose_name=_(u'Tipo')) # tip_sessao
sessao_legislativa = models.ForeignKey(SessaoLegislativa, verbose_name=_(u'Sessão Legislativa')) # cod_sessao_leg
legislatura = models.ForeignKey(Legislatura, verbose_name=_(u'Legislatura')) # num_legislatura
tipo = models.ForeignKey(TipoSessaoPlenaria, verbose_name=_(u'Tipo'))
sessao_legislativa = models.ForeignKey(SessaoLegislativa, verbose_name=_(u'Sessão Legislativa'))
legislatura = models.ForeignKey(Legislatura, verbose_name=_(u'Legislatura'))
# XXX seems to be empty
tipo_expediente = models.CharField(max_length=10) # tip_expediente
data_inicio = models.DateField(verbose_name=_(u'Abertura')) # dat_inicio_sessao
dia = models.CharField(max_length=15) # dia_sessao
hora_inicio = models.CharField(max_length=5, verbose_name=_(u'Horário')) # hr_inicio_sessao
hora_fim = models.CharField(max_length=5, blank=True, null=True, verbose_name=_(u'Horário')) # hr_fim_sessao
numero = models.IntegerField(verbose_name=_(u'Número')) # num_sessao_plen
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_video = models.CharField(max_length=150, blank=True, null=True, verbose_name=_(u'URL Arquivo Vídeo (Formatos MP4 / FLV / WebM)')) # url_video
tipo_expediente = models.CharField(max_length=10)
data_inicio = models.DateField(verbose_name=_(u'Abertura'))
dia = models.CharField(max_length=15)
hora_inicio = models.CharField(max_length=5, verbose_name=_(u'Horário'))
hora_fim = models.CharField(max_length=5, blank=True, null=True, verbose_name=_(u'Horário'))
numero = models.IntegerField(verbose_name=_(u'Número'))
data_fim = models.DateField(blank=True, null=True, verbose_name=_(u'Encerramento'))
url_audio = models.CharField(max_length=150, blank=True, null=True, verbose_name=_(u'URL Arquivo Áudio (Formatos MP3 / AAC)'))
url_video = models.CharField(max_length=150, blank=True, null=True, verbose_name=_(u'URL Arquivo Vídeo (Formatos MP4 / FLV / WebM)'))
class Meta:
verbose_name = _(u'Sessão Plenária')
@ -58,13 +58,13 @@ class AbstractOrdemDia(models.Model):
3, _(u'Secreta'),
)
sessao_plenaria = 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'), choices=TIPO_VOTACAO_CHOICES) # tip_votacao
sessao_plenaria = models.ForeignKey(SessaoPlenaria)
materia = models.ForeignKey(MateriaLegislativa)
data_ordem = models.DateField(verbose_name=_(u'Data da Sessão'))
observacao = models.TextField(blank=True, null=True, verbose_name=_(u'Ementa'))
numero_ordem = models.IntegerField(verbose_name=_(u'Nº Ordem'))
resultado = models.TextField(blank=True, null=True)
tipo_votacao = models.IntegerField(verbose_name=_(u'Tipo de votação'), choices=TIPO_VOTACAO_CHOICES)
class Meta:
abstract = True
@ -81,7 +81,7 @@ class ExpedienteMateria(AbstractOrdemDia):
class TipoExpediente(models.Model):
nome = models.CharField(max_length=100, verbose_name=_(u'Tipo')) # nom_expediente
nome = models.CharField(max_length=100, verbose_name=_(u'Tipo'))
class Meta:
verbose_name = _(u'Tipo de Expediente')
@ -92,9 +92,9 @@ class TipoExpediente(models.Model):
class ExpedienteSessao(models.Model): # ExpedienteSessaoPlenaria
sessao_plenaria = models.ForeignKey(SessaoPlenaria) # cod_sessao_plen
tipo = models.ForeignKey(TipoExpediente) # cod_expediente
conteudo = models.TextField(blank=True, null=True, verbose_name=_(u'Conteúdo do expediente')) # txt_expediente
sessao_plenaria = models.ForeignKey(SessaoPlenaria)
tipo = models.ForeignKey(TipoExpediente)
conteudo = models.TextField(blank=True, null=True, verbose_name=_(u'Conteúdo do expediente'))
class Meta:
verbose_name = _(u'Expediente de Sessão Plenaria')
@ -105,9 +105,9 @@ class ExpedienteSessao(models.Model): # ExpedienteSessaoPlenaria
class IntegranteMesa(models.Model): # MesaSessaoPlenaria
sessao_plenaria = models.ForeignKey(SessaoPlenaria) # cod_sessao_plen
cargo = models.ForeignKey(CargoMesa) # cod_cargo
parlamentar = models.ForeignKey(Parlamentar) # cod_parlamentar
sessao_plenaria = models.ForeignKey(SessaoPlenaria)
cargo = models.ForeignKey(CargoMesa)
parlamentar = models.ForeignKey(Parlamentar)
class Meta:
verbose_name = _(u'Participação em Mesa de Sessão Plenaria')
@ -118,10 +118,10 @@ class IntegranteMesa(models.Model): # MesaSessaoPlenaria
class AbstractOrador(models.Model): # Oradores
sessao_plenaria = 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
sessao_plenaria = models.ForeignKey(SessaoPlenaria)
parlamentar = models.ForeignKey(Parlamentar, verbose_name=_(u'Parlamentar'))
numero_ordem = models.IntegerField(verbose_name=_(u'Ordem de pronunciamento'))
url_discurso = models.CharField(max_length=150, blank=True, null=True, verbose_name=_(u'URL Vídeo'))
class Meta:
abstract = True
@ -154,9 +154,9 @@ class OrdemDia(AbstractOrdemDia):
class PresencaOrdemDia(models.Model): # OrdemDiaPresenca
sessao_plenaria = models.ForeignKey(SessaoPlenaria) # cod_sessao_plen
parlamentar = models.ForeignKey(Parlamentar) # cod_parlamentar
data_ordem = models.DateField() # dat_ordem
sessao_plenaria = models.ForeignKey(SessaoPlenaria)
parlamentar = models.ForeignKey(Parlamentar)
data_ordem = models.DateField()
class Meta:
verbose_name = _(u'Presença da Ordem do Dia')
@ -167,7 +167,7 @@ class PresencaOrdemDia(models.Model): # OrdemDiaPresenca
class TipoResultadoVotacao(models.Model):
nome = models.CharField(max_length=100, verbose_name=_(u'Tipo')) # nom_resultado
nome = models.CharField(max_length=100, verbose_name=_(u'Tipo'))
class Meta:
verbose_name = _(u'Tipo de Resultado de Votação')
@ -178,13 +178,13 @@ class TipoResultadoVotacao(models.Model):
class RegistroVotacao(models.Model):
tipo_resultado_votacao = models.ForeignKey(TipoResultadoVotacao, verbose_name=_(u'Resultado da Votação')) # tip_resultado_votacao
materia = models.ForeignKey(MateriaLegislativa) # cod_materia
ordem = models.ForeignKey(OrdemDia) # cod_ordem
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_abstencoes = models.IntegerField(verbose_name=_(u'Abstenções')) # num_abstencao
observacao = models.TextField(blank=True, null=True, verbose_name=_(u'Observações')) # txt_observacao
tipo_resultado_votacao = models.ForeignKey(TipoResultadoVotacao, verbose_name=_(u'Resultado da Votação'))
materia = models.ForeignKey(MateriaLegislativa)
ordem = models.ForeignKey(OrdemDia)
numero_votos_sim = models.IntegerField(verbose_name=_(u'Sim'))
numero_votos_nao = models.IntegerField(verbose_name=_(u'Não'))
numero_abstencoes = models.IntegerField(verbose_name=_(u'Abstenções'))
observacao = models.TextField(blank=True, null=True, verbose_name=_(u'Observações'))
class Meta:
verbose_name = _(u'Votação')
@ -195,10 +195,10 @@ class RegistroVotacao(models.Model):
class VotoParlamentar(models.Model): # RegistroVotacaoParlamentar
votacao = models.ForeignKey(RegistroVotacao) # cod_votacao
parlamentar = models.ForeignKey(Parlamentar) # cod_parlamentar
votacao = models.ForeignKey(RegistroVotacao)
parlamentar = models.ForeignKey(Parlamentar)
# XXX change to restricted choices
voto = models.CharField(max_length=10) # vot_parlamentar
voto = models.CharField(max_length=10)
class Meta:
verbose_name = _(u'Registro de Votação de Parlamentar')
@ -209,9 +209,9 @@ class VotoParlamentar(models.Model): # RegistroVotacaoParlamentar
class SessaoPlenariaPresenca(models.Model):
sessao_plen = models.ForeignKey(SessaoPlenaria) # cod_sessao_plen
parlamentar = models.ForeignKey(Parlamentar) # cod_parlamentar
data_sessao = models.DateField(blank=True, null=True) # dat_sessao
sessao_plen = models.ForeignKey(SessaoPlenaria)
parlamentar = models.ForeignKey(Parlamentar)
data_sessao = models.DateField(blank=True, null=True)
class Meta:
verbose_name = _(u'Presença em Sessão Plenária')

Loading…
Cancel
Save