From c2c5641dd2b9cc36eceb1cd63069f1cbe45335e4 Mon Sep 17 00:00:00 2001 From: Marcio Mazza Date: Fri, 26 Jun 2015 13:28:11 -0300 Subject: [PATCH] Add method to get source lines in unicode --- legacy/scripts/scrap_original_forms.py | 12 +- legacy/scripts/utils.py | 8 + parlamentares/models.py | 236 ++++++++++++++++--------- 3 files changed, 168 insertions(+), 88 deletions(-) diff --git a/legacy/scripts/scrap_original_forms.py b/legacy/scripts/scrap_original_forms.py index e64ffacf4..77337fa04 100644 --- a/legacy/scripts/scrap_original_forms.py +++ b/legacy/scripts/scrap_original_forms.py @@ -1,13 +1,12 @@ import os import re import string -from inspect import getsourcelines from bs4 import BeautifulSoup from bs4.element import NavigableString, Tag from field_mappings import field_mappings -from utils import listify +from utils import listify, getsourcelines def _read_line(tr): @@ -87,7 +86,7 @@ def extract_verbose_names(model): @listify def source_with_verbose_names(model): - source = getsourcelines(model)[0] + source = getsourcelines(model) title, labels, non_matched = extract_verbose_names(model) field_regex = ' *(.+) = (models\.[^\(]*)\((.*verbose_name=_\(.*\)|.*)\)' @@ -138,10 +137,11 @@ def source_with_verbose_names(model): def print_app_with_verbose_names(app): print '##################################################################' header = '# -*- coding: utf-8 -*-\n' - for line in getsourcelines(app.models_module)[0][:10]: - if line.startswith('# -*- coding:'): + for line in getsourcelines(app.models_module): + if line in ['# -*- coding: utf-8 -*-', + 'from django.utils.translation import ugettext as _', ]: continue - elif line == 'from django.db import models\n': + elif line == 'from django.db import models': header += '''from django.db import models from django.utils.translation import ugettext as _ ''' diff --git a/legacy/scripts/utils.py b/legacy/scripts/utils.py index e122c8bb7..cc9ba1181 100644 --- a/legacy/scripts/utils.py +++ b/legacy/scripts/utils.py @@ -1,4 +1,12 @@ +import inspect + + def listify(function): def f(*args, **kwargs): return list(function(*args, **kwargs)) return f + + +def getsourcelines(model): + return [line.rstrip('\n').decode('utf-8') + for line in inspect.getsourcelines(model)[0]] diff --git a/parlamentares/models.py b/parlamentares/models.py index 2ef05d5e1..8e352e1f2 100644 --- a/parlamentares/models.py +++ b/parlamentares/models.py @@ -1,131 +1,203 @@ +# -*- coding: utf-8 -*- from django.db import models +from django.utils.translation import ugettext as _ class Legislatura(models.Model): - data_inicio = models.DateField() # dat_inicio - data_fim = models.DateField() # dat_fim - data_eleicao = models.DateField() # dat_eleicao + 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 + + class Meta: + verbose_name = _(u'') + verbose_name_plural = _(u'') class SessaoLegislativa(models.Model): - legislatura = models.ForeignKey(Legislatura) # num_legislatura - numero = models.IntegerField() # num_sessao_leg - tipo = models.CharField(max_length=1) # tip_sessao_leg - data_inicio = models.DateField() # dat_inicio - data_fim = models.DateField() # dat_fim - data_inicio_intervalo = models.DateField(blank=True, null=True) # dat_inicio_intervalo - data_fim_intervalo = models.DateField(blank=True, null=True) # dat_fim_intervalo + 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')) # 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 + + class Meta: + verbose_name = _(u'Sessão Legislativa') + verbose_name_plural = _(u'Sessões Legislativas') class Coligacao(models.Model): - legislatura = models.ForeignKey(Legislatura) # num_legislatura - nome_coligacao = models.CharField(max_length=50) # nom_coligacao - numero_votos_coligacao = models.IntegerField(blank=True, null=True) # num_votos_coligacao + legislatura = models.ForeignKey(Legislatura, verbose_name=_(u'Legislatura')) # num_legislatura + nome_coligacao = models.CharField(max_length=50, verbose_name=_(u'Nome')) # nom_coligacao + numero_votos_coligacao = models.IntegerField(blank=True, null=True, verbose_name=_(u'Nº Votos Recebidos')) # num_votos_coligacao + + class Meta: + verbose_name = _(u'Coligação') + verbose_name_plural = _(u'Coligações') class Partido(models.Model): - sigla_partido = models.CharField(max_length=9) # sgl_partido - nome_partido = models.CharField(max_length=50) # nom_partido - data_criacao = models.DateField(blank=True, null=True) # dat_criacao - data_extincao = models.DateField(blank=True, null=True) # dat_extincao + sigla_partido = models.CharField(max_length=9, verbose_name=_(u'Sigla')) # sgl_partido + nome_partido = 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 + + class Meta: + verbose_name = _(u'Partido') + verbose_name_plural = _(u'Partidos') class ComposicaoColigacao(models.Model): - partido = models.ForeignKey(Partido) # cod_partido - coligacao = models.ForeignKey(Coligacao) # cod_coligacao + partido = models.ForeignKey(Partido) # cod_partido + coligacao = models.ForeignKey(Coligacao) # cod_coligacao + + class Meta: + verbose_name = _(u'') + verbose_name_plural = _(u'') class Localidade(models.Model): - nome_localidade = models.CharField(max_length=50, blank=True, null=True) # nom_localidade - nome_localidade_pesq = models.CharField(max_length=50, blank=True, null=True) # nom_localidade_pesq - tipo_localidade = models.CharField(max_length=1, blank=True, null=True) # tip_localidade - sigla_uf = models.CharField(max_length=2, blank=True, null=True) # sgl_uf - sigla_regiao = models.CharField(max_length=2, blank=True, null=True) # sgl_regiao + nome_localidade = models.CharField(max_length=50, blank=True, null=True) # nom_localidade + nome_localidade_pesq = models.CharField(max_length=50, blank=True, null=True) # nom_localidade_pesq + tipo_localidade = models.CharField(max_length=1, blank=True, null=True) # tip_localidade + sigla_uf = models.CharField(max_length=2, blank=True, null=True) # sgl_uf + sigla_regiao = models.CharField(max_length=2, blank=True, null=True) # sgl_regiao + + class Meta: + verbose_name = _(u'Município') + verbose_name_plural = _(u'Municípios') class NivelInstrucao(models.Model): - nivel_instrucao = models.CharField(max_length=50) # des_nivel_instrucao + nivel_instrucao = models.CharField(max_length=50) # des_nivel_instrucao + + class Meta: + verbose_name = _(u'') + verbose_name_plural = _(u'') + + def __unicode__(self): + return self.nivel_instrucao class SituacaoMilitar(models.Model): - descricao_tipo_situacao = models.CharField(max_length=50) # des_tipo_situacao + descricao_tipo_situacao = models.CharField(max_length=50) # des_tipo_situacao + + class Meta: + verbose_name = _(u'') + verbose_name_plural = _(u'') class Parlamentar(models.Model): - nivel_instrucao = models.ForeignKey(NivelInstrucao, blank=True, null=True) # cod_nivel_instrucao - situacao_militar = models.ForeignKey(SituacaoMilitar, blank=True, null=True) # tip_situacao_militar - nome_completo = models.CharField(max_length=50) # nom_completo - nome_parlamentar = models.CharField(max_length=50, blank=True, null=True) # nom_parlamentar - sexo = models.CharField(max_length=1) # sex_parlamentar - data_nascimento = models.DateField(blank=True, null=True) # dat_nascimento - numero_cpf = models.CharField(max_length=14, blank=True, null=True) # num_cpf - numero_rg = models.CharField(max_length=15, blank=True, null=True) # num_rg - numero_tit_eleitor = models.CharField(max_length=15, blank=True, null=True) # num_tit_eleitor - cod_casa = models.IntegerField() # cod_casa - numero_gab_parlamentar = models.CharField(max_length=10, blank=True, null=True) # num_gab_parlamentar - numero_tel_parlamentar = models.CharField(max_length=50, blank=True, null=True) # num_tel_parlamentar - numero_fax_parlamentar = models.CharField(max_length=50, blank=True, null=True) # num_fax_parlamentar - endereco_residencial = models.CharField(max_length=100, blank=True, null=True) # end_residencial - localidade_resid = models.ForeignKey(Localidade, blank=True, null=True) # cod_localidade_resid - numero_cep_resid = models.CharField(max_length=9, blank=True, null=True) # num_cep_resid - numero_tel_resid = models.CharField(max_length=50, blank=True, null=True) # num_tel_resid - numero_fax_resid = models.CharField(max_length=50, blank=True, null=True) # num_fax_resid - endereco_web = models.CharField(max_length=100, blank=True, null=True) # end_web - nome_profissao = models.CharField(max_length=50, blank=True, null=True) # nom_profissao - endereco_email = models.CharField(max_length=100, blank=True, null=True) # end_email - descricao_local_atuacao = models.CharField(max_length=100, blank=True, null=True) # des_local_atuacao - ativo = models.BooleanField() # ind_ativo - txt_biografia = models.TextField(blank=True, null=True) # txt_biografia - unid_deliberativa = models.BooleanField() # ind_unid_deliberativa + 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')) # sex_parlamentar + data_nascimento = models.DateField(blank=True, null=True, verbose_name=_(u'Data Nascimento')) # dat_nascimento + numero_cpf = models.CharField(max_length=14, blank=True, null=True, verbose_name=_(u'C.P.F')) # num_cpf + numero_rg = models.CharField(max_length=15, blank=True, null=True, verbose_name=_(u'R.G.')) # num_rg + numero_tit_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 + numero_tel_parlamentar = models.CharField(max_length=50, blank=True, null=True, verbose_name=_(u'Telefone')) # num_tel_parlamentar + numero_fax_parlamentar = models.CharField(max_length=50, blank=True, null=True, verbose_name=_(u'Fax')) # num_fax_parlamentar + endereco_residencial = models.CharField(max_length=100, blank=True, null=True, verbose_name=_(u'Endereço Residencial')) # end_residencial + localidade_resid = models.ForeignKey(Localidade, blank=True, null=True, verbose_name=_(u'Município')) # cod_localidade_resid + numero_cep_resid = models.CharField(max_length=9, blank=True, null=True, verbose_name=_(u'CEP')) # num_cep_resid + numero_tel_resid = models.CharField(max_length=50, blank=True, null=True, verbose_name=_(u'Telefone Residencial')) # num_tel_resid + numero_fax_resid = 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 + nome_profissao = models.CharField(max_length=50, blank=True, null=True, verbose_name=_(u'Profissão')) # nom_profissao + endereco_email = models.CharField(max_length=100, blank=True, null=True, verbose_name=_(u'Correio Eletrônico')) # end_email + descricao_local_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 + txt_biografia = models.TextField(blank=True, null=True, verbose_name=_(u'Biografia')) # txt_biografia + unid_deliberativa = models.BooleanField() # ind_unid_deliberativa + + class Meta: + verbose_name = _(u'Parlamentar') + verbose_name_plural = _(u'Parlamentares') + + def __unicode__(self): + return self.nome_completo class TipoDependente(models.Model): - descricao_tipo_dependente = models.CharField(max_length=50) # des_tipo_dependente + descricao_tipo_dependente = models.CharField(max_length=50) # des_tipo_dependente + + class Meta: + verbose_name = _(u'Tipo de Dependente') + verbose_name_plural = _(u'Tipos de Dependente') class Dependente(models.Model): - tipo_dependente = models.ForeignKey(TipoDependente) # tip_dependente - parlamentar = models.ForeignKey(Parlamentar) # cod_parlamentar - nome_dependente = models.CharField(max_length=50) # nom_dependente - sexo = models.CharField(max_length=1) # sex_dependente - data_nascimento = models.DateField(blank=True, null=True) # dat_nascimento - numero_cpf = models.CharField(max_length=14, blank=True, null=True) # num_cpf - numero_rg = models.CharField(max_length=15, blank=True, null=True) # num_rg - numero_tit_eleitor = models.CharField(max_length=15, blank=True, null=True) # num_tit_eleitor + tipo_dependente = models.ForeignKey(TipoDependente, verbose_name=_(u'Tipo')) # tip_dependente + parlamentar = models.ForeignKey(Parlamentar) # cod_parlamentar + nome_dependente = models.CharField(max_length=50, verbose_name=_(u'Nome')) # nom_dependente + sexo = models.CharField(max_length=1, verbose_name=_(u'Sexo')) # sex_dependente + data_nascimento = models.DateField(blank=True, null=True, verbose_name=_(u'Data Nascimento')) # dat_nascimento + numero_cpf = models.CharField(max_length=14, blank=True, null=True, verbose_name=_(u'CPF')) # num_cpf + numero_rg = models.CharField(max_length=15, blank=True, null=True, verbose_name=_(u'RG')) # num_rg + numero_tit_eleitor = models.CharField(max_length=15, blank=True, null=True, verbose_name=_(u'Nº Título Eleitor')) # num_tit_eleitor + + class Meta: + verbose_name = _(u'Dependente') + verbose_name_plural = _(u'Dependentes') class Filiacao(models.Model): - data_filiacao = models.DateField() # dat_filiacao - parlamentar = models.ForeignKey(Parlamentar) # cod_parlamentar - partido = models.ForeignKey(Partido) # cod_partido - data_desfiliacao = models.DateField(blank=True, null=True) # dat_desfiliacao + data_filiacao = 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 + + class Meta: + verbose_name = _(u'Filiação') + verbose_name_plural = _(u'Filiações') class TipoAfastamento(models.Model): - descricao_afastamento = models.CharField(max_length=50) # des_afastamento - afastamento = models.BooleanField() # ind_afastamento - fim_mandato = models.BooleanField() # ind_fim_mandato - descricao_dispositivo = models.CharField(max_length=50, blank=True, null=True) # des_dispositivo + descricao_afastamento = models.CharField(max_length=50) # des_afastamento + afastamento = models.BooleanField() # ind_afastamento + fim_mandato = models.BooleanField() # ind_fim_mandato + descricao_dispositivo = models.CharField(max_length=50, blank=True, null=True) # des_dispositivo + + class Meta: + verbose_name = _(u'Tipo de Afastamento') + verbose_name_plural = _(u'Tipos de Afastamento') 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) # num_legislatura - coligacao = models.ForeignKey(Coligacao, blank=True, null=True) # cod_coligacao - tipo_causa_fim_mandato = models.IntegerField(blank=True, null=True) # tip_causa_fim_mandato - data_fim_mandato = models.DateField(blank=True, null=True) # dat_fim_mandato - numero_votos_recebidos = models.IntegerField(blank=True, null=True) # num_votos_recebidos - data_expedicao_diploma = models.DateField(blank=True, null=True) # dat_expedicao_diploma - txt_observacao = models.TextField(blank=True, null=True) # txt_observacao + 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 + 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 + numero_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 + txt_observacao = models.TextField(blank=True, null=True, verbose_name=_(u'Observação')) # txt_observacao + + class Meta: + verbose_name = _(u'Mandato') + verbose_name_plural = _(u'Mandatos') class CargoMesa(models.Model): - nome = models.CharField(max_length=50) # des_cargo - unico = models.BooleanField() # ind_unico + nome = models.CharField(max_length=50) # des_cargo + unico = models.BooleanField() # ind_unico + + class Meta: + verbose_name = _(u'Cargo da Mesa') + verbose_name_plural = _(u'Cargos da Mesa') class ComposicaoMesa(models.Model): - parlamentar = models.ForeignKey(Parlamentar) # cod_parlamentar - sessao_legislativa = models.ForeignKey(SessaoLegislativa) # cod_sessao_leg - cargo = models.ForeignKey(CargoMesa) # cod_cargo + parlamentar = models.ForeignKey(Parlamentar) # cod_parlamentar + sessao_legislativa = models.ForeignKey(SessaoLegislativa) # cod_sessao_leg + cargo = models.ForeignKey(CargoMesa) # cod_cargo + + class Meta: + verbose_name = _(u'') + verbose_name_plural = _(u'')