From 7ed335176c4c9006b9a965859625ec697993cc96 Mon Sep 17 00:00:00 2001 From: Marcio Mazza Date: Mon, 6 Jul 2015 22:20:12 -0300 Subject: [PATCH] Track legacy renames with yaml mappings Instead of the previous comment annotations on field sources --- base/models.py | 30 ++-- comissoes/legacy.yaml | 45 ++++++ comissoes/models.py | 76 +++++----- legacy/scripts/field_renames.py | 94 ++++--------- lexml/legacy.yaml | 18 +++ lexml/models.py | 30 ++-- materia/legacy.yaml | 164 ++++++++++++++++++++++ materia/models.py | 236 ++++++++++++++++---------------- norma/legacy.yaml | 48 +++++++ norma/models.py | 78 +++++------ parlamentares/legacy.yaml | 111 +++++++++++++++ parlamentares/models.py | 160 +++++++++++----------- protocoloadm/legacy.yaml | 64 +++++++++ protocoloadm/models.py | 106 +++++++------- sessao/legacy.yaml | 81 +++++++++++ sessao/models.py | 100 +++++++------- 16 files changed, 968 insertions(+), 473 deletions(-) create mode 100644 comissoes/legacy.yaml create mode 100644 lexml/legacy.yaml create mode 100644 materia/legacy.yaml create mode 100644 norma/legacy.yaml create mode 100644 parlamentares/legacy.yaml create mode 100644 protocoloadm/legacy.yaml create mode 100644 sessao/legacy.yaml diff --git a/base/models.py b/base/models.py index 0321e97f0..e3832a7eb 100644 --- a/base/models.py +++ b/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') diff --git a/comissoes/legacy.yaml b/comissoes/legacy.yaml new file mode 100644 index 000000000..71fc705c4 --- /dev/null +++ b/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 diff --git a/comissoes/models.py b/comissoes/models.py index 30cee453c..a5b81a135 100644 --- a/comissoes/models.py +++ b/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') diff --git a/legacy/scripts/field_renames.py b/legacy/scripts/field_renames.py index 6dd0ef2c6..f17936864 100644 --- a/legacy/scripts/field_renames.py +++ b/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] diff --git a/lexml/legacy.yaml b/lexml/legacy.yaml new file mode 100644 index 000000000..12414248e --- /dev/null +++ b/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 diff --git a/lexml/models.py b/lexml/models.py index 1d123f943..8ded46bad 100644 --- a/lexml/models.py +++ b/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') diff --git a/materia/legacy.yaml b/materia/legacy.yaml new file mode 100644 index 000000000..e90036a42 --- /dev/null +++ b/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 diff --git a/materia/models.py b/materia/models.py index 4adac1ffa..b4676c99b 100644 --- a/materia/models.py +++ b/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') diff --git a/norma/legacy.yaml b/norma/legacy.yaml new file mode 100644 index 000000000..89038ef69 --- /dev/null +++ b/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 diff --git a/norma/models.py b/norma/models.py index afbb04e0a..b6e8b4620 100644 --- a/norma/models.py +++ b/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') diff --git a/parlamentares/legacy.yaml b/parlamentares/legacy.yaml new file mode 100644 index 000000000..3130c548f --- /dev/null +++ b/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 diff --git a/parlamentares/models.py b/parlamentares/models.py index 59cc17848..df901e102 100644 --- a/parlamentares/models.py +++ b/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') diff --git a/protocoloadm/legacy.yaml b/protocoloadm/legacy.yaml new file mode 100644 index 000000000..3497770d2 --- /dev/null +++ b/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 diff --git a/protocoloadm/models.py b/protocoloadm/models.py index 075fd6c9a..026f3c216 100644 --- a/protocoloadm/models.py +++ b/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') diff --git a/sessao/legacy.yaml b/sessao/legacy.yaml new file mode 100644 index 000000000..e428596de --- /dev/null +++ b/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 diff --git a/sessao/models.py b/sessao/models.py index 7bf8d9591..1eca0e26b 100644 --- a/sessao/models.py +++ b/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')