diff --git a/comissoes/models.py b/comissoes/models.py index 448fae127..ffad8a2e0 100644 --- a/comissoes/models.py +++ b/comissoes/models.py @@ -4,52 +4,52 @@ from parlamentares.models import Parlamentar class TipoComissao(models.Model): - nome_tipo_comissao = models.CharField(max_length=50) - sigla_natureza_comissao = models.CharField(max_length=1) - sigla_tipo_comissao = models.CharField(max_length=10) - descricao_dispositivo_regimental = models.CharField(max_length=50, blank=True, null=True) + nome_tipo_comissao = models.CharField(max_length=50) # nom_tipo_comissao + sigla_natureza_comissao = models.CharField(max_length=1) # sgl_natureza_comissao + sigla_tipo_comissao = models.CharField(max_length=10) # sgl_tipo_comissao + descricao_dispositivo_regimental = models.CharField(max_length=50, blank=True, null=True) # des_dispositivo_regimental class Comissao(models.Model): - tipo_comissao = models.ForeignKey(TipoComissao) - nome_comissao = models.CharField(max_length=60) - sigla_comissao = models.CharField(max_length=10) - data_criacao = models.DateField() - data_extincao = models.DateField(blank=True, null=True) - nome_apelido_temp = models.CharField(max_length=100, blank=True, null=True) - data_instalacao_temp = models.DateField(blank=True, null=True) - data_final_prevista_temp = models.DateField(blank=True, null=True) - data_prorrogada_temp = models.DateField(blank=True, null=True) - data_fim_comissao = models.DateField(blank=True, null=True) - nome_secretario = models.CharField(max_length=30, blank=True, null=True) - numero_tel_reuniao = models.CharField(max_length=15, blank=True, null=True) - endereco_secretaria = models.CharField(max_length=100, blank=True, null=True) - numero_tel_secretaria = models.CharField(max_length=15, blank=True, null=True) - numero_fax_secretaria = models.CharField(max_length=15, blank=True, null=True) - descricao_agenda_reuniao = models.CharField(max_length=100, blank=True, null=True) - local_reuniao = models.CharField(max_length=100, blank=True, null=True) - txt_finalidade = models.TextField(blank=True, null=True) - endereco_email = models.CharField(max_length=100, blank=True, null=True) - unid_deliberativa = models.BooleanField() + tipo_comissao = models.ForeignKey(TipoComissao) # tip_comissao + nome_comissao = models.CharField(max_length=60) # nom_comissao + sigla_comissao = models.CharField(max_length=10) # sgl_comissao + data_criacao = models.DateField() # dat_criacao + data_extincao = models.DateField(blank=True, null=True) # dat_extincao + nome_apelido_temp = models.CharField(max_length=100, blank=True, null=True) # nom_apelido_temp + data_instalacao_temp = models.DateField(blank=True, null=True) # dat_instalacao_temp + data_final_prevista_temp = models.DateField(blank=True, null=True) # dat_final_prevista_temp + data_prorrogada_temp = models.DateField(blank=True, null=True) # dat_prorrogada_temp + data_fim_comissao = models.DateField(blank=True, null=True) # dat_fim_comissao + nome_secretario = models.CharField(max_length=30, blank=True, null=True) # nom_secretario + numero_tel_reuniao = models.CharField(max_length=15, blank=True, null=True) # num_tel_reuniao + endereco_secretaria = models.CharField(max_length=100, blank=True, null=True) # end_secretaria + numero_tel_secretaria = models.CharField(max_length=15, blank=True, null=True) # num_tel_secretaria + numero_fax_secretaria = models.CharField(max_length=15, blank=True, null=True) # num_fax_secretaria + descricao_agenda_reuniao = models.CharField(max_length=100, blank=True, null=True) # des_agenda_reuniao + local_reuniao = models.CharField(max_length=100, blank=True, null=True) # loc_reuniao + txt_finalidade = models.TextField(blank=True, null=True) # txt_finalidade + endereco_email = models.CharField(max_length=100, blank=True, null=True) # end_email + unid_deliberativa = models.BooleanField() # ind_unid_deliberativa class PeriodoCompComissao(models.Model): - data_inicio_periodo = models.DateField() - data_fim_periodo = models.DateField(blank=True, null=True) + data_inicio_periodo = models.DateField() # dat_inicio_periodo + data_fim_periodo = models.DateField(blank=True, null=True) # dat_fim_periodo class CargoComissao(models.Model): - nome = models.CharField(max_length=50) - unico = models.BooleanField() + nome = models.CharField(max_length=50) # des_cargo + unico = models.BooleanField() # ind_unico class ComposicaoComissao(models.Model): - parlamentar = models.ForeignKey(Parlamentar) - comissao = models.ForeignKey(Comissao) - periodo_comp = models.ForeignKey(PeriodoCompComissao) - cargo = models.ForeignKey(CargoComissao) - titular = models.BooleanField() - data_designacao = models.DateField() - data_desligamento = models.DateField(blank=True, null=True) - descricao_motivo_desligamento = models.CharField(max_length=150, blank=True, null=True) - obs_composicao = models.CharField(max_length=150, blank=True, null=True) + parlamentar = models.ForeignKey(Parlamentar) # cod_parlamentar + comissao = models.ForeignKey(Comissao) # cod_comissao + periodo_comp = models.ForeignKey(PeriodoCompComissao) # cod_periodo_comp + cargo = models.ForeignKey(CargoComissao) # cod_cargo + titular = models.BooleanField() # ind_titular + data_designacao = models.DateField() # dat_designacao + data_desligamento = models.DateField(blank=True, null=True) # dat_desligamento + descricao_motivo_desligamento = models.CharField(max_length=150, blank=True, null=True) # des_motivo_desligamento + obs_composicao = models.CharField(max_length=150, blank=True, null=True) # obs_composicao diff --git a/legacy/scripts/bootstrap_field_mappings.py b/legacy/scripts/bootstrap_field_mappings.py index 24030325e..c7b047772 100644 --- a/legacy/scripts/bootstrap_field_mappings.py +++ b/legacy/scripts/bootstrap_field_mappings.py @@ -1,3 +1,5 @@ +from inspect import getsourcelines + from collections import defaultdict from difflib import SequenceMatcher from os.path import dirname @@ -7,31 +9,52 @@ import yaml from migration_base import * -# output to bootstrap field_mappings.yaml -for app in appconfs: - print '\n%s\n%s:' % ('#' * 80, app.name) - for model in app.models.values(): - print '\n %s:' % model.__name__ - current_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'] - for pair in zip(current_fields, legacy_fields): - print ' %s : %s' % pair - - -def similar(a, b): return SequenceMatcher(None, a, b).ratio() - -mappings = yaml.load(open(dirname(__file__) + '/field_mappings.yaml', 'r')) - -different_pairs = defaultdict(list) -for map in mappings.values(): - for name, fields in map.items(): - for a, b in fields.items(): - if a != 'id' and similar(a, b) < .7: - different_pairs[name].append((a, b)) - -if different_pairs: - print '\n\n######## Different Pairs #########' - for name, pairs in different_pairs.items(): - print '#', name - for a, b in pairs: - print '# ', a, b +def print_field_mappings(): + # output to bootstrap field_mappings.yaml + for app in appconfs: + print '\n%s\n%s:' % ('#' * 80, app.name) + for model in app.models.values(): + print '\n %s:' % model.__name__ + 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'] + for pair in zip(new_fields, legacy_fields): + print ' %s : %s' % pair + + def similar(a, b): + return SequenceMatcher(None, a, b).ratio() + + mappings = yaml.load(open(dirname(__file__) + '/field_mappings.yaml', 'r')) + + different_pairs = defaultdict(list) + for map in mappings.values(): + for name, fields in map.items(): + for a, b in fields.items(): + if a != 'id' and similar(a, b) < .7: + different_pairs[name].append((a, b)) + + if different_pairs: + print '\n\n######## Different Pairs #########' + for name, pairs in different_pairs.items(): + print '#', name + for a, b in pairs: + print '# ', a, b + + +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] + + def is_field(line): + return not line.strip().startswith('#') and ' = ' in line + + cols = max(map(len, [line for line in lines if is_field(line)])) + print '\n' + for line in lines: + if not is_field(line): + print line.rstrip() + else: + field = line.split('=')[0].strip() + print '%s # %s' % (line.rstrip().ljust(cols), new_to_old[field]) diff --git a/lexml/models.py b/lexml/models.py index 322a1d5d6..a7b1654c5 100644 --- a/lexml/models.py +++ b/lexml/models.py @@ -2,21 +2,21 @@ from django.db import models class LexmlRegistroProvedor(models.Model): - id_provedor = models.IntegerField() - nome_provedor = models.CharField(max_length=255) - sigla_provedor = models.CharField(max_length=15) - adm_email = models.CharField(max_length=50, blank=True, null=True) - nome_responsavel = models.CharField(max_length=255, blank=True, null=True) - tipo = models.CharField(max_length=50) - id_responsavel = models.IntegerField(blank=True, null=True) - xml_provedor = models.TextField(blank=True, null=True) + id_provedor = models.IntegerField() # id_provedor + nome_provedor = models.CharField(max_length=255) # nom_provedor + sigla_provedor = models.CharField(max_length=15) # sgl_provedor + adm_email = models.CharField(max_length=50, blank=True, null=True) # adm_email + nome_responsavel = models.CharField(max_length=255, blank=True, null=True) # nom_responsavel + tipo = models.CharField(max_length=50) # tipo + id_responsavel = models.IntegerField(blank=True, null=True) # id_responsavel + xml_provedor = models.TextField(blank=True, null=True) # xml_provedor class LexmlRegistroPublicador(models.Model): - id_publicador = models.IntegerField() - nome_publicador = models.CharField(max_length=255) - adm_email = models.CharField(max_length=50, blank=True, null=True) - sigla = models.CharField(max_length=255, blank=True, null=True) - nome_responsavel = models.CharField(max_length=255, blank=True, null=True) - tipo = models.CharField(max_length=50) - id_responsavel = models.IntegerField() + id_publicador = models.IntegerField() # id_publicador + nome_publicador = models.CharField(max_length=255) # nom_publicador + adm_email = models.CharField(max_length=50, blank=True, null=True) # adm_email + sigla = models.CharField(max_length=255, blank=True, null=True) # sigla + nome_responsavel = models.CharField(max_length=255, blank=True, null=True) # nom_responsavel + tipo = models.CharField(max_length=50) # tipo + id_responsavel = models.IntegerField() # id_responsavel diff --git a/materia/models.py b/materia/models.py index f9fb152e8..17bd0357d 100644 --- a/materia/models.py +++ b/materia/models.py @@ -5,46 +5,46 @@ from parlamentares.models import Parlamentar, Partido class TipoMateriaLegislativa(models.Model): - sigla_tipo_materia = models.CharField(max_length=5) - descricao_tipo_materia = models.CharField(max_length=50) - num_automatica = models.BooleanField() - quorum_minimo_votacao = models.IntegerField() + sigla_tipo_materia = models.CharField(max_length=5) # sgl_tipo_materia + descricao_tipo_materia = models.CharField(max_length=50) # des_tipo_materia + num_automatica = models.BooleanField() # ind_num_automatica + quorum_minimo_votacao = models.IntegerField() # quorum_minimo_votacao class RegimeTramitacao(models.Model): - descricao_regime_tramitacao = models.CharField(max_length=50) + descricao_regime_tramitacao = models.CharField(max_length=50) # des_regime_tramitacao class Origem(models.Model): - sigla_origem = models.CharField(max_length=10) - nome_origem = models.CharField(max_length=50) + sigla_origem = models.CharField(max_length=10) # sgl_origem + nome_origem = models.CharField(max_length=50) # nom_origem class MateriaLegislativa(models.Model): - tipo_id_basica = models.ForeignKey(TipoMateriaLegislativa) - numero_protocolo = models.IntegerField(blank=True, null=True) - numero_ident_basica = models.IntegerField() - ano_ident_basica = models.SmallIntegerField() - data_apresentacao = models.DateField(blank=True, null=True) - tipo_apresentacao = models.CharField(max_length=1, blank=True, null=True) - regime_tramitacao = models.ForeignKey(RegimeTramitacao) - data_publicacao = models.DateField(blank=True, null=True) - tipo_origem_externa = models.ForeignKey(TipoMateriaLegislativa, blank=True, null=True, related_name='+') - numero_origem_externa = models.CharField(max_length=5, blank=True, null=True) - ano_origem_externa = models.SmallIntegerField(blank=True, null=True) - data_origem_externa = models.DateField(blank=True, null=True) - local_origem_externa = models.ForeignKey(Origem, blank=True, null=True) - nome_apelido = models.CharField(max_length=50, blank=True, null=True) - numero_dias_prazo = models.IntegerField(blank=True, null=True) - data_fim_prazo = models.DateField(blank=True, null=True) - indicador_tramitacao = models.BooleanField() - polemica = models.NullBooleanField(blank=True) - descricao_objeto = models.CharField(max_length=150, blank=True, null=True) - complementar = models.NullBooleanField(blank=True) - txt_ementa = models.TextField() - txt_indexacao = models.TextField(blank=True, null=True) - txt_observacao = models.TextField(blank=True, null=True) - txt_resultado = models.TextField(blank=True, null=True) + tipo_id_basica = models.ForeignKey(TipoMateriaLegislativa) # tip_id_basica + numero_protocolo = models.IntegerField(blank=True, null=True) # num_protocolo + numero_ident_basica = models.IntegerField() # num_ident_basica + ano_ident_basica = models.SmallIntegerField() # ano_ident_basica + data_apresentacao = models.DateField(blank=True, null=True) # dat_apresentacao + tipo_apresentacao = models.CharField(max_length=1, blank=True, null=True) # tip_apresentacao + regime_tramitacao = models.ForeignKey(RegimeTramitacao) # cod_regime_tramitacao + data_publicacao = models.DateField(blank=True, null=True) # dat_publicacao + tipo_origem_externa = models.ForeignKey(TipoMateriaLegislativa, blank=True, null=True, related_name='+') # tip_origem_externa + numero_origem_externa = models.CharField(max_length=5, blank=True, null=True) # num_origem_externa + ano_origem_externa = models.SmallIntegerField(blank=True, null=True) # ano_origem_externa + data_origem_externa = models.DateField(blank=True, null=True) # dat_origem_externa + local_origem_externa = models.ForeignKey(Origem, blank=True, null=True) # cod_local_origem_externa + nome_apelido = models.CharField(max_length=50, blank=True, null=True) # nom_apelido + numero_dias_prazo = models.IntegerField(blank=True, null=True) # num_dias_prazo + data_fim_prazo = models.DateField(blank=True, null=True) # dat_fim_prazo + indicador_tramitacao = models.BooleanField() # ind_tramitacao + polemica = models.NullBooleanField(blank=True) # ind_polemica + descricao_objeto = models.CharField(max_length=150, blank=True, null=True) # des_objeto + complementar = models.NullBooleanField(blank=True) # ind_complementar + txt_ementa = models.TextField() # txt_ementa + txt_indexacao = models.TextField(blank=True, null=True) # txt_indexacao + txt_observacao = models.TextField(blank=True, null=True) # txt_observacao + txt_resultado = models.TextField(blank=True, null=True) # txt_resultado # XXX novo anexadas = models.ManyToManyField('self', through='Anexada', symmetrical=False, related_name='anexo_de', @@ -52,148 +52,148 @@ class MateriaLegislativa(models.Model): class AcompMateria(models.Model): - materia = models.ForeignKey(MateriaLegislativa) - endereco_email = models.CharField(max_length=100) - txt_hash = models.CharField(max_length=8) + materia = models.ForeignKey(MateriaLegislativa) # cod_materia + endereco_email = models.CharField(max_length=100) # end_email + txt_hash = models.CharField(max_length=8) # txt_hash class Anexada(models.Model): - materia_principal = models.ForeignKey(MateriaLegislativa, related_name='+') - materia_anexada = models.ForeignKey(MateriaLegislativa, related_name='+') - data_anexacao = models.DateField() - data_desanexacao = models.DateField(blank=True, null=True) + materia_principal = models.ForeignKey(MateriaLegislativa, related_name='+') # cod_materia_principal + materia_anexada = models.ForeignKey(MateriaLegislativa, related_name='+') # cod_materia_anexada + data_anexacao = models.DateField() # dat_anexacao + data_desanexacao = models.DateField(blank=True, null=True) # dat_desanexacao class AssuntoMateria(models.Model): - descricao_assunto = models.CharField(max_length=200) - descricao_dispositivo = models.CharField(max_length=50) + descricao_assunto = models.CharField(max_length=200) # des_assunto + descricao_dispositivo = models.CharField(max_length=50) # des_dispositivo class TipoAutor(models.Model): - descricao_tipo_autor = models.CharField(max_length=50) + descricao_tipo_autor = models.CharField(max_length=50) # des_tipo_autor class Autor(models.Model): - 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) - nome_autor = models.CharField(max_length=50, blank=True, null=True) - descricao_cargo = models.CharField(max_length=50, blank=True, null=True) - col_username = models.CharField(max_length=50, blank=True, null=True) + 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) # tip_autor + nome_autor = models.CharField(max_length=50, blank=True, null=True) # nom_autor + descricao_cargo = models.CharField(max_length=50, blank=True, null=True) # des_cargo + col_username = models.CharField(max_length=50, blank=True, null=True) # col_username class Autoria(models.Model): - autor = models.ForeignKey(Autor) - materia = models.ForeignKey(MateriaLegislativa) - primeiro_autor = models.BooleanField() + autor = models.ForeignKey(Autor) # cod_autor + materia = models.ForeignKey(MateriaLegislativa) # cod_materia + primeiro_autor = models.BooleanField() # ind_primeiro_autor class DespachoInicial(models.Model): - materia = models.ForeignKey(MateriaLegislativa) - numero_ordem = models.IntegerField() - comissao = models.ForeignKey(Comissao) + materia = models.ForeignKey(MateriaLegislativa) # cod_materia + numero_ordem = models.IntegerField() # num_ordem + comissao = models.ForeignKey(Comissao) # cod_comissao class TipoDocumento(models.Model): - descricao_tipo_documento = models.CharField(max_length=50) + descricao_tipo_documento = models.CharField(max_length=50) # des_tipo_documento class DocumentoAcessorio(models.Model): - materia = models.ForeignKey(MateriaLegislativa) - tipo = models.ForeignKey(TipoDocumento) - nome_documento = models.CharField(max_length=30) - data_documento = models.DateField(blank=True, null=True) - nome_autor_documento = models.CharField(max_length=50, blank=True, null=True) - txt_ementa = models.TextField(blank=True, null=True) - txt_indexacao = models.TextField(blank=True, null=True) + materia = models.ForeignKey(MateriaLegislativa) # cod_materia + tipo = models.ForeignKey(TipoDocumento) # tip_documento + nome_documento = models.CharField(max_length=30) # nom_documento + data_documento = models.DateField(blank=True, null=True) # dat_documento + nome_autor_documento = models.CharField(max_length=50, blank=True, null=True) # nom_autor_documento + txt_ementa = models.TextField(blank=True, null=True) # txt_ementa + txt_indexacao = models.TextField(blank=True, null=True) # txt_indexacao class MateriaAssunto(models.Model): - assunto = models.ForeignKey(AssuntoMateria) - materia = models.ForeignKey(MateriaLegislativa) + assunto = models.ForeignKey(AssuntoMateria) # cod_assunto + materia = models.ForeignKey(MateriaLegislativa) # cod_materia class Numeracao(models.Model): - materia = models.ForeignKey(MateriaLegislativa) - numero_ordem = models.IntegerField() - tipo_materia = models.ForeignKey(TipoMateriaLegislativa) - numero_materia = models.CharField(max_length=5) - ano_materia = models.SmallIntegerField() - data_materia = models.DateField(blank=True, null=True) + materia = models.ForeignKey(MateriaLegislativa) # cod_materia + numero_ordem = models.IntegerField() # num_ordem + tipo_materia = models.ForeignKey(TipoMateriaLegislativa) # tip_materia + numero_materia = models.CharField(max_length=5) # num_materia + ano_materia = models.SmallIntegerField() # ano_materia + data_materia = models.DateField(blank=True, null=True) # dat_materia class Orgao(models.Model): - nome_orgao = models.CharField(max_length=60) - sigla_orgao = models.CharField(max_length=10) - unid_deliberativa = models.BooleanField() - endereco_orgao = models.CharField(max_length=100, blank=True, null=True) - numero_tel_orgao = models.CharField(max_length=50, blank=True, null=True) + nome_orgao = models.CharField(max_length=60) # nom_orgao + sigla_orgao = models.CharField(max_length=10) # sgl_orgao + unid_deliberativa = models.BooleanField() # ind_unid_deliberativa + endereco_orgao = models.CharField(max_length=100, blank=True, null=True) # end_orgao + numero_tel_orgao = models.CharField(max_length=50, blank=True, null=True) # num_tel_orgao class TipoFimRelatoria(models.Model): - descricao_fim_relatoria = models.CharField(max_length=50) + descricao_fim_relatoria = models.CharField(max_length=50) # des_fim_relatoria class Relatoria(models.Model): - materia = models.ForeignKey(MateriaLegislativa) - parlamentar = models.ForeignKey(Parlamentar) - tipo_fim_relatoria = models.ForeignKey(TipoFimRelatoria, blank=True, null=True) - comissao = models.ForeignKey(Comissao, blank=True, null=True) - data_desig_relator = models.DateField() - data_destit_relator = models.DateField(blank=True, null=True) + materia = models.ForeignKey(MateriaLegislativa) # cod_materia + parlamentar = models.ForeignKey(Parlamentar) # cod_parlamentar + tipo_fim_relatoria = models.ForeignKey(TipoFimRelatoria, blank=True, null=True) # tip_fim_relatoria + comissao = models.ForeignKey(Comissao, blank=True, null=True) # cod_comissao + data_desig_relator = models.DateField() # dat_desig_relator + data_destit_relator = models.DateField(blank=True, null=True) # dat_destit_relator class Parecer(models.Model): - 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) - txt_parecer = models.TextField(blank=True, null=True) + 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) # tip_apresentacao + txt_parecer = models.TextField(blank=True, null=True) # txt_parecer class TipoProposicao(models.Model): - descricao_tipo_proposicao = models.CharField(max_length=50) - mat_ou_doc = models.BooleanField() - tipo_mat_ou_doc = models.IntegerField() - nome_modelo = models.CharField(max_length=50) + descricao_tipo_proposicao = models.CharField(max_length=50) # des_tipo_proposicao + mat_ou_doc = models.BooleanField() # ind_mat_ou_doc + tipo_mat_ou_doc = models.IntegerField() # tip_mat_ou_doc + nome_modelo = models.CharField(max_length=50) # nom_modelo class Proposicao(models.Model): - materia = models.ForeignKey(MateriaLegislativa, blank=True, null=True) - autor = models.ForeignKey(Autor) - tipo = models.ForeignKey(TipoProposicao) - data_envio = models.DateTimeField() - data_recebimento = models.DateTimeField(blank=True, null=True) - txt_descricao = models.CharField(max_length=100) - cod_mat_ou_doc = models.IntegerField(blank=True, null=True) - data_devolucao = models.DateTimeField(blank=True, null=True) - txt_justif_devolucao = models.CharField(max_length=200, blank=True, null=True) - numero_proposicao = models.IntegerField(blank=True, null=True) + materia = models.ForeignKey(MateriaLegislativa, blank=True, null=True) # cod_materia + autor = models.ForeignKey(Autor) # cod_autor + tipo = models.ForeignKey(TipoProposicao) # tip_proposicao + data_envio = models.DateTimeField() # dat_envio + data_recebimento = models.DateTimeField(blank=True, null=True) # dat_recebimento + txt_descricao = models.CharField(max_length=100) # txt_descricao + cod_mat_ou_doc = models.IntegerField(blank=True, null=True) # cod_mat_ou_doc + data_devolucao = models.DateTimeField(blank=True, null=True) # dat_devolucao + txt_justif_devolucao = models.CharField(max_length=200, blank=True, null=True) # txt_justif_devolucao + numero_proposicao = models.IntegerField(blank=True, null=True) # num_proposicao class StatusTramitacao(models.Model): - sigla_status = models.CharField(max_length=10) - descricao_status = models.CharField(max_length=60) - fim_tramitacao = models.BooleanField() - retorno_tramitacao = models.BooleanField() + sigla_status = models.CharField(max_length=10) # sgl_status + descricao_status = models.CharField(max_length=60) # des_status + fim_tramitacao = models.BooleanField() # ind_fim_tramitacao + retorno_tramitacao = models.BooleanField() # ind_retorno_tramitacao class UnidadeTramitacao(models.Model): - comissao = models.ForeignKey(Comissao, blank=True, null=True) - orgao = models.ForeignKey(Orgao, blank=True, null=True) - parlamentar = models.ForeignKey(Parlamentar, blank=True, null=True) + comissao = models.ForeignKey(Comissao, blank=True, null=True) # cod_comissao + orgao = models.ForeignKey(Orgao, blank=True, null=True) # cod_orgao + parlamentar = models.ForeignKey(Parlamentar, blank=True, null=True) # cod_parlamentar class Tramitacao(models.Model): - status = models.ForeignKey(StatusTramitacao, blank=True, null=True) - materia = models.ForeignKey(MateriaLegislativa) - data_tramitacao = models.DateField(blank=True, null=True) - unid_tram_local = models.ForeignKey(UnidadeTramitacao, blank=True, null=True, related_name='+') - data_encaminha = models.DateField(blank=True, null=True) - unid_tram_dest = models.ForeignKey(UnidadeTramitacao, blank=True, null=True, related_name='+') - ult_tramitacao = models.BooleanField() - urgencia = models.BooleanField() - sigla_turno = models.CharField(max_length=1, blank=True, null=True) - txt_tramitacao = models.TextField(blank=True, null=True) - data_fim_prazo = models.DateField(blank=True, null=True) + status = models.ForeignKey(StatusTramitacao, blank=True, null=True) # cod_status + materia = models.ForeignKey(MateriaLegislativa) # cod_materia + data_tramitacao = models.DateField(blank=True, null=True) # dat_tramitacao + unid_tram_local = models.ForeignKey(UnidadeTramitacao, blank=True, null=True, related_name='+') # cod_unid_tram_local + data_encaminha = models.DateField(blank=True, null=True) # dat_encaminha + unid_tram_dest = models.ForeignKey(UnidadeTramitacao, blank=True, null=True, related_name='+') # cod_unid_tram_dest + ult_tramitacao = models.BooleanField() # ind_ult_tramitacao + urgencia = models.BooleanField() # ind_urgencia + sigla_turno = models.CharField(max_length=1, blank=True, null=True) # sgl_turno + txt_tramitacao = models.TextField(blank=True, null=True) # txt_tramitacao + data_fim_prazo = models.DateField(blank=True, null=True) # dat_fim_prazo diff --git a/norma/models.py b/norma/models.py index 9c2b66fd1..461296391 100644 --- a/norma/models.py +++ b/norma/models.py @@ -4,56 +4,55 @@ from materia.models import MateriaLegislativa class AssuntoNorma(models.Model): - descricao_assunto = models.CharField(max_length=50) - descricao_estendida = models.CharField(max_length=250, blank=True, null=True) + descricao_assunto = models.CharField(max_length=50) # des_assunto + descricao_estendida = models.CharField(max_length=250, blank=True, null=True) # des_estendida class TipoNormaJuridica(models.Model): - voc_lexml = models.CharField(max_length=50, blank=True, null=True) - sigla_tipo_norma = models.CharField(max_length=3) - descricao_tipo_norma = models.CharField(max_length=50) + voc_lexml = models.CharField(max_length=50, blank=True, null=True) # voc_lexml + sigla_tipo_norma = models.CharField(max_length=3) # sgl_tipo_norma + descricao_tipo_norma = models.CharField(max_length=50) # des_tipo_norma class NormaJuridica(models.Model): - tipo = models.ForeignKey(TipoNormaJuridica) - materia = models.ForeignKey(MateriaLegislativa, blank=True, null=True) - numero_norma = models.IntegerField() - ano_norma = models.SmallIntegerField() - tipo_esfera_federacao = models.CharField(max_length=1) - data_norma = models.DateField(blank=True, null=True) - data_publicacao = models.DateField(blank=True, null=True) - descricao_veiculo_publicacao = models.CharField(max_length=30, blank=True, null=True) - numero_pag_inicio_publ = models.IntegerField(blank=True, null=True) - numero_pag_fim_publ = models.IntegerField(blank=True, null=True) - txt_ementa = models.TextField() - txt_indexacao = models.TextField(blank=True, null=True) - txt_observacao = models.TextField(blank=True, null=True) - complemento = models.NullBooleanField(blank=True) - assunto = models.ForeignKey(AssuntoNorma) # XXX was a CharField (attention on migrate) - data_vigencia = models.DateField(blank=True, null=True) - timestamp = models.DateTimeField() + tipo = models.ForeignKey(TipoNormaJuridica) # tip_norma + materia = models.ForeignKey(MateriaLegislativa, blank=True, null=True) # cod_materia + numero_norma = models.IntegerField() # num_norma + ano_norma = models.SmallIntegerField() # ano_norma + tipo_esfera_federacao = models.CharField(max_length=1) # tip_esfera_federacao + data_norma = models.DateField(blank=True, null=True) # dat_norma + data_publicacao = models.DateField(blank=True, null=True) # dat_publicacao + descricao_veiculo_publicacao = models.CharField(max_length=30, blank=True, null=True) # des_veiculo_publicacao + numero_pag_inicio_publ = models.IntegerField(blank=True, null=True) # num_pag_inicio_publ + numero_pag_fim_publ = models.IntegerField(blank=True, null=True) # num_pag_fim_publ + txt_ementa = models.TextField() # txt_ementa + txt_indexacao = models.TextField(blank=True, null=True) # txt_indexacao + txt_observacao = models.TextField(blank=True, null=True) # txt_observacao + complemento = models.NullBooleanField(blank=True) # 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 # XXX maybe should be in materia app, but would cause a circular import class LegislacaoCitada(models.Model): - materia = models.ForeignKey(MateriaLegislativa) - norma = models.ForeignKey(NormaJuridica) - descricao_disposicoes = models.CharField(max_length=15, blank=True, null=True) - descricao_parte = models.CharField(max_length=8, blank=True, null=True) - descricao_livro = models.CharField(max_length=7, blank=True, null=True) - descricao_titulo = models.CharField(max_length=7, blank=True, null=True) - descricao_capitulo = models.CharField(max_length=7, blank=True, null=True) - descricao_secao = models.CharField(max_length=7, blank=True, null=True) - descricao_subsecao = models.CharField(max_length=7, blank=True, null=True) - descricao_artigo = models.CharField(max_length=4, blank=True, null=True) - descricao_paragrafo = models.CharField(max_length=3, blank=True, null=True) - descricao_inciso = models.CharField(max_length=10, blank=True, null=True) - descricao_alinea = models.CharField(max_length=3, blank=True, null=True) - descricao_item = models.CharField(max_length=3, blank=True, null=True) + materia = models.ForeignKey(MateriaLegislativa) # cod_materia + norma = models.ForeignKey(NormaJuridica) # cod_norma + descricao_disposicoes = models.CharField(max_length=15, blank=True, null=True) # des_disposicoes + descricao_parte = models.CharField(max_length=8, blank=True, null=True) # des_parte + descricao_livro = models.CharField(max_length=7, blank=True, null=True) # des_livro + descricao_titulo = models.CharField(max_length=7, blank=True, null=True) # des_titulo + descricao_capitulo = models.CharField(max_length=7, blank=True, null=True) # des_capitulo + descricao_secao = models.CharField(max_length=7, blank=True, null=True) # des_secao + descricao_subsecao = models.CharField(max_length=7, blank=True, null=True) # des_subsecao + descricao_artigo = models.CharField(max_length=4, blank=True, null=True) # des_artigo + descricao_paragrafo = models.CharField(max_length=3, blank=True, null=True) # des_paragrafo + descricao_inciso = models.CharField(max_length=10, blank=True, null=True) # des_inciso + descricao_alinea = models.CharField(max_length=3, blank=True, null=True) # des_alinea + descricao_item = models.CharField(max_length=3, blank=True, null=True) # des_item class VinculoNormaJuridica(models.Model): - 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) - excluido = models.BooleanField() + 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) # tip_vinculo diff --git a/parlamentares/models.py b/parlamentares/models.py index 37714b57c..2ef05d5e1 100644 --- a/parlamentares/models.py +++ b/parlamentares/models.py @@ -2,130 +2,130 @@ from django.db import models class Legislatura(models.Model): - data_inicio = models.DateField() - data_fim = models.DateField() - data_eleicao = models.DateField() + data_inicio = models.DateField() # dat_inicio + data_fim = models.DateField() # dat_fim + data_eleicao = models.DateField() # dat_eleicao class SessaoLegislativa(models.Model): - legislatura = models.ForeignKey(Legislatura) - numero = models.IntegerField() - tipo = models.CharField(max_length=1) - data_inicio = models.DateField() - data_fim = models.DateField() - data_inicio_intervalo = models.DateField(blank=True, null=True) - data_fim_intervalo = models.DateField(blank=True, null=True) + legislatura = models.ForeignKey(Legislatura) # num_legislatura + numero = models.IntegerField() # num_sessao_leg + tipo = models.CharField(max_length=1) # tip_sessao_leg + data_inicio = models.DateField() # dat_inicio + data_fim = models.DateField() # dat_fim + data_inicio_intervalo = models.DateField(blank=True, null=True) # dat_inicio_intervalo + data_fim_intervalo = models.DateField(blank=True, null=True) # dat_fim_intervalo class Coligacao(models.Model): - legislatura = models.ForeignKey(Legislatura) - nome_coligacao = models.CharField(max_length=50) - numero_votos_coligacao = models.IntegerField(blank=True, null=True) + legislatura = models.ForeignKey(Legislatura) # num_legislatura + nome_coligacao = models.CharField(max_length=50) # nom_coligacao + numero_votos_coligacao = models.IntegerField(blank=True, null=True) # num_votos_coligacao class Partido(models.Model): - sigla_partido = models.CharField(max_length=9) - nome_partido = models.CharField(max_length=50) - data_criacao = models.DateField(blank=True, null=True) - data_extincao = models.DateField(blank=True, null=True) + sigla_partido = models.CharField(max_length=9) # sgl_partido + nome_partido = models.CharField(max_length=50) # nom_partido + data_criacao = models.DateField(blank=True, null=True) # dat_criacao + data_extincao = models.DateField(blank=True, null=True) # dat_extincao class ComposicaoColigacao(models.Model): - partido = models.ForeignKey(Partido) - coligacao = models.ForeignKey(Coligacao) + partido = models.ForeignKey(Partido) # cod_partido + coligacao = models.ForeignKey(Coligacao) # cod_coligacao class Localidade(models.Model): - nome_localidade = models.CharField(max_length=50, blank=True, null=True) - nome_localidade_pesq = models.CharField(max_length=50, blank=True, null=True) - tipo_localidade = models.CharField(max_length=1, blank=True, null=True) - sigla_uf = models.CharField(max_length=2, blank=True, null=True) - sigla_regiao = models.CharField(max_length=2, blank=True, null=True) + nome_localidade = models.CharField(max_length=50, blank=True, null=True) # nom_localidade + nome_localidade_pesq = models.CharField(max_length=50, blank=True, null=True) # nom_localidade_pesq + tipo_localidade = models.CharField(max_length=1, blank=True, null=True) # tip_localidade + sigla_uf = models.CharField(max_length=2, blank=True, null=True) # sgl_uf + sigla_regiao = models.CharField(max_length=2, blank=True, null=True) # sgl_regiao class NivelInstrucao(models.Model): - nivel_instrucao = models.CharField(max_length=50) + nivel_instrucao = models.CharField(max_length=50) # des_nivel_instrucao class SituacaoMilitar(models.Model): - descricao_tipo_situacao = models.CharField(max_length=50) + descricao_tipo_situacao = models.CharField(max_length=50) # des_tipo_situacao class Parlamentar(models.Model): - nivel_instrucao = models.ForeignKey(NivelInstrucao, blank=True, null=True) - situacao_militar = models.ForeignKey(SituacaoMilitar, blank=True, null=True) - nome_completo = models.CharField(max_length=50) - nome_parlamentar = models.CharField(max_length=50, blank=True, null=True) - sexo = models.CharField(max_length=1) - data_nascimento = models.DateField(blank=True, null=True) - numero_cpf = models.CharField(max_length=14, blank=True, null=True) - numero_rg = models.CharField(max_length=15, blank=True, null=True) - numero_tit_eleitor = models.CharField(max_length=15, blank=True, null=True) - cod_casa = models.IntegerField() - numero_gab_parlamentar = models.CharField(max_length=10, blank=True, null=True) - numero_tel_parlamentar = models.CharField(max_length=50, blank=True, null=True) - numero_fax_parlamentar = models.CharField(max_length=50, blank=True, null=True) - endereco_residencial = models.CharField(max_length=100, blank=True, null=True) - localidade_resid = models.ForeignKey(Localidade, blank=True, null=True) - numero_cep_resid = models.CharField(max_length=9, blank=True, null=True) - numero_tel_resid = models.CharField(max_length=50, blank=True, null=True) - numero_fax_resid = models.CharField(max_length=50, blank=True, null=True) - endereco_web = models.CharField(max_length=100, blank=True, null=True) - nome_profissao = models.CharField(max_length=50, blank=True, null=True) - endereco_email = models.CharField(max_length=100, blank=True, null=True) - descricao_local_atuacao = models.CharField(max_length=100, blank=True, null=True) - ativo = models.BooleanField() - txt_biografia = models.TextField(blank=True, null=True) - unid_deliberativa = models.BooleanField() + nivel_instrucao = models.ForeignKey(NivelInstrucao, blank=True, null=True) # cod_nivel_instrucao + situacao_militar = models.ForeignKey(SituacaoMilitar, blank=True, null=True) # tip_situacao_militar + nome_completo = models.CharField(max_length=50) # nom_completo + nome_parlamentar = models.CharField(max_length=50, blank=True, null=True) # nom_parlamentar + sexo = models.CharField(max_length=1) # sex_parlamentar + data_nascimento = models.DateField(blank=True, null=True) # dat_nascimento + numero_cpf = models.CharField(max_length=14, blank=True, null=True) # num_cpf + numero_rg = models.CharField(max_length=15, blank=True, null=True) # num_rg + numero_tit_eleitor = models.CharField(max_length=15, blank=True, null=True) # num_tit_eleitor + cod_casa = models.IntegerField() # cod_casa + numero_gab_parlamentar = models.CharField(max_length=10, blank=True, null=True) # num_gab_parlamentar + numero_tel_parlamentar = models.CharField(max_length=50, blank=True, null=True) # num_tel_parlamentar + numero_fax_parlamentar = models.CharField(max_length=50, blank=True, null=True) # num_fax_parlamentar + endereco_residencial = models.CharField(max_length=100, blank=True, null=True) # end_residencial + localidade_resid = models.ForeignKey(Localidade, blank=True, null=True) # cod_localidade_resid + numero_cep_resid = models.CharField(max_length=9, blank=True, null=True) # num_cep_resid + numero_tel_resid = models.CharField(max_length=50, blank=True, null=True) # num_tel_resid + numero_fax_resid = models.CharField(max_length=50, blank=True, null=True) # num_fax_resid + endereco_web = models.CharField(max_length=100, blank=True, null=True) # end_web + nome_profissao = models.CharField(max_length=50, blank=True, null=True) # nom_profissao + endereco_email = models.CharField(max_length=100, blank=True, null=True) # end_email + descricao_local_atuacao = models.CharField(max_length=100, blank=True, null=True) # des_local_atuacao + ativo = models.BooleanField() # ind_ativo + txt_biografia = models.TextField(blank=True, null=True) # txt_biografia + unid_deliberativa = models.BooleanField() # ind_unid_deliberativa class TipoDependente(models.Model): - descricao_tipo_dependente = models.CharField(max_length=50) + descricao_tipo_dependente = models.CharField(max_length=50) # des_tipo_dependente class Dependente(models.Model): - tipo_dependente = models.ForeignKey(TipoDependente) - parlamentar = models.ForeignKey(Parlamentar) - nome_dependente = models.CharField(max_length=50) - sexo = models.CharField(max_length=1) - data_nascimento = models.DateField(blank=True, null=True) - numero_cpf = models.CharField(max_length=14, blank=True, null=True) - numero_rg = models.CharField(max_length=15, blank=True, null=True) - numero_tit_eleitor = models.CharField(max_length=15, blank=True, null=True) + tipo_dependente = models.ForeignKey(TipoDependente) # tip_dependente + parlamentar = models.ForeignKey(Parlamentar) # cod_parlamentar + nome_dependente = models.CharField(max_length=50) # nom_dependente + sexo = models.CharField(max_length=1) # sex_dependente + data_nascimento = models.DateField(blank=True, null=True) # dat_nascimento + numero_cpf = models.CharField(max_length=14, blank=True, null=True) # num_cpf + numero_rg = models.CharField(max_length=15, blank=True, null=True) # num_rg + numero_tit_eleitor = models.CharField(max_length=15, blank=True, null=True) # num_tit_eleitor class Filiacao(models.Model): - data_filiacao = models.DateField() - parlamentar = models.ForeignKey(Parlamentar) - partido = models.ForeignKey(Partido) - data_desfiliacao = models.DateField(blank=True, null=True) + data_filiacao = models.DateField() # dat_filiacao + parlamentar = models.ForeignKey(Parlamentar) # cod_parlamentar + partido = models.ForeignKey(Partido) # cod_partido + data_desfiliacao = models.DateField(blank=True, null=True) # dat_desfiliacao class TipoAfastamento(models.Model): - descricao_afastamento = models.CharField(max_length=50) - afastamento = models.BooleanField() - fim_mandato = models.BooleanField() - descricao_dispositivo = models.CharField(max_length=50, blank=True, null=True) + descricao_afastamento = models.CharField(max_length=50) # des_afastamento + afastamento = models.BooleanField() # ind_afastamento + fim_mandato = models.BooleanField() # ind_fim_mandato + descricao_dispositivo = models.CharField(max_length=50, blank=True, null=True) # des_dispositivo class Mandato(models.Model): - parlamentar = models.ForeignKey(Parlamentar) - tipo_afastamento = models.ForeignKey(TipoAfastamento, blank=True, null=True) - legislatura = models.ForeignKey(Legislatura) - coligacao = models.ForeignKey(Coligacao, blank=True, null=True) - tipo_causa_fim_mandato = models.IntegerField(blank=True, null=True) - data_fim_mandato = models.DateField(blank=True, null=True) - numero_votos_recebidos = models.IntegerField(blank=True, null=True) - data_expedicao_diploma = models.DateField(blank=True, null=True) - txt_observacao = models.TextField(blank=True, null=True) + parlamentar = models.ForeignKey(Parlamentar) # cod_parlamentar + tipo_afastamento = models.ForeignKey(TipoAfastamento, blank=True, null=True) # tip_afastamento + legislatura = models.ForeignKey(Legislatura) # num_legislatura + coligacao = models.ForeignKey(Coligacao, blank=True, null=True) # cod_coligacao + tipo_causa_fim_mandato = models.IntegerField(blank=True, null=True) # tip_causa_fim_mandato + data_fim_mandato = models.DateField(blank=True, null=True) # dat_fim_mandato + numero_votos_recebidos = models.IntegerField(blank=True, null=True) # num_votos_recebidos + data_expedicao_diploma = models.DateField(blank=True, null=True) # dat_expedicao_diploma + txt_observacao = models.TextField(blank=True, null=True) # txt_observacao class CargoMesa(models.Model): - nome = models.CharField(max_length=50) - unico = models.BooleanField() + nome = models.CharField(max_length=50) # des_cargo + unico = models.BooleanField() # ind_unico class ComposicaoMesa(models.Model): - parlamentar = models.ForeignKey(Parlamentar) - sessao_legislativa = models.ForeignKey(SessaoLegislativa) - cargo = models.ForeignKey(CargoMesa) + parlamentar = models.ForeignKey(Parlamentar) # cod_parlamentar + sessao_legislativa = models.ForeignKey(SessaoLegislativa) # cod_sessao_leg + cargo = models.ForeignKey(CargoMesa) # cod_cargo diff --git a/protocoloadm/models.py b/protocoloadm/models.py index be82f9ca7..f54dcee87 100644 --- a/protocoloadm/models.py +++ b/protocoloadm/models.py @@ -4,72 +4,72 @@ from materia.models import Autor, TipoMateriaLegislativa class TipoDocumentoAdministrativo(models.Model): - sigla_tipo_documento = models.CharField(max_length=5) - descricao_tipo_documento = models.CharField(max_length=50) + sigla_tipo_documento = models.CharField(max_length=5) # sgl_tipo_documento + descricao_tipo_documento = models.CharField(max_length=50) # des_tipo_documento class DocumentoAdministrativo(models.Model): - tipo = models.ForeignKey(TipoDocumentoAdministrativo) - numero_documento = models.IntegerField() - ano_documento = models.SmallIntegerField() - data_documento = models.DateField() - numero_protocolo = models.IntegerField(blank=True, null=True) - txt_interessado = models.CharField(max_length=50, blank=True, null=True) - autor = models.ForeignKey(Autor, blank=True, null=True) - numero_dias_prazo = models.IntegerField(blank=True, null=True) - data_fim_prazo = models.DateField(blank=True, null=True) - tramitacao = models.BooleanField() - txt_assunto = models.TextField() - txt_observacao = models.TextField(blank=True, null=True) + tipo = models.ForeignKey(TipoDocumentoAdministrativo) # tip_documento + numero_documento = models.IntegerField() # num_documento + ano_documento = models.SmallIntegerField() # ano_documento + data_documento = models.DateField() # dat_documento + numero_protocolo = models.IntegerField(blank=True, null=True) # num_protocolo + txt_interessado = models.CharField(max_length=50, blank=True, null=True) # txt_interessado + autor = models.ForeignKey(Autor, blank=True, null=True) # cod_autor + numero_dias_prazo = models.IntegerField(blank=True, null=True) # num_dias_prazo + data_fim_prazo = models.DateField(blank=True, null=True) # dat_fim_prazo + tramitacao = models.BooleanField() # ind_tramitacao + txt_assunto = models.TextField() # txt_assunto + txt_observacao = models.TextField(blank=True, null=True) # txt_observacao class DocumentoAcessorioAdministrativo(models.Model): - documento = models.ForeignKey(DocumentoAdministrativo) - tipo = models.ForeignKey(TipoDocumentoAdministrativo) - nome_documento = models.CharField(max_length=30) - nome_arquivo = models.CharField(max_length=100) - data_documento = models.DateField(blank=True, null=True) - nome_autor_documento = models.CharField(max_length=50, blank=True, null=True) - txt_assunto = models.TextField(blank=True, null=True) - txt_indexacao = models.TextField(blank=True, null=True) + documento = models.ForeignKey(DocumentoAdministrativo) # cod_documento + tipo = models.ForeignKey(TipoDocumentoAdministrativo) # tip_documento + nome_documento = models.CharField(max_length=30) # nom_documento + nome_arquivo = models.CharField(max_length=100) # nom_arquivo + data_documento = models.DateField(blank=True, null=True) # dat_documento + nome_autor_documento = models.CharField(max_length=50, blank=True, null=True) # nom_autor_documento + txt_assunto = models.TextField(blank=True, null=True) # txt_assunto + txt_indexacao = models.TextField(blank=True, null=True) # txt_indexacao class Protocolo(models.Model): - numero_protocolo = models.IntegerField(blank=True, null=True) - ano_protocolo = models.SmallIntegerField() - data_protocolo = models.DateField() - hora_protocolo = models.TimeField() - data_timestamp = models.DateTimeField() - tipo_protocolo = models.IntegerField() - tipo_processo = models.IntegerField() - txt_interessado = models.CharField(max_length=60, blank=True, null=True) - autor = models.ForeignKey(Autor, blank=True, null=True) - txt_assunto_ementa = models.TextField(blank=True, null=True) - tipo_documento = models.ForeignKey(TipoDocumentoAdministrativo, blank=True, null=True) - tipo_materia = models.ForeignKey(TipoMateriaLegislativa, blank=True, null=True) - numero_paginas = models.IntegerField(blank=True, null=True) - txt_observacao = models.TextField(blank=True, null=True) - anulado = models.BooleanField() - txt_user_anulacao = models.CharField(max_length=20, blank=True, null=True) - txt_ip_anulacao = models.CharField(max_length=15, blank=True, null=True) - txt_just_anulacao = models.CharField(max_length=60, blank=True, null=True) - timestamp_anulacao = models.DateTimeField(blank=True, null=True) + numero_protocolo = models.IntegerField(blank=True, null=True) # num_protocolo + ano_protocolo = models.SmallIntegerField() # ano_protocolo + data_protocolo = models.DateField() # dat_protocolo + hora_protocolo = models.TimeField() # hor_protocolo + data_timestamp = models.DateTimeField() # dat_timestamp + tipo_protocolo = models.IntegerField() # tip_protocolo + tipo_processo = models.IntegerField() # tip_processo + txt_interessado = models.CharField(max_length=60, blank=True, null=True) # txt_interessado + autor = models.ForeignKey(Autor, blank=True, null=True) # cod_autor + txt_assunto_ementa = models.TextField(blank=True, null=True) # txt_assunto_ementa + tipo_documento = models.ForeignKey(TipoDocumentoAdministrativo, blank=True, null=True) # tip_documento + tipo_materia = models.ForeignKey(TipoMateriaLegislativa, blank=True, null=True) # tip_materia + numero_paginas = models.IntegerField(blank=True, null=True) # num_paginas + txt_observacao = models.TextField(blank=True, null=True) # txt_observacao + anulado = models.BooleanField() # ind_anulado + txt_user_anulacao = models.CharField(max_length=20, blank=True, null=True) # txt_user_anulacao + txt_ip_anulacao = models.CharField(max_length=15, blank=True, null=True) # txt_ip_anulacao + txt_just_anulacao = models.CharField(max_length=60, blank=True, null=True) # txt_just_anulacao + timestamp_anulacao = models.DateTimeField(blank=True, null=True) # timestamp_anulacao class StatusTramitacaoAdministrativo(models.Model): - sigla_status = models.CharField(max_length=10) - descricao_status = models.CharField(max_length=60) - fim_tramitacao = models.BooleanField() - retorno_tramitacao = models.BooleanField() + sigla_status = models.CharField(max_length=10) # sgl_status + descricao_status = models.CharField(max_length=60) # des_status + fim_tramitacao = models.BooleanField() # ind_fim_tramitacao + retorno_tramitacao = models.BooleanField() # ind_retorno_tramitacao class TramitacaoAdministrativo(models.Model): - documento = models.ForeignKey(DocumentoAdministrativo) - data_tramitacao = models.DateField(blank=True, null=True) - cod_unid_tram_local = models.IntegerField(blank=True, null=True) - data_encaminha = models.DateField(blank=True, null=True) - cod_unid_tram_dest = models.IntegerField(blank=True, null=True) - status = models.ForeignKey(StatusTramitacaoAdministrativo, blank=True, null=True) - ult_tramitacao = models.BooleanField() - txt_tramitacao = models.TextField(blank=True, null=True) - data_fim_prazo = models.DateField(blank=True, null=True) + documento = models.ForeignKey(DocumentoAdministrativo) # cod_documento + data_tramitacao = models.DateField(blank=True, null=True) # dat_tramitacao + cod_unid_tram_local = models.IntegerField(blank=True, null=True) # cod_unid_tram_local + data_encaminha = models.DateField(blank=True, null=True) # dat_encaminha + cod_unid_tram_dest = models.IntegerField(blank=True, null=True) # cod_unid_tram_dest + status = models.ForeignKey(StatusTramitacaoAdministrativo, blank=True, null=True) # cod_status + ult_tramitacao = models.BooleanField() # ind_ult_tramitacao + txt_tramitacao = models.TextField(blank=True, null=True) # txt_tramitacao + data_fim_prazo = models.DateField(blank=True, null=True) # dat_fim_prazo diff --git a/sessao/models.py b/sessao/models.py index dd4e2ca71..b8b665be4 100644 --- a/sessao/models.py +++ b/sessao/models.py @@ -5,106 +5,107 @@ from parlamentares.models import CargoMesa, Parlamentar, SessaoLegislativa, Legi class TipoSessaoPlenaria(models.Model): - nome_sessao = models.CharField(max_length=30) - numero_minimo = models.IntegerField() + nome_sessao = models.CharField(max_length=30) # nom_sessao + numero_minimo = models.IntegerField() # num_minimo class SessaoPlenaria(models.Model): - cod_andamento_sessao = models.IntegerField(blank=True, null=True) # TODO lixo??? parece que era FK + # TODO lixo??? parece que era FK. Seria: # andamento_sessao = models.ForeignKey(AndamentoSessao, blank=True, null=True) - tipo = models.ForeignKey(TipoSessaoPlenaria) - sessao_leg = models.ForeignKey(SessaoLegislativa) - legislatura = models.ForeignKey(Legislatura) - tipo_expediente = models.CharField(max_length=10) - data_inicio_sessao = models.DateField() - dia_sessao = models.CharField(max_length=15) - hr_inicio_sessao = models.CharField(max_length=5) - hr_fim_sessao = models.CharField(max_length=5, blank=True, null=True) - numero_sessao_plen = models.IntegerField() - data_fim_sessao = models.DateField(blank=True, null=True) - url_audio = models.CharField(max_length=150, blank=True, null=True) - url_video = models.CharField(max_length=150, blank=True, null=True) + cod_andamento_sessao = models.IntegerField(blank=True, null=True) # cod_andamento_sessao + + tipo = models.ForeignKey(TipoSessaoPlenaria) # tip_sessao + sessao_leg = models.ForeignKey(SessaoLegislativa) # cod_sessao_leg + legislatura = models.ForeignKey(Legislatura) # num_legislatura + tipo_expediente = models.CharField(max_length=10) # tip_expediente + data_inicio_sessao = models.DateField() # dat_inicio_sessao + dia_sessao = models.CharField(max_length=15) # dia_sessao + hr_inicio_sessao = models.CharField(max_length=5) # hr_inicio_sessao + hr_fim_sessao = models.CharField(max_length=5, blank=True, null=True) # hr_fim_sessao + numero_sessao_plen = models.IntegerField() # num_sessao_plen + data_fim_sessao = models.DateField(blank=True, null=True) # dat_fim_sessao + url_audio = models.CharField(max_length=150, blank=True, null=True) # url_audio + url_video = models.CharField(max_length=150, blank=True, null=True) # url_video class ExpedienteMateria(models.Model): - sessao_plen = models.ForeignKey(SessaoPlenaria) - materia = models.ForeignKey(MateriaLegislativa) - data_ordem = models.DateField() - txt_observacao = models.TextField(blank=True, null=True) - numero_ordem = models.IntegerField() - txt_resultado = models.TextField(blank=True, null=True) - tipo_votacao = models.IntegerField() + sessao_plen = models.ForeignKey(SessaoPlenaria) # cod_sessao_plen + materia = models.ForeignKey(MateriaLegislativa) # cod_materia + data_ordem = models.DateField() # dat_ordem + txt_observacao = models.TextField(blank=True, null=True) # txt_observacao + numero_ordem = models.IntegerField() # num_ordem + txt_resultado = models.TextField(blank=True, null=True) # txt_resultado + tipo_votacao = models.IntegerField() # tip_votacao class TipoExpediente(models.Model): - nome_expediente = models.CharField(max_length=100) + nome_expediente = models.CharField(max_length=100) # nom_expediente class ExpedienteSessaoPlenaria(models.Model): - sessao_plen = models.ForeignKey(SessaoPlenaria) - expediente = models.ForeignKey(TipoExpediente) - txt_expediente = models.TextField(blank=True, null=True) + sessao_plen = models.ForeignKey(SessaoPlenaria) # cod_sessao_plen + expediente = models.ForeignKey(TipoExpediente) # cod_expediente + txt_expediente = models.TextField(blank=True, null=True) # txt_expediente class MesaSessaoPlenaria(models.Model): - cargo = models.ForeignKey(CargoMesa) - sessao_leg = models.ForeignKey(SessaoLegislativa) - parlamentar = models.ForeignKey(Parlamentar) - sessao_plen = models.ForeignKey(SessaoPlenaria) - excluido = models.NullBooleanField(blank=True) + cargo = models.ForeignKey(CargoMesa) # cod_cargo + sessao_leg = models.ForeignKey(SessaoLegislativa) # cod_sessao_leg + parlamentar = models.ForeignKey(Parlamentar) # cod_parlamentar + sessao_plen = models.ForeignKey(SessaoPlenaria) # cod_sessao_plen class Oradores(models.Model): - sessao_plen = models.ForeignKey(SessaoPlenaria) - parlamentar = models.ForeignKey(Parlamentar) - numero_ordem = models.IntegerField() - url_discurso = models.CharField(max_length=150, blank=True, null=True) + sessao_plen = models.ForeignKey(SessaoPlenaria) # cod_sessao_plen + parlamentar = models.ForeignKey(Parlamentar) # cod_parlamentar + numero_ordem = models.IntegerField() # num_ordem + url_discurso = models.CharField(max_length=150, blank=True, null=True) # url_discurso class OradoresExpediente(models.Model): - sessao_plen = models.ForeignKey(SessaoPlenaria) - parlamentar = models.ForeignKey(Parlamentar) - numero_ordem = models.IntegerField() - url_discurso = models.CharField(max_length=150, blank=True, null=True) + sessao_plen = models.ForeignKey(SessaoPlenaria) # cod_sessao_plen + parlamentar = models.ForeignKey(Parlamentar) # cod_parlamentar + numero_ordem = models.IntegerField() # num_ordem + url_discurso = models.CharField(max_length=150, blank=True, null=True) # url_discurso class OrdemDia(models.Model): - sessao_plen = models.ForeignKey(SessaoPlenaria) - materia = models.ForeignKey(MateriaLegislativa) - data_ordem = models.DateField() - txt_observacao = models.TextField(blank=True, null=True) - numero_ordem = models.IntegerField() - txt_resultado = models.TextField(blank=True, null=True) - tipo_votacao = models.IntegerField() + sessao_plen = models.ForeignKey(SessaoPlenaria) # cod_sessao_plen + materia = models.ForeignKey(MateriaLegislativa) # cod_materia + data_ordem = models.DateField() # dat_ordem + txt_observacao = models.TextField(blank=True, null=True) # txt_observacao + numero_ordem = models.IntegerField() # num_ordem + txt_resultado = models.TextField(blank=True, null=True) # txt_resultado + tipo_votacao = models.IntegerField() # tip_votacao class OrdemDiaPresenca(models.Model): - sessao_plen = models.ForeignKey(SessaoPlenaria) - parlamentar = models.ForeignKey(Parlamentar) - data_ordem = models.DateField() + sessao_plen = models.ForeignKey(SessaoPlenaria) # cod_sessao_plen + parlamentar = models.ForeignKey(Parlamentar) # cod_parlamentar + data_ordem = models.DateField() # dat_ordem class TipoResultadoVotacao(models.Model): - nome_resultado = models.CharField(max_length=100) + nome_resultado = models.CharField(max_length=100) # nom_resultado class RegistroVotacao(models.Model): - tipo_resultado_votacao = models.ForeignKey(TipoResultadoVotacao) - materia = models.ForeignKey(MateriaLegislativa) - ordem = models.ForeignKey(OrdemDia) - numero_votos_sim = models.IntegerField() - numero_votos_nao = models.IntegerField() - numero_abstencao = models.IntegerField() - txt_observacao = models.TextField(blank=True, null=True) + tipo_resultado_votacao = models.ForeignKey(TipoResultadoVotacao) # tip_resultado_votacao + materia = models.ForeignKey(MateriaLegislativa) # cod_materia + ordem = models.ForeignKey(OrdemDia) # cod_ordem + numero_votos_sim = models.IntegerField() # num_votos_sim + numero_votos_nao = models.IntegerField() # num_votos_nao + numero_abstencao = models.IntegerField() # num_abstencao + txt_observacao = models.TextField(blank=True, null=True) # txt_observacao class RegistroVotacaoParlamentar(models.Model): - votacao = models.ForeignKey(RegistroVotacao) - parlamentar = models.ForeignKey(Parlamentar) - vot_parlamentar = models.CharField(max_length=10) + votacao = models.ForeignKey(RegistroVotacao) # cod_votacao + parlamentar = models.ForeignKey(Parlamentar) # cod_parlamentar + vot_parlamentar = models.CharField(max_length=10) # vot_parlamentar class SessaoPlenariaPresenca(models.Model): - sessao_plen = models.ForeignKey(SessaoPlenaria) - parlamentar = models.ForeignKey(Parlamentar) - data_sessao = models.DateField(blank=True, null=True) + sessao_plen = models.ForeignKey(SessaoPlenaria) # cod_sessao_plen + parlamentar = models.ForeignKey(Parlamentar) # cod_parlamentar + data_sessao = models.DateField(blank=True, null=True) # dat_sessao