From b4e18c27c755d32065e7391a1c22df3bd6af4db3 Mon Sep 17 00:00:00 2001 From: Eliseu Egewarth Date: Mon, 4 Sep 2017 16:36:33 -0300 Subject: [PATCH] Fix #1388 tabela partidos pre populada (#1446) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Fix #1388 Signed-off-by: Eliseu Egewarth * Adiciona arquivo de Fixtures para partidos Signed-off-by: Eliseu Egewarth * Fixing implementation. Using Fixture file to populate database with default instances Signed-off-by: Eliseu Egewarth * Adiciona explicações sobre o funcionamento da migração 0007_adiciona_partidos.py Signed-off-by: Eliseu Egewarth --- .../fixtures/pre_popula_partidos.json | 282 ++++++++++++++++++ .../migrations/0007_adiciona_partidos.py | 40 +++ 2 files changed, 322 insertions(+) create mode 100644 sapl/parlamentares/fixtures/pre_popula_partidos.json create mode 100644 sapl/parlamentares/migrations/0007_adiciona_partidos.py diff --git a/sapl/parlamentares/fixtures/pre_popula_partidos.json b/sapl/parlamentares/fixtures/pre_popula_partidos.json new file mode 100644 index 000000000..8df0001c3 --- /dev/null +++ b/sapl/parlamentares/fixtures/pre_popula_partidos.json @@ -0,0 +1,282 @@ +[ + { + "model": "parlamentares.Partido", + "pk": 1, + "fields": { + "sigla": "PMDB", + "nome": "PARTIDO DO MOVIMENTO DEMOCRÁTICO BRASILEIRO" + } + }, + { + "model": "parlamentares.Partido", + "pk": 2, + "fields": { + "sigla": "PTB", + "nome": "PARTIDO TRABALHISTA BRASILEIRO" + } + }, + { + "model": "parlamentares.Partido", + "pk": 3, + "fields": { + "sigla": "PDT", + "nome": "PARTIDO DEMOCRÁTICO TRABALHISTA" + } + }, + { + "model": "parlamentares.Partido", + "pk": 4, + "fields": { + "sigla": "PT", + "nome": "PARTIDO DOS TRABALHADORES" + } + }, + { + "model": "parlamentares.Partido", + "pk": 5, + "fields": { + "sigla": "DEM", + "nome": "DEMOCRATAS" + } + }, + { + "model": "parlamentares.Partido", + "pk": 6, + "fields": { + "sigla": "PCdoB", + "nome": "PARTIDO COMUNISTA DO BRASIL" + } + }, + { + "model": "parlamentares.Partido", + "pk": 7, + "fields": { + "sigla": "PSB", + "nome": "PARTIDO SOCIALISTA BRASILEIRO" + } + }, + { + "model": "parlamentares.Partido", + "pk": 8, + "fields": { + "sigla": "PSDB", + "nome": "PARTIDO DA SOCIAL DEMOCRACIA BRASILEIRA" + } + }, + { + "model": "parlamentares.Partido", + "pk": 9, + "fields": { + "sigla": "PTC", + "nome": "PARTIDO TRABALHISTA CRISTÃO" + } + }, + { + "model": "parlamentares.Partido", + "pk": 10, + "fields": { + "sigla": "PSC", + "nome": "PARTIDO SOCIAL CRISTÃO" + } + }, + { + "model": "parlamentares.Partido", + "pk": 11, + "fields": { + "sigla": "PMN", + "nome": "PARTIDO DA MOBILIZAÇÃO NACIONAL" + } + }, + { + "model": "parlamentares.Partido", + "pk": 12, + "fields": { + "sigla": "PRP", + "nome": "PARTIDO REPUBLICANO PROGRESSISTA" + } + }, + { + "model": "parlamentares.Partido", + "pk": 13, + "fields": { + "sigla": "PPS", + "nome": "PARTIDO POPULAR SOCIALISTA" + } + }, + { + "model": "parlamentares.Partido", + "pk": 14, + "fields": { + "sigla": "PV", + "nome": "PARTIDO VERDE" + } + }, + { + "model": "parlamentares.Partido", + "pk": 15, + "fields": { + "sigla": "PTdoB", + "nome": "PARTIDO TRABALHISTA DO BRASIL" + } + }, + { + "model": "parlamentares.Partido", + "pk": 16, + "fields": { + "sigla": "PP", + "nome": "PARTIDO PROGRESSISTA" + } + }, + { + "model": "parlamentares.Partido", + "pk": 17, + "fields": { + "sigla": "PSTU", + "nome": "PARTIDO SOCIALISTA DOS TRABALHADORES UNIFICADO" + } + }, + { + "model": "parlamentares.Partido", + "pk": 18, + "fields": { + "sigla": "PCB", + "nome": "PARTIDO COMUNISTA BRASILEIRO" + } + }, + { + "model": "parlamentares.Partido", + "pk": 19, + "fields": { + "sigla": "PRTB", + "nome": "PARTIDO RENOVADOR TRABALHISTA BRASILEIRO" + } + }, + { + "model": "parlamentares.Partido", + "pk": 20, + "fields": { + "sigla": "PHS", + "nome": "PARTIDO HUMANISTA DA SOLIDARIEDADE" + } + }, + { + "model": "parlamentares.Partido", + "pk": 21, + "fields": { + "sigla": "PSDC", + "nome": "PARTIDO SOCIAL DEMOCRATA CRISTÃO" + } + }, + { + "model": "parlamentares.Partido", + "pk": 22, + "fields": { + "sigla": "PCO", + "nome": "PARTIDO DA CAUSA OPERÁRIA" + } + }, + { + "model": "parlamentares.Partido", + "pk": 23, + "fields": { + "sigla": "PODE", + "nome": "PODEMOS" + } + }, + { + "model": "parlamentares.Partido", + "pk": 24, + "fields": { + "sigla": "PSL", + "nome": "PARTIDO SOCIAL LIBERAL" + } + }, + { + "model": "parlamentares.Partido", + "pk": 25, + "fields": { + "sigla": "PRB", + "nome": "PARTIDO REPUBLICANO BRASILEIRO" + } + }, + { + "model": "parlamentares.Partido", + "pk": 26, + "fields": { + "sigla": "PSOL", + "nome": "PARTIDO SOCIALISMO E LIBERDADE" + } + }, + { + "model": "parlamentares.Partido", + "pk": 27, + "fields": { + "sigla": "PR", + "nome": "PARTIDO DA REPÚBLICA" + } + }, + { + "model": "parlamentares.Partido", + "pk": 28, + "fields": { + "sigla": "PSD", + "nome": "PARTIDO SOCIAL DEMOCRÁTICO" + } + }, + { + "model": "parlamentares.Partido", + "pk": 29, + "fields": { + "sigla": "PPL", + "nome": "PARTIDO PÁTRIA LIVRE" + } + }, + { + "model": "parlamentares.Partido", + "pk": 30, + "fields": { + "sigla": "PEN", + "nome": "PARTIDO ECOLÓGICO NACIONAL" + } + }, + { + "model": "parlamentares.Partido", + "pk": 31, + "fields": { + "sigla": "PROS", + "nome": "PARTIDO REPUBLICANO DA ORDEM SOCIAL" + } + }, + { + "model": "parlamentares.Partido", + "pk": 32, + "fields": { + "sigla": "SD", + "nome": "SOLIDARIEDADE" + } + }, + { + "model": "parlamentares.Partido", + "pk": 33, + "fields": { + "sigla": "NOVO", + "nome": "PARTIDO NOVO" + } + }, + { + "model": "parlamentares.Partido", + "pk": 34, + "fields": { + "sigla": "REDE", + "nome": "REDE SUSTENTABILIDADE" + } + }, + { + "model": "parlamentares.Partido", + "pk": 35, + "fields": { + "sigla": "PMB", + "nome": "PARTIDO DA MULHER BRASILEIRA" + } + } +] diff --git a/sapl/parlamentares/migrations/0007_adiciona_partidos.py b/sapl/parlamentares/migrations/0007_adiciona_partidos.py new file mode 100644 index 000000000..336e15d09 --- /dev/null +++ b/sapl/parlamentares/migrations/0007_adiciona_partidos.py @@ -0,0 +1,40 @@ +# -*- 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_partidos_tse(apps, schema_editor): + Partido = apps.get_model("parlamentares", "Partido") + db_alias = schema_editor.connection.alias + partidos = Partido.objects.all().exists() + + if partidos: + # Caso haja algum partido cadastrado na base de dados, + # a migração não deve ser carregada para evitar duplicações de dados. + print("Carga de Partido não efetuada. Já Existem partidos cadastrados...") + 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_partidos.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', '0006_auto_20170831_1400'), + ] + + operations = [ + migrations.RunPython(gera_partidos_tse), + ]