From 715dd50b1510f38ebfadbb23343a10dca41afb38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Rodrigues?= Date: Tue, 26 Nov 2019 16:26:43 -0300 Subject: [PATCH] Add model e migrations --- .../migrations/0042_auto_20191126_1625.py | 44 +++++++ sapl/parlamentares/models.py | 112 ++++++++++++------ 2 files changed, 117 insertions(+), 39 deletions(-) create mode 100644 sapl/parlamentares/migrations/0042_auto_20191126_1625.py diff --git a/sapl/parlamentares/migrations/0042_auto_20191126_1625.py b/sapl/parlamentares/migrations/0042_auto_20191126_1625.py new file mode 100644 index 000000000..76552ed5d --- /dev/null +++ b/sapl/parlamentares/migrations/0042_auto_20191126_1625.py @@ -0,0 +1,44 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.20 on 2019-11-26 19:25 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('parlamentares', '0041_remove_frente_parlamentares'), + ] + + operations = [ + migrations.CreateModel( + name='ParlamentarBancada', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('data_entrada', models.DateField(verbose_name='Data Entrada')), + ('data_saida', models.DateField(blank=True, null=True, verbose_name='Data Saída')), + ('bancada', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='parlamentares.Bancada', verbose_name='Bancada')), + ], + options={ + 'verbose_name_plural': 'Parlamentares', + 'verbose_name': 'Parlamentar', + 'ordering': ('cargo',), + }, + ), + migrations.AlterModelOptions( + name='cargobancada', + options={'ordering': ('nome_cargo',), 'verbose_name': 'Cargo de Bancada', 'verbose_name_plural': 'Cargos de Bancada'}, + ), + migrations.AddField( + model_name='parlamentarbancada', + name='cargo', + field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='parlamentares.CargoBancada', verbose_name='Cargo'), + ), + migrations.AddField( + model_name='parlamentarbancada', + name='parlamentar', + field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='parlamentares.Parlamentar', verbose_name='Parlamentar'), + ), + ] diff --git a/sapl/parlamentares/models.py b/sapl/parlamentares/models.py index 965c2972a..da23adae9 100644 --- a/sapl/parlamentares/models.py +++ b/sapl/parlamentares/models.py @@ -709,32 +709,33 @@ class Bloco(models.Model): @reversion.register() class Bancada(models.Model): - legislatura = models.ForeignKey(Legislatura, - on_delete=models.PROTECT, - verbose_name=_('Legislatura')) - nome = models.CharField( - max_length=80, - verbose_name=_('Nome da Bancada')) - partido = models.ForeignKey(Partido, - blank=True, - null=True, - on_delete=models.PROTECT, - verbose_name=_('Partido')) - data_criacao = models.DateField(blank=False, null=True, - verbose_name=_('Data Criação')) - data_extincao = models.DateField(blank=True, null=True, - verbose_name=_('Data Extinção')) + legislatura = models.ForeignKey( + Legislatura, on_delete=models.PROTECT, verbose_name=_('Legislatura') + ) + nome = models.CharField(max_length=80, verbose_name=_('Nome da Bancada')) + partido = models.ForeignKey( + Partido, blank=True, null=True, on_delete=models.PROTECT, + verbose_name=_('Partido') + ) + data_criacao = models.DateField( + blank=False, null=True, verbose_name=_('Data Criação') + ) + data_extincao = models.DateField( + blank=True, null=True, verbose_name=_('Data Extinção') + ) descricao = models.TextField(blank=True, verbose_name=_('Descrição')) # campo conceitual de reversão genérica para o model Autor que dá a # o meio possível de localização de tipos de autores. - autor = SaplGenericRelation(Autor, related_query_name='bancada_set', - fields_search=( - ('nome', '__icontains'), - ('descricao', '__icontains'), - ('partido__sigla', '__icontains'), - ('partido__nome', '__icontains'), - )) + autor = SaplGenericRelation( + Autor, related_query_name='bancada_set', + fields_search=( + ('nome', '__icontains'), + ('descricao', '__icontains'), + ('partido__sigla', '__icontains'), + ('partido__nome', '__icontains'), + ) + ) class Meta: db_table = 'parlamentares_bancada' @@ -742,6 +743,56 @@ class Bancada(models.Model): verbose_name_plural = _('Bancadas Parlamentares') ordering = ('-legislatura__numero', ) + def __str__(self): + return self.nome + + +@reversion.register() +class CargoBancada(models.Model): + nome_cargo = models.CharField( + max_length=80, verbose_name=_('Cargo de Bancada') + ) + cargo_unico = models.BooleanField( + default=False, choices=YES_NO_CHOICES, verbose_name=_('Cargo Único ?') + ) + + class Meta: + db_table = 'parlamentares_cargobancada' + verbose_name = _('Cargo de Bancada') + verbose_name_plural = _('Cargos de Bancada') + ordering = ('nome_cargo',) + + def __str__(self): + return self.nome_cargo + + +@reversion.register() +class ParlamentarBancada(models.Model): + bancada = models.ForeignKey( + Bancada, verbose_name=_('Bancada'), on_delete=models.PROTECT + ) + parlamentar = models.ForeignKey( + Parlamentar, verbose_name=_('Parlamentar'), on_delete=models.PROTECT + ) + cargo = models.ForeignKey( + CargoBancada, verbose_name=_('Cargo'), on_delete=models.PROTECT + ) + data_entrada = models.DateField( + verbose_name=_('Data Entrada') + ) + data_saida = models.DateField( + blank=True, null=True, verbose_name=_('Data Saída') + ) + + class Meta: + verbose_name=_('Parlamentar') + verbose_name_plural=_('Parlamentares') + ordering=('cargo',) + + def __str__(self): + return "%s - %s" % (self.bancada, self.parlamentar) + + class CargoBloco(models.Model): class Meta: verbose_name = _('Cargo de Bloco') @@ -758,23 +809,6 @@ class CargoBloco(models.Model): return self.nome -@reversion.register() -class CargoBancada(models.Model): - nome_cargo = models.CharField(max_length=80, - verbose_name=_('Cargo de Bancada')) - - cargo_unico = models.BooleanField(default=False, - choices=YES_NO_CHOICES, - verbose_name=_('Cargo Único ?')) - - class Meta: - db_table = 'parlamentares_cargobancada' - verbose_name = _('Cargo de Bancada') - verbose_name_plural = _('Cargos de Bancada') - - def __str__(self): - return self.nome_cargo - class CargoBlocoPartido(models.Model): class Meta: verbose_name = _('Vinculo bloco parlamentar')