diff --git a/sapl/norma/fixtures/pre_popula_tipo_vinculo_norma.json b/sapl/norma/fixtures/pre_popula_tipo_vinculo_norma.json index 50c6ad647..c533ca495 100644 --- a/sapl/norma/fixtures/pre_popula_tipo_vinculo_norma.json +++ b/sapl/norma/fixtures/pre_popula_tipo_vinculo_norma.json @@ -1,6 +1,7 @@ [ { "fields": { + "revoga_integramente": "False", "descricao_ativa": "Altera o(a)", "descricao_passiva": "Alterado(a) pelo(a)", "sigla": "A" @@ -10,6 +11,7 @@ }, { "fields": { + "revoga_integramente": "True", "descricao_ativa": "Revoga integralmente o(a)", "descricao_passiva": "Revogado(a) integralmente pelo(a)", "sigla": "R" @@ -19,6 +21,7 @@ }, { "fields": { + "revoga_integramente": "False", "descricao_ativa": "Revoga parcialmente o(a)", "descricao_passiva": "Revogado(a) parcialmente pelo(a)", "sigla": "P" @@ -28,6 +31,7 @@ }, { "fields": { + "revoga_integramente": "True", "descricao_ativa": "Revoga integralmente por consolida\u00e7\u00e3o", "descricao_passiva": "Revogado(a) integralmente por consolida\u00e7\u00e3o", "sigla": "T" @@ -37,6 +41,7 @@ }, { "fields": { + "revoga_integramente": "False", "descricao_ativa": "Norma correlata", "descricao_passiva": "Norma correlata", "sigla": "C" @@ -46,6 +51,7 @@ }, { "fields": { + "revoga_integramente": "False", "descricao_ativa": "Ressalva o(a)", "descricao_passiva": "Ressalvada pelo(a)", "sigla": "S" @@ -55,6 +61,7 @@ }, { "fields": { + "revoga_integramente": "False", "descricao_ativa": "Reedita o(a)", "descricao_passiva": "Reeditada pelo(a)", "sigla": "E" @@ -64,6 +71,7 @@ }, { "fields": { + "revoga_integramente": "False", "descricao_ativa": "Reedita com altera\u00e7\u00e3o o(a)", "descricao_passiva": "Reeditada com altera\u00e7\u00e3o pelo(a)", "sigla": "I" @@ -73,6 +81,7 @@ }, { "fields": { + "revoga_integramente": "False", "descricao_ativa": "Regulamenta o(a)", "descricao_passiva": "Regulamentada pelo(a)", "sigla": "G" @@ -82,6 +91,7 @@ }, { "fields": { + "revoga_integramente": "False", "descricao_ativa": "Suspende parcialmente o(a)", "descricao_passiva": "Suspenso(a) parcialmente pelo(a)", "sigla": "K" @@ -91,6 +101,7 @@ }, { "fields": { + "revoga_integramente": "False", "descricao_ativa": "Suspende integralmente o(a)", "descricao_passiva": "Suspenso(a) integralmente pelo(a)", "sigla": "L" @@ -100,6 +111,7 @@ }, { "fields": { + "revoga_integramente": "False", "descricao_ativa": "Julga integralmente inconstitucional", "descricao_passiva": "Julgada integralmente inconstitucional", "sigla": "N" @@ -109,6 +121,7 @@ }, { "fields": { + "revoga_integramente": "False", "descricao_ativa": "Julga parcialmente inconstitucional", "descricao_passiva": "Julgada parcialmente inconstitucional", "sigla": "O" diff --git a/sapl/norma/forms.py b/sapl/norma/forms.py index 674e1b9a8..4f6b6a563 100644 --- a/sapl/norma/forms.py +++ b/sapl/norma/forms.py @@ -344,6 +344,8 @@ class NormaRelacionadaForm(ModelForm): def save(self, commit=False): relacionada = super(NormaRelacionadaForm, self).save(commit) relacionada.norma_relacionada = self.cleaned_data['norma_relacionada'] + relacionada.norma_relacionada.data_vigencia = relacionada.norma_principal.data + relacionada.norma_relacionada.save() relacionada.save() return relacionada diff --git a/sapl/norma/migrations/0016_tipovinculonormajuridica_revoga_integramente.py b/sapl/norma/migrations/0016_tipovinculonormajuridica_revoga_integramente.py new file mode 100644 index 000000000..5a57c2d9f --- /dev/null +++ b/sapl/norma/migrations/0016_tipovinculonormajuridica_revoga_integramente.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.8 on 2018-11-23 14:51 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('norma', '0015_auto_20181109_1422'), + ] + + operations = [ + migrations.AddField( + model_name='tipovinculonormajuridica', + name='revoga_integramente', + field=models.BooleanField(choices=[(True, 'Sim'), (False, 'Não')], default=False, verbose_name='Revoga Integralmente?'), + ), + ] diff --git a/sapl/norma/models.py b/sapl/norma/models.py index fd06b553e..423a6bb69 100644 --- a/sapl/norma/models.py +++ b/sapl/norma/models.py @@ -258,6 +258,9 @@ class TipoVinculoNormaJuridica(models.Model): max_length=50, blank=True, verbose_name=_('Descrição Ativa')) descricao_passiva = models.CharField( max_length=50, blank=True, verbose_name=_('Descrição Passiva')) + revoga_integramente = models.BooleanField(verbose_name=_('Revoga Integralmente?'), + choices=YES_NO_CHOICES, + default=False) class Meta: verbose_name = _('Tipo de Vínculo entre Normas Jurídicas') diff --git a/sapl/norma/views.py b/sapl/norma/views.py index faca58d32..a9c6866cc 100644 --- a/sapl/norma/views.py +++ b/sapl/norma/views.py @@ -37,7 +37,7 @@ TipoNormaCrud = CrudAux.build( list_field_names=['sigla', 'descricao', 'equivalente_lexml']) TipoVinculoNormaJuridicaCrud = CrudAux.build( TipoVinculoNormaJuridica, '', - list_field_names=['sigla', 'descricao_ativa', 'descricao_passiva']) + list_field_names=['sigla', 'descricao_ativa', 'descricao_passiva', 'revoga_integramente']) class NormaRelacionadaCrud(MasterDetailCrud): diff --git a/sapl/templates/norma/layouts.yaml b/sapl/templates/norma/layouts.yaml index 295ef62d5..5a129d7cc 100644 --- a/sapl/templates/norma/layouts.yaml +++ b/sapl/templates/norma/layouts.yaml @@ -58,7 +58,7 @@ LegislacaoCitadaDetail: TipoVinculoNormaJuridica: {% trans 'Tipo de Vínculo entre Normas Jurídicas' %}: - - sigla:2 descricao_ativa descricao_passiva + - sigla:2 descricao_ativa descricao_passiva revoga_integramente NormaRelacionada: {% trans 'Norma Relacionada' %}: