Browse Source

Iniciando correcoes do pr

pull/2608/head
ulyssesBML 7 years ago
parent
commit
2542b2db96
  1. 29
      sapl/base/forms.py
  2. 25
      sapl/parlamentares/migrations/0033_auto_20190516_0843.py
  3. 6
      sapl/parlamentares/models.py
  4. 7
      sapl/parlamentares/views.py
  5. 1
      sapl/sessao/views.py
  6. 6
      sapl/utils.py

29
sapl/base/forms.py

@ -38,7 +38,8 @@ from sapl.utils import (RANGE_ANOS, YES_NO_CHOICES,
RangeWidgetOverride, autor_label, autor_modal,
models_with_gr_for_model, qs_override_django_filter,
choice_anos_com_normas, choice_anos_com_materias,
FilterOverridesMetaMixin, FileFieldCheckMixin)
FilterOverridesMetaMixin, FileFieldCheckMixin,
intervalos_tem_intersecao)
from .models import AppConfig, CasaLegislativa
from operator import xor
@ -1428,7 +1429,7 @@ class PartidoForm(FileFieldCheckMixin, ModelForm):
partido = Partido.objects.get(pk=self.instance.pk)
if xor(cleaned_data['sigla'] == partido.sigla, cleaned_data['nome'] == partido.nome):
raise ValidationError(_('O Partido deve ter um novo Nome e uma nova Sigla.'))
raise ValidationError(_('O Partido deve ter um novo nome e uma nova sigla.'))
cleaned_data.update({'partido': partido})
@ -1470,27 +1471,29 @@ class PartidoUpdateForm(PartidoForm):
)
def clean(self):
super(PartidoUpdateForm,self).clean()
cleaned_data = self.cleaned_data
cleaned_data = super(PartidoUpdateForm,self).clean()
if not self.is_valid():
return cleaned_data
is_historico = (cleaned_data['historico'] == 'True')
is_historico = cleaned_data['historico'] == 'True'
if is_historico:
if not cleaned_data['data_criacao'] or not cleaned_data['data_extincao']:
raise ValidationError("Certifique-se de que a data de inicio e fim de historico estão preenchidas")
raise ValidationError("Certifique-se de que a data de inicio e fim de historico estão preenchidas")
if self.instance.data_criacao and self.instance.data_criacao > cleaned_data['data_criacao']:
raise ValidationError("Data de inicio de historico deve ser posterior a data de criação do partido.")
raise ValidationError("Data de inicio de historico deve ser posterior a data de criação do partido.")
if self.instance.data_extincao and self.instance.data_extincao < cleaned_data['data_extincao']:
raise ValidationError("Data de fim de historico deve ser anterior a data de extinção do partido.")
raise ValidationError("Data de fim de historico deve ser anterior a data de extinção do partido.")
if self.instance.pk:
partido = Partido.objects.get(pk=self.instance.pk)
historico = HistoricoPartido.objects.filter(partido=partido).order_by('-inicio_historico')
for h in historico:
if (h.inicio_historico < cleaned_data['data_extincao'] and \
h.inicio_historico > cleaned_data['data_criacao']) or \
(h.fim_historico < cleaned_data['data_extincao'] and \
h.fim_historico > cleaned_data['data_criacao']):
if intervalos_tem_intersecao(h.inicio_historico,
h.fim_historico,
cleaned_data['data_criacao'],
cleaned_data['data_extincao']):
raise ValidationError("Periodo selecionado ja possui um histórico.")
return cleaned_data
@ -1499,7 +1502,7 @@ class PartidoUpdateForm(PartidoForm):
partido = self.instance
cleaned_data = self.cleaned_data
is_historico = (cleaned_data['historico'] == 'True')
is_historico = cleaned_data['historico'] == 'True'
if not is_historico:
partido.save(commit)

25
sapl/parlamentares/migrations/0033_auto_20190516_0843.py

@ -0,0 +1,25 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.20 on 2019-05-16 11:43
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('parlamentares', '0032_merge_20190507_0857'),
]
operations = [
migrations.AlterField(
model_name='historicopartido',
name='fim_historico',
field=models.DateField(verbose_name='Data Alteração'),
),
migrations.AlterField(
model_name='historicopartido',
name='inicio_historico',
field=models.DateField(verbose_name='Data Alteração'),
),
]

6
sapl/parlamentares/models.py

@ -154,12 +154,10 @@ class HistoricoPartido(models.Model):
verbose_name=_('Nome')
)
inicio_historico = models.DateField(
default=timezone.now,
verbose_name=_('Data Alteração')
)
fim_historico = models.DateField(
default=timezone.now,
verbose_name=_('Data Alteração')
)
@ -444,10 +442,10 @@ class Filiacao(models.Model):
# parlamentares e tela de Filiações do Parlamentar
ordering = ('parlamentar', '-data', '-data_desfiliacao')
def get_nome_partido_no_ano(self, ano):
def get_nome_partido_ano(self, ano):
historico = HistoricoPartido.objects.filter(partido=self.partido)
for h in historico:
if ano > h.inicio_historico.year and ano < h.fim_historico.year:
if h.inicio_historico.year <= ano <= h.fim_historico.year:
return h
return self.partido

7
sapl/parlamentares/views.py

@ -684,10 +684,7 @@ class ParlamentarCrud(Crud):
partido_aux = filiacao.partido
historico = HistoricoPartido.objects.filter(partido=partido_aux).order_by('-fim_historico')
if historico:
for p in historico:
if p.inicio_historico < legislatura.data_fim and p.fim_historico >= legislatura.data_fim:
partido_aux = p
break
partido_aux = next(iter([p for p in historico if p.inicio_historico < legislatura.data_fim <= p.fim_historico]), filiacao.partido)
row[1] = (partido_aux.sigla, None, None)
@ -1081,7 +1078,7 @@ def partido_parlamentar_sessao_legislativa(sessao, parlamentar):
logger.info("Filiação do parlamentar com (data<={} e data_desfiliacao>={}) "
"ou (data<={} e data_desfiliacao=Null encontrada com sucesso."
.format(sessao.data_fim, sessao.data_fim, sessao.data_fim))
return filiacao.get_nome_partido_no_ano(sessao.data_fim.year).sigla
return filiacao.get_nome_partido_ano(sessao.data_fim.year).sigla
def altera_field_mesa_public_view(request):

1
sapl/sessao/views.py

@ -1626,7 +1626,6 @@ def get_oradores_explicações_pessoais(sessao_plenaria):
if not partido_sigla:
sigla = ''
else:
sigla = filiacao_data(parlamentar, sessao_plenaria.data_inicio)
sigla = partido_sigla.partido.sigla
oradores = {
'numero_ordem': orador.numero_ordem,

6
sapl/utils.py

@ -818,11 +818,9 @@ def filiacao_data(parlamentar, data_inicio, data_fim=None):
data__gte=data_inicio,
data__lte=data_fim)
data_referencia = data_inicio
if data_fim:
data_referencia = data_fim
data_referencia = data_fim if data_fim else data_inicio
return ' | '.join([f.get_nome_partido_no_ano(data_referencia.year).sigla for f in filiacoes])
return ' | '.join([f.get_nome_partido_ano(data_referencia.year).sigla for f in filiacoes])
def parlamentares_ativos(data_inicio, data_fim=None):

Loading…
Cancel
Save