Browse Source

ajustas heranças de seleção baseada em content_types

- muda BancadaCrud(Crud) para BancadaCrud(CrudAux) e BlocoCrud(Crud)
para BlocoCrud(CrudAux) e adequa forma de buscar TipoAutor em metodos
save de formulários que criam Autores automaticamente.
pull/2490/head
Leandro Roberto 6 years ago
parent
commit
4cdc78788f
  1. 118
      sapl/comissoes/forms.py
  2. 2
      sapl/materia/forms.py
  3. 61
      sapl/parlamentares/forms.py
  4. 4
      sapl/sessao/forms.py
  5. 17
      sapl/sessao/views.py

118
sapl/comissoes/forms.py

@ -13,10 +13,13 @@ from sapl.comissoes.models import (Comissao, Composicao, DocumentoAcessorio,
Participacao, Reuniao, Periodo) Participacao, Reuniao, Periodo)
from sapl.parlamentares.models import Legislatura, Mandato, Parlamentar from sapl.parlamentares.models import Legislatura, Mandato, Parlamentar
class ComposicaoForm(forms.ModelForm): class ComposicaoForm(forms.ModelForm):
comissao = forms.CharField(required=False, label='Comissao', widget=forms.HiddenInput()) comissao = forms.CharField(
required=False, label='Comissao', widget=forms.HiddenInput())
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
class Meta: class Meta:
model = Composicao model = Composicao
exclude = [] exclude = []
@ -43,8 +46,8 @@ class ComposicaoForm(forms.ModelForm):
if intersecao_periodo: if intersecao_periodo:
self.logger.error('O período informado ({} a {})' self.logger.error('O período informado ({} a {})'
'choca com períodos já ' 'choca com períodos já '
'cadastrados para esta comissão'.format(periodo.data_inicio, periodo.data_fim)) 'cadastrados para esta comissão'.format(periodo.data_inicio, periodo.data_fim))
raise ValidationError('O período informado ' raise ValidationError('O período informado '
'choca com períodos já ' 'choca com períodos já '
'cadastrados para esta comissão') 'cadastrados para esta comissão')
@ -55,6 +58,7 @@ class ComposicaoForm(forms.ModelForm):
class PeriodoForm(forms.ModelForm): class PeriodoForm(forms.ModelForm):
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
class Meta: class Meta:
model = Periodo model = Periodo
exclude = [] exclude = []
@ -70,31 +74,29 @@ class PeriodoForm(forms.ModelForm):
if data_fim and data_fim < data_inicio: if data_fim and data_fim < data_inicio:
self.logger.error('A Data Final ({}) é menor que ' self.logger.error('A Data Final ({}) é menor que '
'a Data Inicial({}).'.format(data_fim, data_inicio)) 'a Data Inicial({}).'.format(data_fim, data_inicio))
raise ValidationError('A Data Final não pode ser menor que ' raise ValidationError('A Data Final não pode ser menor que '
'a Data Inicial') 'a Data Inicial')
# Evita NoneType exception se não preenchida a data_fim # Evita NoneType exception se não preenchida a data_fim
if not data_fim: if not data_fim:
data_fim = data_inicio data_fim = data_inicio
legislatura = Legislatura.objects.filter(data_inicio__lte=data_inicio, legislatura = Legislatura.objects.filter(data_inicio__lte=data_inicio,
data_fim__gte=data_fim, data_fim__gte=data_fim,
) )
if not legislatura: if not legislatura:
self.logger.error('O período informado ({} a {})' self.logger.error('O período informado ({} a {})'
'não está contido em uma única ' 'não está contido em uma única '
'legislatura existente'.format(data_inicio, data_fim)) 'legislatura existente'.format(data_inicio, data_fim))
raise ValidationError('O período informado ' raise ValidationError('O período informado '
'deve estar contido em uma única ' 'deve estar contido em uma única '
'legislatura existente') 'legislatura existente')
return cleaned_data return cleaned_data
class ParticipacaoCreateForm(forms.ModelForm): class ParticipacaoCreateForm(forms.ModelForm):
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
@ -122,9 +124,9 @@ class ParticipacaoCreateForm(forms.ModelForm):
parlamentares = Mandato.objects.filter(qs, parlamentares = Mandato.objects.filter(qs,
parlamentar__ativo=True parlamentar__ativo=True
).prefetch_related('parlamentar').\ ).prefetch_related('parlamentar').\
values_list('parlamentar', values_list('parlamentar',
flat=True flat=True
).distinct() ).distinct()
qs = Parlamentar.objects.filter(id__in=parlamentares).distinct().\ qs = Parlamentar.objects.filter(id__in=parlamentares).distinct().\
exclude(id__in=id_part) exclude(id__in=id_part)
@ -137,7 +139,6 @@ class ParticipacaoCreateForm(forms.ModelForm):
qs = Parlamentar.objects.filter(id__in=ids) qs = Parlamentar.objects.filter(id__in=ids)
self.fields['parlamentar'].queryset = qs self.fields['parlamentar'].queryset = qs
def clean(self): def clean(self):
cleaned_data = super(ParticipacaoCreateForm, self).clean() cleaned_data = super(ParticipacaoCreateForm, self).clean()
@ -148,22 +149,23 @@ class ParticipacaoCreateForm(forms.ModelForm):
data_desligamento = cleaned_data['data_desligamento'] data_desligamento = cleaned_data['data_desligamento']
if data_desligamento and \ if data_desligamento and \
data_designacao > data_desligamento: data_designacao > data_desligamento:
self.logger.error('Data de designação ({}) superior ' self.logger.error('Data de designação ({}) superior '
'à data de desligamento ({})'.format(data_designacao, data_desligamento)) 'à data de desligamento ({})'.format(data_designacao, data_desligamento))
raise ValidationError(_('Data de designação não pode ser superior ' raise ValidationError(_('Data de designação não pode ser superior '
'à data de desligamento')) 'à data de desligamento'))
composicao = Composicao.objects.get(id=self.initial['parent_pk']) composicao = Composicao.objects.get(id=self.initial['parent_pk'])
cargos_unicos = [c.cargo.nome for c in composicao.participacao_set.filter(cargo__unico=True)] cargos_unicos = [
c.cargo.nome for c in composicao.participacao_set.filter(cargo__unico=True)]
if cleaned_data['cargo'].nome in cargos_unicos: if cleaned_data['cargo'].nome in cargos_unicos:
msg = _('Este cargo é único para esta Comissão.') msg = _('Este cargo é único para esta Comissão.')
self.logger.error('Este cargo ({}) é único para esta Comissão.'.format(cleaned_data['cargo'].nome)) self.logger.error('Este cargo ({}) é único para esta Comissão.'.format(
cleaned_data['cargo'].nome))
raise ValidationError(msg) raise ValidationError(msg)
return cleaned_data return cleaned_data
def create_participacao(self): def create_participacao(self):
composicao = Composicao.objects.get(id=self.initial['parent_pk']) composicao = Composicao.objects.get(id=self.initial['parent_pk'])
data_inicio_comissao = composicao.periodo.data_inicio data_inicio_comissao = composicao.periodo.data_inicio
@ -237,9 +239,9 @@ class ParticipacaoEditForm(forms.ModelForm):
if data_desligamento and \ if data_desligamento and \
data_designacao > data_desligamento: data_designacao > data_desligamento:
self.logger.error('Data de designação ({}) superior ' self.logger.error('Data de designação ({}) superior '
'à data de desligamento ({})'.format(data_designacao, data_desligamento)) 'à data de desligamento ({})'.format(data_designacao, data_desligamento))
raise ValidationError(_('Data de designação não pode ser superior ' raise ValidationError(_('Data de designação não pode ser superior '
'à data de desligamento')) 'à data de desligamento'))
composicao_id = self.instance.composicao_id composicao_id = self.instance.composicao_id
@ -250,7 +252,7 @@ class ParticipacaoEditForm(forms.ModelForm):
if cleaned_data['cargo'].nome in cargos_unicos: if cleaned_data['cargo'].nome in cargos_unicos:
msg = _('Este cargo é único para esta Comissão.') msg = _('Este cargo é único para esta Comissão.')
self.logger.error('Este cargo ({}) é único para esta Comissão (id={}).' self.logger.error('Este cargo ({}) é único para esta Comissão (id={}).'
.format(cleaned_data['cargo'].nome, composicao_id)) .format(cleaned_data['cargo'].nome, composicao_id))
raise ValidationError(msg) raise ValidationError(msg)
return cleaned_data return cleaned_data
@ -259,6 +261,7 @@ class ParticipacaoEditForm(forms.ModelForm):
class ComissaoForm(forms.ModelForm): class ComissaoForm(forms.ModelForm):
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
class Meta: class Meta:
model = Comissao model = Comissao
fields = '__all__' fields = '__all__'
@ -274,8 +277,6 @@ class ComissaoForm(forms.ModelForm):
self.fields['data_prorrogada_temp'].widget.attrs['disabled'] = 'disabled' self.fields['data_prorrogada_temp'].widget.attrs['disabled'] = 'disabled'
self.fields['data_fim_comissao'].widget.attrs['disabled'] = 'disabled' self.fields['data_fim_comissao'].widget.attrs['disabled'] = 'disabled'
def clean(self): def clean(self):
super(ComissaoForm, self).clean() super(ComissaoForm, self).clean()
@ -283,51 +284,54 @@ class ComissaoForm(forms.ModelForm):
return self.cleaned_data return self.cleaned_data
if len(self.cleaned_data['nome']) > 100: if len(self.cleaned_data['nome']) > 100:
msg = _('Nome da Comissão informado ({}) tem mais de 50 caracteres.'.format(self.cleaned_data['nome'])) msg = _('Nome da Comissão informado ({}) tem mais de 50 caracteres.'.format(
self.logger.error('Nome da Comissão deve ter no máximo 50 caracteres.') self.cleaned_data['nome']))
self.logger.error(
'Nome da Comissão deve ter no máximo 50 caracteres.')
raise ValidationError(msg) raise ValidationError(msg)
if (self.cleaned_data['data_extincao'] and if (self.cleaned_data['data_extincao'] and
self.cleaned_data['data_extincao'] < self.cleaned_data['data_extincao'] <
self.cleaned_data['data_criacao']): self.cleaned_data['data_criacao']):
msg = _('Data de extinção não pode ser menor que a de criação') msg = _('Data de extinção não pode ser menor que a de criação')
self.logger.error('Data de extinção ({}) não pode ser menor que a de criação ({}).' self.logger.error('Data de extinção ({}) não pode ser menor que a de criação ({}).'
.format(self.cleaned_data['data_extincao'],self.cleaned_data['data_criacao'])) .format(self.cleaned_data['data_extincao'], self.cleaned_data['data_criacao']))
raise ValidationError(msg) raise ValidationError(msg)
if (self.cleaned_data['data_final_prevista_temp'] and if (self.cleaned_data['data_final_prevista_temp'] and
self.cleaned_data['data_final_prevista_temp'] < self.cleaned_data['data_final_prevista_temp'] <
self.cleaned_data['data_criacao']): self.cleaned_data['data_criacao']):
msg = _('Data Prevista para Término não pode ser menor que a de criação') msg = _('Data Prevista para Término não pode ser menor que a de criação')
self.logger.error('Data Prevista para Término ({}) não pode ser menor que a de criação ({}).' self.logger.error('Data Prevista para Término ({}) não pode ser menor que a de criação ({}).'
.format(self.cleaned_data['data_final_prevista_temp'], self.cleaned_data['data_criacao'])) .format(self.cleaned_data['data_final_prevista_temp'], self.cleaned_data['data_criacao']))
raise ValidationError(msg) raise ValidationError(msg)
if (self.cleaned_data['data_prorrogada_temp'] and if (self.cleaned_data['data_prorrogada_temp'] and
self.cleaned_data['data_prorrogada_temp'] < self.cleaned_data['data_prorrogada_temp'] <
self.cleaned_data['data_criacao']): self.cleaned_data['data_criacao']):
msg = _('Data Novo Prazo não pode ser menor que a de criação') msg = _('Data Novo Prazo não pode ser menor que a de criação')
self.logger.error('Data Novo Prazo ({}) não pode ser menor que a de criação ({}).' self.logger.error('Data Novo Prazo ({}) não pode ser menor que a de criação ({}).'
.format(self.cleaned_data['data_prorrogada_temp'], self.cleaned_data['data_criacao'])) .format(self.cleaned_data['data_prorrogada_temp'], self.cleaned_data['data_criacao']))
raise ValidationError(msg) raise ValidationError(msg)
if (self.cleaned_data['data_instalacao_temp'] and if (self.cleaned_data['data_instalacao_temp'] and
self.cleaned_data['data_instalacao_temp'] < self.cleaned_data['data_instalacao_temp'] <
self.cleaned_data['data_criacao']): self.cleaned_data['data_criacao']):
msg = _('Data de Instalação não pode ser menor que a de criação') msg = _('Data de Instalação não pode ser menor que a de criação')
self.logger.error('Data de Instalação ({}) não pode ser menor que a de criação ({}).' self.logger.error('Data de Instalação ({}) não pode ser menor que a de criação ({}).'
.format(self.cleaned_data['data_instalacao_temp'], self.cleaned_data['data_criacao'])) .format(self.cleaned_data['data_instalacao_temp'], self.cleaned_data['data_criacao']))
raise ValidationError(msg) raise ValidationError(msg)
if (self.cleaned_data['data_final_prevista_temp'] and self.cleaned_data['data_instalacao_temp'] and if (self.cleaned_data['data_final_prevista_temp'] and self.cleaned_data['data_instalacao_temp'] and
self.cleaned_data['data_final_prevista_temp'] < self.cleaned_data['data_final_prevista_temp'] <
self.cleaned_data['data_instalacao_temp']): self.cleaned_data['data_instalacao_temp']):
msg = _('Data Prevista para Término não pode ser menor que a de Instalação.') msg = _(
self.logger.error('Data Prevista para Término ({}) não pode ser menor que a de Instalação ({}).' 'Data Prevista para Término não pode ser menor que a de Instalação.')
.format(self.cleaned_data['data_final_prevista_temp'], self.cleaned_data['data_instalacao_temp'])) self.logger.error('Data Prevista para Término ({}) não pode ser menor que a de Instalação ({}).'
raise ValidationError(msg) .format(self.cleaned_data['data_final_prevista_temp'], self.cleaned_data['data_instalacao_temp']))
raise ValidationError(msg)
if (self.cleaned_data['data_prorrogada_temp'] and self.cleaned_data['data_instalacao_temp'] and if (self.cleaned_data['data_prorrogada_temp'] and self.cleaned_data['data_instalacao_temp'] and
self.cleaned_data['data_prorrogada_temp'] < self.cleaned_data['data_prorrogada_temp'] <
self.cleaned_data['data_instalacao_temp']): self.cleaned_data['data_instalacao_temp']):
msg = _('Data Novo Prazo não pode ser menor que a de Instalação.') msg = _('Data Novo Prazo não pode ser menor que a de Instalação.')
self.logger.error('Data Novo Prazo ({}) não pode ser menor que a de Instalação ({}).' self.logger.error('Data Novo Prazo ({}) não pode ser menor que a de Instalação ({}).'
.format(self.cleaned_data['data_prorrogada_temp'], self.cleaned_data['data_instalacao_temp'])) .format(self.cleaned_data['data_prorrogada_temp'], self.cleaned_data['data_instalacao_temp']))
raise ValidationError(msg) raise ValidationError(msg)
return self.cleaned_data return self.cleaned_data
@transaction.atomic @transaction.atomic
@ -337,7 +341,7 @@ class ComissaoForm(forms.ModelForm):
comissao = super(ComissaoForm, self).save(commit) comissao = super(ComissaoForm, self).save(commit)
content_type = ContentType.objects.get_for_model(Comissao) content_type = ContentType.objects.get_for_model(Comissao)
object_id = comissao.pk object_id = comissao.pk
tipo = TipoAutor.objects.get(descricao__icontains='Comiss') tipo = TipoAutor.objects.get(content_type=content_type)
nome = comissao.sigla + ' - ' + comissao.nome nome = comissao.sigla + ' - ' + comissao.nome
Autor.objects.create( Autor.objects.create(
content_type=content_type, content_type=content_type,
@ -363,7 +367,6 @@ class ReuniaoForm(ModelForm):
def clean(self): def clean(self):
super(ReuniaoForm, self).clean() super(ReuniaoForm, self).clean()
if not self.is_valid(): if not self.is_valid():
return self.cleaned_data return self.cleaned_data
@ -371,12 +374,14 @@ class ReuniaoForm(ModelForm):
if self.cleaned_data['hora_fim']: if self.cleaned_data['hora_fim']:
if (self.cleaned_data['hora_fim'] < if (self.cleaned_data['hora_fim'] <
self.cleaned_data['hora_inicio']): self.cleaned_data['hora_inicio']):
msg = _('A hora de término da reunião não pode ser menor que a de início') msg = _(
'A hora de término da reunião não pode ser menor que a de início')
self.logger.error("A hora de término da reunião ({}) não pode ser menor que a de início ({})." self.logger.error("A hora de término da reunião ({}) não pode ser menor que a de início ({})."
.format(self.cleaned_data['hora_fim'], self.cleaned_data['hora_inicio'])) .format(self.cleaned_data['hora_fim'], self.cleaned_data['hora_inicio']))
raise ValidationError(msg) raise ValidationError(msg)
return self.cleaned_data return self.cleaned_data
class DocumentoAcessorioCreateForm(forms.ModelForm): class DocumentoAcessorioCreateForm(forms.ModelForm):
parent_pk = forms.CharField(required=False) # widget=forms.HiddenInput()) parent_pk = forms.CharField(required=False) # widget=forms.HiddenInput())
@ -395,7 +400,6 @@ class DocumentoAcessorioCreateForm(forms.ModelForm):
documentos = reuniao.documentoacessorio_set.all() documentos = reuniao.documentoacessorio_set.all()
return self.create_documentoacessorio() return self.create_documentoacessorio()
def create_documentoacessorio(self): def create_documentoacessorio(self):
reuniao = Reuniao.objects.get(id=self.initial['parent_pk']) reuniao = Reuniao.objects.get(id=self.initial['parent_pk'])

2
sapl/materia/forms.py

@ -96,7 +96,7 @@ class OrgaoForm(ModelForm):
orgao = super(OrgaoForm, self).save(commit) orgao = super(OrgaoForm, self).save(commit)
content_type = ContentType.objects.get_for_model(Orgao) content_type = ContentType.objects.get_for_model(Orgao)
object_id = orgao.pk object_id = orgao.pk
tipo = TipoAutor.objects.get(descricao='Órgão') tipo = TipoAutor.objects.get(content_type=content_type)
nome = orgao.nome + ' - ' + orgao.sigla nome = orgao.nome + ' - ' + orgao.sigla
Autor.objects.create( Autor.objects.create(
content_type=content_type, content_type=content_type,

61
sapl/parlamentares/forms.py

@ -1,6 +1,5 @@
import logging
from datetime import timedelta from datetime import timedelta
import logging
from crispy_forms.helper import FormHelper from crispy_forms.helper import FormHelper
from crispy_forms.layout import Fieldset, Layout from crispy_forms.layout import Fieldset, Layout
@ -46,8 +45,8 @@ def validar_datas_legislatura(eleicao, inicio, fim, pk=None):
# Verifica se data de eleição < inicio < fim # Verifica se data de eleição < inicio < fim
if inicio >= fim or eleicao >= inicio: if inicio >= fim or eleicao >= inicio:
logger.error('A data início ({}) deve ser menor que a ' + logger.error('A data início ({}) deve ser menor que a ' +
'data fim ({}) e a data eleição ({}) deve ser ' + 'data fim ({}) e a data eleição ({}) deve ser ' +
'menor que a data início ({})'.format(inicio, fim, eleicao, inicio)) 'menor que a data início ({})'.format(inicio, fim, eleicao, inicio))
msg_error = _('A data início deve ser menor que a ' + msg_error = _('A data início deve ser menor que a ' +
'data fim e a data eleição deve ser ' + 'data fim e a data eleição deve ser ' +
'menor que a data início') 'menor que a data início')
@ -66,7 +65,8 @@ def validar_datas_legislatura(eleicao, inicio, fim, pk=None):
# Verifica se há alguma outra data de eleição cadastrada # Verifica se há alguma outra data de eleição cadastrada
if Legislatura.objects.filter( if Legislatura.objects.filter(
data_eleicao=eleicao).exclude(pk=pk).exists(): data_eleicao=eleicao).exclude(pk=pk).exists():
logger.error("Esta data de eleição ({}) já foi cadastrada.".format(eleicao)) logger.error(
"Esta data de eleição ({}) já foi cadastrada.".format(eleicao))
msg_error = _('Esta data de eleição já foi cadastrada') msg_error = _('Esta data de eleição já foi cadastrada')
return (False, msg_error) return (False, msg_error)
@ -75,6 +75,7 @@ def validar_datas_legislatura(eleicao, inicio, fim, pk=None):
class MandatoForm(ModelForm): class MandatoForm(ModelForm):
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
class Meta: class Meta:
model = Mandato model = Mandato
fields = ['legislatura', 'coligacao', 'votos_recebidos', fields = ['legislatura', 'coligacao', 'votos_recebidos',
@ -108,30 +109,30 @@ class MandatoForm(ModelForm):
if (data_fim_mandato < legislatura.data_inicio or if (data_fim_mandato < legislatura.data_inicio or
data_fim_mandato > legislatura.data_fim): data_fim_mandato > legislatura.data_fim):
self.logger.error("Data fim mandato ({}) fora do intervalo" self.logger.error("Data fim mandato ({}) fora do intervalo"
" de legislatura informada ({} a {})." " de legislatura informada ({} a {})."
.format(data_fim_mandato, legislatura.data_inicio, legislatura.data_fim)) .format(data_fim_mandato, legislatura.data_inicio, legislatura.data_fim))
raise ValidationError(_("Data fim mandato fora do intervalo de" raise ValidationError(_("Data fim mandato fora do intervalo de"
" legislatura informada")) " legislatura informada"))
data_expedicao_diploma = data['data_expedicao_diploma'] data_expedicao_diploma = data['data_expedicao_diploma']
if (data_expedicao_diploma and if (data_expedicao_diploma and
data_expedicao_diploma > data_inicio_mandato): data_expedicao_diploma > data_inicio_mandato):
self.logger.error("A data da expedição do diploma ({}) deve ser anterior " self.logger.error("A data da expedição do diploma ({}) deve ser anterior "
"a data de início do mandato ({}).".format(data_expedicao_diploma, data_inicio_mandato)) "a data de início do mandato ({}).".format(data_expedicao_diploma, data_inicio_mandato))
raise ValidationError(_("A data da expedição do diploma deve ser anterior " raise ValidationError(_("A data da expedição do diploma deve ser anterior "
"a data de início do mandato")) "a data de início do mandato"))
coligacao = data['coligacao'] coligacao = data['coligacao']
if coligacao and not coligacao.legislatura == legislatura: if coligacao and not coligacao.legislatura == legislatura:
self.logger.error("A coligação selecionada ({}) não está cadastrada " self.logger.error("A coligação selecionada ({}) não está cadastrada "
"na mesma legislatura ({}) que o presente mandato ({}), " "na mesma legislatura ({}) que o presente mandato ({}), "
"favor verificar a coligação ou fazer o cadastro " "favor verificar a coligação ou fazer o cadastro "
"de uma nova coligação na legislatura correspondente" "de uma nova coligação na legislatura correspondente"
.format(coligacao, coligacao.legislatura, legislatura)) .format(coligacao, coligacao.legislatura, legislatura))
raise ValidationError(_("A coligação selecionada não está cadastrada " raise ValidationError(_("A coligação selecionada não está cadastrada "
"na mesma legislatura que o presente mandato, " "na mesma legislatura que o presente mandato, "
"favor verificar a coligação ou fazer o cadastro " "favor verificar a coligação ou fazer o cadastro "
"de uma nova coligação na legislatura correspondente")) "de uma nova coligação na legislatura correspondente"))
existe_mandato = Mandato.objects.filter( existe_mandato = Mandato.objects.filter(
parlamentar=data['parlamentar'], parlamentar=data['parlamentar'],
@ -158,7 +159,6 @@ class LegislaturaForm(ModelForm):
if not self.is_valid(): if not self.is_valid():
return self.cleaned_data return self.cleaned_data
numero = data['numero'] numero = data['numero']
data_inicio = data['data_inicio'] data_inicio = data['data_inicio']
data_fim = data['data_fim'] data_fim = data['data_fim']
@ -166,7 +166,6 @@ class LegislaturaForm(ModelForm):
pk = self.instance.pk pk = self.instance.pk
ultima_legislatura = Legislatura.objects.filter(data_inicio__lt=data_inicio ultima_legislatura = Legislatura.objects.filter(data_inicio__lt=data_inicio
).order_by('-data_inicio').first() ).order_by('-data_inicio').first()
proxima_legislatura = Legislatura.objects.filter(data_fim__gt=data_fim proxima_legislatura = Legislatura.objects.filter(data_fim__gt=data_fim
@ -175,13 +174,14 @@ class LegislaturaForm(ModelForm):
if ultima_legislatura and ultima_legislatura.numero >= numero: if ultima_legislatura and ultima_legislatura.numero >= numero:
self.logger.error("Número ({}) deve ser maior que o da legislatura anterior ({})." self.logger.error("Número ({}) deve ser maior que o da legislatura anterior ({})."
.format(numero, ultima_legislatura.numero)) .format(numero, ultima_legislatura.numero))
raise ValidationError(_("Número deve ser maior que o da legislatura anterior")) raise ValidationError(
_("Número deve ser maior que o da legislatura anterior"))
elif proxima_legislatura and proxima_legislatura.numero <= numero: elif proxima_legislatura and proxima_legislatura.numero <= numero:
self.logger.error("O Número ({}) deve ser menor que {}, pois existe uma " self.logger.error("O Número ({}) deve ser menor que {}, pois existe uma "
"legislatura afrente cronologicamente desta que está sendo criada!" "legislatura afrente cronologicamente desta que está sendo criada!"
.format(numero, proxima_legislatura.numero)) .format(numero, proxima_legislatura.numero))
msg_erro = "O Número deve ser menor que {}, pois existe uma " \ msg_erro = "O Número deve ser menor que {}, pois existe uma " \
"legislatura afrente cronologicamente desta que está sendo criada!" "legislatura afrente cronologicamente desta que está sendo criada!"
msg_erro = msg_erro.format(proxima_legislatura.numero) msg_erro = msg_erro.format(proxima_legislatura.numero)
raise ValidationError(_(msg_erro)) raise ValidationError(_(msg_erro))
@ -241,7 +241,7 @@ class ParlamentarCreateForm(ParlamentarForm):
data_expedicao_diploma=self.cleaned_data['data_expedicao_diploma']) data_expedicao_diploma=self.cleaned_data['data_expedicao_diploma'])
content_type = ContentType.objects.get_for_model(Parlamentar) content_type = ContentType.objects.get_for_model(Parlamentar)
object_id = parlamentar.pk object_id = parlamentar.pk
tipo = TipoAutor.objects.get(descricao='Parlamentar') tipo = TipoAutor.objects.get(content_type=content_type)
Autor.objects.create( Autor.objects.create(
content_type=content_type, content_type=content_type,
object_id=object_id, object_id=object_id,
@ -385,6 +385,7 @@ class ComposicaoColigacaoForm(ModelForm):
class FrenteForm(ModelForm): class FrenteForm(ModelForm):
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
super(FrenteForm, self).__init__(*args, **kwargs) super(FrenteForm, self).__init__(*args, **kwargs)
self.fields['parlamentares'].queryset = Parlamentar.objects.filter( self.fields['parlamentares'].queryset = Parlamentar.objects.filter(
@ -404,15 +405,16 @@ class FrenteForm(ModelForm):
if cd['data_extincao'] and cd['data_criacao'] >= cd['data_extincao']: if cd['data_extincao'] and cd['data_criacao'] >= cd['data_extincao']:
self.logger.error("Data Dissolução ({}) não pode ser anterior a Data Criação ({})." self.logger.error("Data Dissolução ({}) não pode ser anterior a Data Criação ({})."
.format(cd['data_extincao'],cd['data_criacao'])) .format(cd['data_extincao'], cd['data_criacao']))
raise ValidationError(_("Data Dissolução não pode ser anterior a Data Criação")) raise ValidationError(
_("Data Dissolução não pode ser anterior a Data Criação"))
return cd return cd
@transaction.atomic @transaction.atomic
def save(self, commit=True): def save(self, commit=True):
frente = super(FrenteForm, self).save(commit) frente = super(FrenteForm, self).save(commit)
if not self.instance.pk: if not self.instance.pk:
frente = super(FrenteForm, self).save(commit) frente = super(FrenteForm, self).save(commit)
content_type = ContentType.objects.get_for_model(Frente) content_type = ContentType.objects.get_for_model(Frente)
@ -466,7 +468,8 @@ class VotanteForm(ModelForm):
username = cd['username'] username = cd['username']
user = get_user_model().objects.filter(username=username) user = get_user_model().objects.filter(username=username)
if not user.exists(): if not user.exists():
self.logger.error("Não foi possível vincular usuário. Usuário {} não existe.".format(username)) self.logger.error(
"Não foi possível vincular usuário. Usuário {} não existe.".format(username))
raise ValidationError(_( raise ValidationError(_(
"{} [{}] {}".format( "{} [{}] {}".format(
'Não foi possível vincular usuário. Usuário', 'Não foi possível vincular usuário. Usuário',

4
sapl/sessao/forms.py

@ -317,7 +317,7 @@ class BancadaForm(ModelForm):
bancada = super(BancadaForm, self).save(commit) bancada = super(BancadaForm, self).save(commit)
content_type = ContentType.objects.get_for_model(Bancada) content_type = ContentType.objects.get_for_model(Bancada)
object_id = bancada.pk object_id = bancada.pk
tipo = TipoAutor.objects.get(descricao__icontains='Bancada') tipo = TipoAutor.objects.get(content_type=content_type)
Autor.objects.create( Autor.objects.create(
content_type=content_type, content_type=content_type,
object_id=object_id, object_id=object_id,
@ -352,7 +352,7 @@ class BlocoForm(ModelForm):
bloco = super(BlocoForm, self).save(commit) bloco = super(BlocoForm, self).save(commit)
content_type = ContentType.objects.get_for_model(Bloco) content_type = ContentType.objects.get_for_model(Bloco)
object_id = bloco.pk object_id = bloco.pk
tipo = TipoAutor.objects.get(descricao__icontains='Bloco') tipo = TipoAutor.objects.get(content_type=content_type)
Autor.objects.create( Autor.objects.create(
content_type=content_type, content_type=content_type,
object_id=object_id, object_id=object_id,

17
sapl/sessao/views.py

@ -614,26 +614,20 @@ class OradorCrud(OradorCrud):
return initial return initial
class BancadaCrud(Crud): class BancadaCrud(CrudAux):
model = Bancada model = Bancada
class ListView(Crud.ListView): class CreateView(CrudAux.CreateView):
template_name = 'crud/list_tabaux.html'
class CreateView(Crud.CreateView):
form_class = BancadaForm form_class = BancadaForm
def get_success_url(self): def get_success_url(self):
return reverse('sapl.sessao:bancada_list') return reverse('sapl.sessao:bancada_list')
class BlocoCrud(Crud): class BlocoCrud(CrudAux):
model = Bloco model = Bloco
class ListView(Crud.ListView): class CreateView(CrudAux.CreateView):
template_name = 'crud/list_tabaux.html'
class CreateView(Crud.CreateView):
form_class = BlocoForm form_class = BlocoForm
def get_success_url(self): def get_success_url(self):
@ -1902,7 +1896,8 @@ class VotacaoView(SessaoPermissionMixin):
qtde_presentes -= 1 qtde_presentes -= 1
if (qtde_votos > qtde_presentes or qtde_votos < qtde_presentes): if (qtde_votos > qtde_presentes or qtde_votos < qtde_presentes):
msg = _('O total de votos não corresponde com a quantidade de presentes!') msg = _(
'O total de votos não corresponde com a quantidade de presentes!')
messages.add_message(request, messages.ERROR, msg) messages.add_message(request, messages.ERROR, msg)
return self.render_to_response(context) return self.render_to_response(context)
elif (qtde_presentes == qtde_votos): elif (qtde_presentes == qtde_votos):

Loading…
Cancel
Save