diff --git a/norma/models.py b/norma/models.py index a90cd4fb5..afbb04e0a 100644 --- a/norma/models.py +++ b/norma/models.py @@ -6,8 +6,8 @@ from materia.models import MateriaLegislativa class AssuntoNorma(models.Model): - descricao_assunto = models.CharField(max_length=50, verbose_name=_(u'Assunto')) # des_assunto - descricao_estendida = 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')) # des_assunto + descricao = models.CharField(max_length=250, blank=True, null=True, verbose_name=_(u'Descrição')) # des_estendida class Meta: verbose_name = _(u'Assunto de Norma') @@ -15,9 +15,25 @@ class AssuntoNorma(models.Model): class TipoNormaJuridica(models.Model): - voc_lexml = models.CharField(max_length=50, blank=True, null=True, verbose_name=_(u'Equivalente LexML')) # voc_lexml - sigla_tipo_norma = models.CharField(max_length=3, verbose_name=_(u'Sigla')) # sgl_tipo_norma - descricao_tipo_norma = models.CharField(max_length=50, verbose_name=_(u'Descrição')) # des_tipo_norma + # TODO transform into Domain Model and use an FK for the field + EQUIVALENTE_LEXML_CHOICES = ((name, name) for name in + ('constituicao', + 'ementa.constitucional', + 'lei.complementar', + 'lei.delegada', + 'lei', + 'decreto.lei', + 'medida.provisoria', + 'decreto', + 'lei.organica', + 'emenda.lei.organica', + 'decreto.legislativo', + '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 class Meta: verbose_name = _(u'Tipo de Norma Jurídica') @@ -29,19 +45,19 @@ class NormaJuridica(models.Model): ESTADUAL = 'E' FEDERAL = 'F' ESFERA_FEDERACAO_CHOICES = ((MUNICIPAL, _(u'Municipal')), - (ESTADUAL, _(u'Estadual')), - (FEDERAL, _(u'Federal'))) + (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_norma = models.IntegerField(verbose_name=_(u'Número')) # num_norma - ano_norma = models.SmallIntegerField(verbose_name=_(u'Ano')) # ano_norma - tipo_esfera_federacao = models.CharField(max_length=1, verbose_name=_(u'Esfera Federação'), choices=ESFERA_FEDERACAO_CHOICES) # tip_esfera_federacao - data_norma = models.DateField(blank=True, null=True, verbose_name=_(u'Data')) # dat_norma + 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 - descricao_veiculo_publicacao = models.CharField(max_length=30, blank=True, null=True, verbose_name=_(u'Veículo Publicação')) # des_veiculo_publicacao - numero_pag_inicio_publ = models.IntegerField(blank=True, null=True, verbose_name=_(u'Pg. Início')) # num_pag_inicio_publ - numero_pag_fim_publ = models.IntegerField(blank=True, null=True, verbose_name=_(u'Pg. Fim')) # num_pag_fim_publ + 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 @@ -58,18 +74,18 @@ class NormaJuridica(models.Model): class LegislacaoCitada(models.Model): materia = models.ForeignKey(MateriaLegislativa) # cod_materia norma = models.ForeignKey(NormaJuridica) # cod_norma - descricao_disposicoes = models.CharField(max_length=15, blank=True, null=True, verbose_name=_(u'Disposição')) # des_disposicoes - descricao_parte = models.CharField(max_length=8, blank=True, null=True, verbose_name=_(u'Parte')) # des_parte - descricao_livro = models.CharField(max_length=7, blank=True, null=True, verbose_name=_(u'Livro')) # des_livro - descricao_titulo = models.CharField(max_length=7, blank=True, null=True, verbose_name=_(u'Título')) # des_titulo - descricao_capitulo = models.CharField(max_length=7, blank=True, null=True, verbose_name=_(u'Capítulo')) # des_capitulo - descricao_secao = models.CharField(max_length=7, blank=True, null=True, verbose_name=_(u'Seção')) # des_secao - descricao_subsecao = models.CharField(max_length=7, blank=True, null=True, verbose_name=_(u'Subseção')) # des_subsecao - descricao_artigo = models.CharField(max_length=4, blank=True, null=True, verbose_name=_(u'Artigo')) # des_artigo - descricao_paragrafo = models.CharField(max_length=3, blank=True, null=True, verbose_name=_(u'Parágrafo')) # des_paragrafo - descricao_inciso = models.CharField(max_length=10, blank=True, null=True, verbose_name=_(u'Inciso')) # des_inciso - descricao_alinea = models.CharField(max_length=3, blank=True, null=True, verbose_name=_(u'Alínea')) # des_alinea - descricao_item = models.CharField(max_length=3, blank=True, null=True, verbose_name=_(u'Item')) # des_item + 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 class Meta: verbose_name = _(u'Matéria Legislativa') @@ -77,10 +93,20 @@ class LegislacaoCitada(models.Model): class VinculoNormaJuridica(models.Model): + TIPO_VINCULO_CHOICES = ( + ('A', u'Altera a norma'), + ('R', u'Revoga a norma'), + ('P', u'Revoga parcialmente a norma'), + ('T', u'Revoga por consolidação a norma'), + ('C', u'Norma correlata'), + ('I', u'Suspende a execução da norma'), + ('G', u'Regulamenta a norma'), + ) + # 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) # tip_vinculo + tipo_vinculo = models.CharField(max_length=1, blank=True, null=True, choices=TIPO_VINCULO_CHOICES) # tip_vinculo class Meta: verbose_name = _(u'Vínculo entre Normas Jurídicas')