From 70a9fb94ec10184c6178c8176cf82a14590cadad Mon Sep 17 00:00:00 2001 From: Eliseu Egewarth Date: Mon, 4 Sep 2017 18:54:47 -0300 Subject: [PATCH] Fix #1389 tabela cargos mesa diretora (#1450) * Adiciona arquivo fixtures/pre_popula_cargosmesa.json Signed-off-by: Eliseu Egewarth * Fix #1389 Signed-off-by: Eliseu Egewarth --- .../fixtures/pre_popula_cargosmesa.json | 37 +++++++++++++++++ .../migrations/0008_adiciona_cargos_mesa.py | 41 +++++++++++++++++++ 2 files changed, 78 insertions(+) create mode 100644 sapl/parlamentares/fixtures/pre_popula_cargosmesa.json create mode 100644 sapl/parlamentares/migrations/0008_adiciona_cargos_mesa.py diff --git a/sapl/parlamentares/fixtures/pre_popula_cargosmesa.json b/sapl/parlamentares/fixtures/pre_popula_cargosmesa.json new file mode 100644 index 000000000..b93376bc0 --- /dev/null +++ b/sapl/parlamentares/fixtures/pre_popula_cargosmesa.json @@ -0,0 +1,37 @@ +[ + { + "model": "parlamentares.CargoMesa", + "pk": 1, + "fields": { + "descricao": "Presidente", + "unico": true + } + }, + { + "model": "parlamentares.CargoMesa", + "pk": 2, + "fields": { + "descricao": "Vice-Presidente", + "unico": true + } + }, + { + "model": "parlamentares.CargoMesa", + "pk": 3, + "fields": { + "descricao": "Primeiro-Secretário", + "unico": true + } + }, + { + "model": "parlamentares.CargoMesa", + "pk": 4, + "fields": { + "descricao": "Segundo-Secretário", + "unico": true + } + } +] + + + diff --git a/sapl/parlamentares/migrations/0008_adiciona_cargos_mesa.py b/sapl/parlamentares/migrations/0008_adiciona_cargos_mesa.py new file mode 100644 index 000000000..fe88e6196 --- /dev/null +++ b/sapl/parlamentares/migrations/0008_adiciona_cargos_mesa.py @@ -0,0 +1,41 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals +from django.db import migrations +import json +import os + + +from django.core.management import call_command + + + +def gera_cargos_mesa(apps, schema_editor): + CargoMesa = apps.get_model("parlamentares", "CargoMesa") + db_alias = schema_editor.connection.alias + cargos_mesa = CargoMesa.objects.all().exists() + + if cargos_mesa: + # Caso haja algum CargoMesa 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( + CargoMesa._meta.verbose_name, CargoMesa._meta.verbose_name_plural)) + else: + fixture_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), '../fixtures')) + # pega partidos listados em fixtures/pre_popula_partidos.json + fixture_filename = 'pre_popula_cargosmesa.json' + fixture_file = os.path.join(fixture_dir, fixture_filename) + call_command('loaddata', fixture_file) + +class Migration(migrations.Migration): + + dependencies = [ + # A dependencia real desse script é o arquivo 0001_initial.py, mas + # isso gera um erro (Conflicting migrations detected; multiple leaf + # nodes in the migration graph). para não ocasionar problemas de migração, + # vamos manter a ordem padrão do django. + ('parlamentares', '0007_adiciona_partidos'), + ] + + operations = [ + migrations.RunPython(gera_cargos_mesa), + ]