diff --git a/sapl/norma/fixtures/pre_popula_tipo_vinculo_norma.json b/sapl/norma/fixtures/pre_popula_tipo_vinculo_norma.json new file mode 100644 index 000000000..50c6ad647 --- /dev/null +++ b/sapl/norma/fixtures/pre_popula_tipo_vinculo_norma.json @@ -0,0 +1,119 @@ +[ + { + "fields": { + "descricao_ativa": "Altera o(a)", + "descricao_passiva": "Alterado(a) pelo(a)", + "sigla": "A" + }, + "model": "norma.TipoVinculoNormaJuridica", + "pk": "1" + }, + { + "fields": { + "descricao_ativa": "Revoga integralmente o(a)", + "descricao_passiva": "Revogado(a) integralmente pelo(a)", + "sigla": "R" + }, + "model": "norma.TipoVinculoNormaJuridica", + "pk": "2" + }, + { + "fields": { + "descricao_ativa": "Revoga parcialmente o(a)", + "descricao_passiva": "Revogado(a) parcialmente pelo(a)", + "sigla": "P" + }, + "model": "norma.TipoVinculoNormaJuridica", + "pk": "3" + }, + { + "fields": { + "descricao_ativa": "Revoga integralmente por consolida\u00e7\u00e3o", + "descricao_passiva": "Revogado(a) integralmente por consolida\u00e7\u00e3o", + "sigla": "T" + }, + "model": "norma.TipoVinculoNormaJuridica", + "pk": "4" + }, + { + "fields": { + "descricao_ativa": "Norma correlata", + "descricao_passiva": "Norma correlata", + "sigla": "C" + }, + "model": "norma.TipoVinculoNormaJuridica", + "pk": "5" + }, + { + "fields": { + "descricao_ativa": "Ressalva o(a)", + "descricao_passiva": "Ressalvada pelo(a)", + "sigla": "S" + }, + "model": "norma.TipoVinculoNormaJuridica", + "pk": "6" + }, + { + "fields": { + "descricao_ativa": "Reedita o(a)", + "descricao_passiva": "Reeditada pelo(a)", + "sigla": "E" + }, + "model": "norma.TipoVinculoNormaJuridica", + "pk": "7" + }, + { + "fields": { + "descricao_ativa": "Reedita com altera\u00e7\u00e3o o(a)", + "descricao_passiva": "Reeditada com altera\u00e7\u00e3o pelo(a)", + "sigla": "I" + }, + "model": "norma.TipoVinculoNormaJuridica", + "pk": "8" + }, + { + "fields": { + "descricao_ativa": "Regulamenta o(a)", + "descricao_passiva": "Regulamentada pelo(a)", + "sigla": "G" + }, + "model": "norma.TipoVinculoNormaJuridica", + "pk": "9" + }, + { + "fields": { + "descricao_ativa": "Suspende parcialmente o(a)", + "descricao_passiva": "Suspenso(a) parcialmente pelo(a)", + "sigla": "K" + }, + "model": "norma.TipoVinculoNormaJuridica", + "pk": "10" + }, + { + "fields": { + "descricao_ativa": "Suspende integralmente o(a)", + "descricao_passiva": "Suspenso(a) integralmente pelo(a)", + "sigla": "L" + }, + "model": "norma.TipoVinculoNormaJuridica", + "pk": "11" + }, + { + "fields": { + "descricao_ativa": "Julga integralmente inconstitucional", + "descricao_passiva": "Julgada integralmente inconstitucional", + "sigla": "N" + }, + "model": "norma.TipoVinculoNormaJuridica", + "pk": "12" + }, + { + "fields": { + "descricao_ativa": "Julga parcialmente inconstitucional", + "descricao_passiva": "Julgada parcialmente inconstitucional", + "sigla": "O" + }, + "model": "norma.TipoVinculoNormaJuridica", + "pk": "13" + } +] \ No newline at end of file diff --git a/sapl/norma/migrations/0008_normajuridica_popula_tipo_vinculo_norma.py b/sapl/norma/migrations/0008_normajuridica_popula_tipo_vinculo_norma.py new file mode 100644 index 000000000..3bfb90132 --- /dev/null +++ b/sapl/norma/migrations/0008_normajuridica_popula_tipo_vinculo_norma.py @@ -0,0 +1,39 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +import os + +from django.core.management import call_command +from django.db import migrations + + +def gera_tipo_vinculo(apps, schema_editor): + TipoVinculoNormaJuridica = apps.get_model("norma", "TipoVinculoNormaJuridica") + + db_alias = schema_editor.connection.alias + tipo_vinculos = TipoVinculoNormaJuridica.objects.all().exists() + + if tipo_vinculos: + # Caso haja algum TipoVinculoNormaJuridica cadastrado na base de dados, + # a migração não deve ser carregada para evitar duplicações de dados. + print("Carga de {} não efetuada. Já Existem {} cadastrados...".format( + TipoVinculoNormaJuridica._meta.verbose_name, + TipoVinculoNormaJuridica._meta.verbose_name_plural + ) + ) + else: + fixture_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), '../fixtures')) + # pega tipo_vinculo_norma_juridica listados em fixtures/pre_popula_tipo_vinculo_norma.json + fixture_filename = 'pre_popula_tipo_vinculo_norma.json' + fixture_file = os.path.join(fixture_dir, fixture_filename) + call_command('loaddata', fixture_file) + +class Migration(migrations.Migration): + + dependencies = [ + ('norma', '0007_auto_20170904_1708'), + ] + + operations = [ + migrations.RunPython(gera_tipo_vinculo), + ] \ No newline at end of file