From a82220e7b32316d38da57d5f8d30c61b3d7adc4f Mon Sep 17 00:00:00 2001 From: Marcio Mazza Date: Wed, 8 Jul 2015 20:06:15 -0300 Subject: [PATCH] Refactor models' choices --- comissoes/models.py | 10 +++--- legacy/migration.py | 1 + materia/models.py | 80 +++++++++++++++++++++-------------------- norma/models.py | 12 +++---- parlamentares/models.py | 10 +++--- protocoloadm/models.py | 9 ++--- 6 files changed, 64 insertions(+), 58 deletions(-) diff --git a/comissoes/models.py b/comissoes/models.py index 16152ab33..1041d4bc2 100644 --- a/comissoes/models.py +++ b/comissoes/models.py @@ -3,13 +3,14 @@ from django.db import models from django.utils.translation import ugettext as _ from parlamentares.models import Parlamentar +from sapl.utils import make_choices class TipoComissao(models.Model): - TEMPORARIA = 'T' - PERMANENTE = 'P' - NATUREZA_CHOICES = ((TEMPORARIA, _('Temporária')), - (PERMANENTE, _('Permanente'))) + NATUREZA_CHOICES, TEMPORARIA, PERMANENTE = make_choices( + 'T', _('Temporária'), + 'P', _('Permanente'), + ) nome = models.CharField(max_length=50, verbose_name=_('Nome')) natureza = models.CharField(max_length=1, verbose_name=_('Natureza'), choices=NATUREZA_CHOICES) sigla = models.CharField(max_length=10, verbose_name=_('Sigla')) @@ -105,4 +106,3 @@ class Participacao(models.Model): # ComposicaoComissao def __str__(self): return '%s : %s' % (self.cargo, self.parlamentar) - diff --git a/legacy/migration.py b/legacy/migration.py index c28c13545..caf777825 100644 --- a/legacy/migration.py +++ b/legacy/migration.py @@ -1,3 +1,4 @@ + import re import pkg_resources diff --git a/materia/models.py b/materia/models.py index d87d84119..59a78e9fa 100644 --- a/materia/models.py +++ b/materia/models.py @@ -4,6 +4,7 @@ from django.utils.translation import ugettext as _ from comissoes.models import Comissao from parlamentares.models import Parlamentar, Partido +from sapl.utils import make_choices class TipoMateriaLegislativa(models.Model): @@ -46,9 +47,10 @@ class Origem(models.Model): class MateriaLegislativa(models.Model): - ORAL, ESCRITA = 'O', 'E' - TIPO_APRESENTACAO_CHOICES = ((ORAL, _('Oral')), - (ESCRITA, _('Escrita'))) + TIPO_APRESENTACAO_CHOICES, ORAL, ESCRITA = make_choices( + 'O', _('Oral'), + 'E', _('Escrita'), + ) tipo = models.ForeignKey(TipoMateriaLegislativa, verbose_name=_('Tipo')) numero = models.IntegerField(verbose_name=_('Número')) @@ -100,6 +102,7 @@ class AcompanhamentoMateria(models.Model): # AcompMateria def __str__(self): return self.materia + class Anexada(models.Model): materia_principal = models.ForeignKey(MateriaLegislativa, related_name='+') materia_anexada = models.ForeignKey(MateriaLegislativa, related_name='+') @@ -160,7 +163,7 @@ class Autor(models.Model): return str(self.partido) else: if str(self.cargo): - return _('%(nome)s - %(cargo)s') % {'nome': self.nome, 'cargo': self.cargo} + return _('%(nome)s - %(cargo)s') % {'nome': self.nome, 'cargo': self.cargo} else: return str(self.nome) @@ -175,7 +178,8 @@ class Autoria(models.Model): verbose_name_plural = _('Autorias') def __str__(self): - return _('%(autor)s - %(materia)s') % {'autor': self.autor, 'materia': self.materia} + return _('%(autor)s - %(materia)s') % {'autor': self.autor, 'materia': self.materia} + class DespachoInicial(models.Model): # TODO M2M? @@ -188,7 +192,8 @@ class DespachoInicial(models.Model): verbose_name_plural = _('Despachos Iniciais') def __str__(self): - return _('Nº %(numero)s - %(materia)s - %(comissao)s') % {'numero': self.numero_ordem, 'materia': self.materia, 'comissao': self.comissao} + return _('Nº %(numero)s - %(materia)s - %(comissao)s') % {'numero': self.numero_ordem, 'materia': self.materia, 'comissao': self.comissao} + class TipoDocumento(models.Model): descricao = models.CharField(max_length=50, verbose_name=_('Tipo Documento')) @@ -229,7 +234,7 @@ class MateriaAssunto(models.Model): verbose_name_plural = _('Relações Matéria - Assunto') def __str__(self): - return _('%(materia)s - %(assunto)s') % { 'materia': self.materia, 'assunto': self.assunto} + return _('%(materia)s - %(assunto)s') % {'materia': self.materia, 'assunto': self.assunto} class Numeracao(models.Model): @@ -244,9 +249,9 @@ class Numeracao(models.Model): verbose_name = _('Numeração') verbose_name_plural = _('Numerações') - def __unicode_ (self): + def __unicode_(self): return _('Nº%(numero)s %(tipo)s - %(data)s') % { - 'numero': self.numero_materia, 'tipo': self.tipo_materia, 'data': self.data_materia } + 'numero': self.numero_materia, 'tipo': self.tipo_materia, 'data': self.data_materia} class Orgao(models.Model): @@ -261,7 +266,7 @@ class Orgao(models.Model): verbose_name_plural = _('Órgãos') def __str__(self): - return _('%(nome)s - %(sigla)s') % { 'nome': self.nome, 'sigla':self.sigla } + return _('%(nome)s - %(sigla)s') % {'nome': self.nome, 'sigla': self.sigla} class TipoFimRelatoria(models.Model): @@ -274,6 +279,7 @@ class TipoFimRelatoria(models.Model): def __str__(self): return self.descricao + class Relatoria(models.Model): materia = models.ForeignKey(MateriaLegislativa) parlamentar = models.ForeignKey(Parlamentar, verbose_name=_('Parlamentar')) @@ -288,15 +294,15 @@ class Relatoria(models.Model): def __str__(self): return _('%(materia)s - %(tipo)s - %(data)s') % { - 'materia': self.materia, 'tipo': self.tipo_fim_relatoria, 'data': self.data_designacao_relator + 'materia': self.materia, 'tipo': self.tipo_fim_relatoria, 'data': self.data_designacao_relator } class Parecer(models.Model): - ORAL = 'O' - ESCRITA = 'E' - APRESENTACAO_CHOICES = ((ORAL, _('Oral')), - (ESCRITA, _('Escrita'))) + APRESENTACAO_CHOICES, ORAL, ESCRITA = make_choices( + 'O', _('Oral'), + 'E', _('Escrita'), + ) relatoria = models.ForeignKey(Relatoria) materia = models.ForeignKey(MateriaLegislativa) @@ -315,10 +321,10 @@ class Parecer(models.Model): class TipoProposicao(models.Model): - MATERIA = 'M' - DOCUMENTO = 'D' - MAT_OU_DOC_CHOICES = ((MATERIA, _('Matéria')), - (DOCUMENTO, _('Documento'))) + MAT_OU_DOC_CHOICES, MATERIA, DOCUMENTO = make_choices( + 'M', _('Matéria'), + 'D', _('Documento'), + ) descricao = models.CharField(max_length=50, verbose_name=_('Descrição')) materia_ou_documento = models.CharField(max_length=1, verbose_name=_('Gera'), choices=MAT_OU_DOC_CHOICES) @@ -361,10 +367,10 @@ class Proposicao(models.Model): class StatusTramitacao(models.Model): - FIM = 'F' - RETORNO = 'R' - INDICADOR_CHOICES = ((FIM, _('Fim')), - (RETORNO, _('Retorno'))) + INDICADOR_CHOICES, FIM, RETORNO = make_choices( + 'F', _('Fim'), + 'R', _('Retorno'), + ) sigla = models.CharField(max_length=10, verbose_name=_('Sigla')) descricao = models.CharField(max_length=60, verbose_name=_('Descrição')) @@ -397,22 +403,18 @@ class UnidadeTramitacao(models.Model): class Tramitacao(models.Model): - PRIMEIRO = 'P' - SEGUNDO = 'S' - UNICO = 'Ú' - SUPLEMENTAR = 'L' - FINAL = 'F' - VOTACAO_UNICA = 'A' - PRIMEIRA_VOTACAO = 'B' - SEGUNDA_TERCEIRA_VOTACAO = 'C' - TURNO_CHOICES = ((PRIMEIRO, _('Primeiro')), - (SEGUNDO, _('Segundo')), - (UNICO, _('Único')), - (SUPLEMENTAR, _('Suplementar')), - (FINAL, _('Final')), - (VOTACAO_UNICA, _('Votação única em Regime de Urgência')), - (PRIMEIRA_VOTACAO, _('1ª Votação')), - (SEGUNDA_TERCEIRA_VOTACAO, _('2ª e 3ª Votação'))) + TURNO_CHOICES, \ + PRIMEIRO, SEGUNDO, UNICO, SUPLEMENTAR, FINAL, \ + VOTACAO_UNICA, PRIMEIRA_VOTACAO, SEGUNDA_TERCEIRA_VOTACAO = make_choices( + 'P', _('Primeiro'), + 'S', _('Segundo'), + 'Ú', _('Único'), + 'L', _('Suplementar'), + 'F', _('Final'), + 'A', _('Votação única em Regime de Urgência'), + 'B', _('1ª Votação'), + 'C', _('2ª e 3ª Votação'), + ) status = models.ForeignKey(StatusTramitacao, blank=True, null=True, verbose_name=_('Status')) materia = models.ForeignKey(MateriaLegislativa) diff --git a/norma/models.py b/norma/models.py index ecca253c5..6565ffee2 100644 --- a/norma/models.py +++ b/norma/models.py @@ -3,6 +3,7 @@ from django.db import models from django.utils.translation import ugettext as _ from materia.models import MateriaLegislativa +from sapl.utils import make_choices class AssuntoNorma(models.Model): @@ -41,12 +42,11 @@ class TipoNormaJuridica(models.Model): class NormaJuridica(models.Model): - MUNICIPAL = 'M' - ESTADUAL = 'E' - FEDERAL = 'F' - ESFERA_FEDERACAO_CHOICES = ((MUNICIPAL, _('Municipal')), - (ESTADUAL, _('Estadual')), - (FEDERAL, _('Federal'))) + ESFERA_FEDERACAO_CHOICES, ESTADUAL, FEDERAL, MUNICIPAL = make_choices( + 'E', _('Estadual'), + 'F', _('Federal'), + 'M', _('Municipal'), + ) tipo = models.ForeignKey(TipoNormaJuridica, verbose_name=_('Tipo')) materia = models.ForeignKey(MateriaLegislativa, blank=True, null=True) diff --git a/parlamentares/models.py b/parlamentares/models.py index e710197ab..b66abe7d2 100644 --- a/parlamentares/models.py +++ b/parlamentares/models.py @@ -2,6 +2,8 @@ from django.db import models from django.utils.translation import ugettext as _ +from sapl.utils import make_choices + class Legislatura(models.Model): data_inicio = models.DateField(verbose_name=_('Data Início')) @@ -14,10 +16,10 @@ class Legislatura(models.Model): class SessaoLegislativa(models.Model): - ORDINARIA = 'O' - EXTRAORDINARIA = 'E' - TIPO_SESSAO_CHOICES = ((ORDINARIA, _('Ordinária')), - (EXTRAORDINARIA, _('Extraordinária'))) + TIPO_SESSAO_CHOICES, ORDINARIA, EXTRAORDINARIA = make_choices( + 'O', _('Ordinária'), + 'E', _('Extraordinária'), + ) legislatura = models.ForeignKey(Legislatura) numero = models.IntegerField(verbose_name=_('Número')) diff --git a/protocoloadm/models.py b/protocoloadm/models.py index 38e026064..977f6d948 100644 --- a/protocoloadm/models.py +++ b/protocoloadm/models.py @@ -3,6 +3,7 @@ from django.db import models from django.utils.translation import ugettext as _ from materia.models import Autor, TipoMateriaLegislativa, UnidadeTramitacao +from sapl.utils import make_choices class TipoDocumentoAdministrativo(models.Model): @@ -75,10 +76,10 @@ class Protocolo(models.Model): class StatusTramitacaoAdministrativo(models.Model): - FIM = 'F' - RETORNO = 'R' - INDICADOR_CHOICES = ((FIM, _('Fim')), - (RETORNO, _('Retorno'))) + INDICADOR_CHOICES, FIM, RETORNO = make_choices( + 'F', _('Fim'), + 'R', _('Retorno'), + ) sigla = models.CharField(max_length=10, verbose_name=_('Sigla')) descricao = models.CharField(max_length=60, verbose_name=_('Descrição'))