Browse Source

ajustes de pep8 feito IDE em arquivos que serão alterados no próximo commit

pull/2443/head
Leandro Roberto 6 years ago
parent
commit
f8c38d6ac2
  1. 39
      sapl/materia/forms.py
  2. 35
      sapl/norma/forms.py
  3. 60
      sapl/protocoloadm/forms.py
  4. 38
      sapl/sessao/forms.py

39
sapl/materia/forms.py

@ -1,11 +1,11 @@
import os
import logging import logging
import django_filters import os
from crispy_forms.bootstrap import Alert, FormActions, InlineRadios
from crispy_forms.bootstrap import Alert, InlineRadios
from crispy_forms.helper import FormHelper from crispy_forms.helper import FormHelper
from crispy_forms.layout import (HTML, Button, Column, Div, Field, Fieldset, from crispy_forms.layout import (HTML, Button, Column, Div, Field, Fieldset,
Layout, Submit) Layout)
from django import forms from django import forms
from django.contrib.contenttypes.models import ContentType from django.contrib.contenttypes.models import ContentType
from django.core.exceptions import ObjectDoesNotExist, ValidationError from django.core.exceptions import ObjectDoesNotExist, ValidationError
@ -22,6 +22,7 @@ from django.utils.encoding import force_text
from django.utils.html import format_html from django.utils.html import format_html
from django.utils.safestring import mark_safe from django.utils.safestring import mark_safe
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
import django_filters
import sapl import sapl
from sapl.base.models import AppConfig, Autor, TipoAutor from sapl.base.models import AppConfig, Autor, TipoAutor
@ -135,7 +136,8 @@ class MateriaSimplificadaForm(ModelForm):
row1 = to_row([('tipo', 6), ('numero', 3), ('ano', 3)]) row1 = to_row([('tipo', 6), ('numero', 3), ('ano', 3)])
row2 = to_row([('data_apresentacao', 6), ('numero_protocolo', 6)]) row2 = to_row([('data_apresentacao', 6), ('numero_protocolo', 6)])
row3 = to_row([('regime_tramitacao', 6), ('em_tramitacao', 3), ('tipo_apresentacao', 3)]) row3 = to_row([('regime_tramitacao', 6),
('em_tramitacao', 3), ('tipo_apresentacao', 3)])
row4 = to_row([('ementa', 12)]) row4 = to_row([('ementa', 12)])
row5 = to_row([('texto_original', 12)]) row5 = to_row([('texto_original', 12)])
@ -239,7 +241,8 @@ class MateriaLegislativaForm(ModelForm):
if p.tipo_materia != cleaned_data['tipo']: if p.tipo_materia != cleaned_data['tipo']:
self.logger.error("Tipo do Protocolo ({}) deve ser o mesmo do Tipo Matéria ({})." self.logger.error("Tipo do Protocolo ({}) deve ser o mesmo do Tipo Matéria ({})."
.format(cleaned_data['tipo'], p.tipo_materia)) .format(cleaned_data['tipo'], p.tipo_materia))
raise ValidationError(_('Tipo do Protocolo deve ser o mesmo do Tipo Matéria')) raise ValidationError(
_('Tipo do Protocolo deve ser o mesmo do Tipo Matéria'))
if data_apresentacao.year != ano: if data_apresentacao.year != ano:
self.logger.error("O ano da matéria ({}) é diferente " self.logger.error("O ano da matéria ({}) é diferente "
@ -280,6 +283,7 @@ class MateriaLegislativaForm(ModelForm):
return materia return materia
class UnidadeTramitacaoForm(ModelForm): class UnidadeTramitacaoForm(ModelForm):
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
@ -643,6 +647,7 @@ class LegislacaoCitadaForm(ModelForm):
class NumeracaoForm(ModelForm): class NumeracaoForm(ModelForm):
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
class Meta: class Meta:
model = Numeracao model = Numeracao
fields = ['tipo_materia', fields = ['tipo_materia',
@ -971,7 +976,8 @@ class AutoriaForm(ModelForm):
if ((not pk and autorias.exists()) or if ((not pk and autorias.exists()) or
(pk and autorias.exclude(pk=pk).exists())): (pk and autorias.exclude(pk=pk).exists())):
self.logger.error("Esse Autor (pk={}) já foi cadastrado.".format(pk)) self.logger.error(
"Esse Autor (pk={}) já foi cadastrado.".format(pk))
raise ValidationError(_('Esse Autor já foi cadastrado.')) raise ValidationError(_('Esse Autor já foi cadastrado.'))
return cd return cd
@ -1022,7 +1028,8 @@ class AutoriaMultiCreateForm(Form):
del self.errors['autores'] del self.errors['autores']
if 'autor' not in cd or not cd['autor'].exists(): if 'autor' not in cd or not cd['autor'].exists():
self.logger.error("Ao menos um autor deve ser selecionado para inclusão") self.logger.error(
"Ao menos um autor deve ser selecionado para inclusão")
raise ValidationError( raise ValidationError(
_('Ao menos um autor deve ser selecionado para inclusão')) _('Ao menos um autor deve ser selecionado para inclusão'))
@ -1410,7 +1417,8 @@ class ProposicaoForm(forms.ModelForm):
texto_original = self.cleaned_data.get('texto_original', False) texto_original = self.cleaned_data.get('texto_original', False)
if texto_original and texto_original.size > MAX_DOC_UPLOAD_SIZE: if texto_original and texto_original.size > MAX_DOC_UPLOAD_SIZE:
max_size = str(MAX_DOC_UPLOAD_SIZE / (1024 * 1024)) max_size = str(MAX_DOC_UPLOAD_SIZE / (1024 * 1024))
self.logger.error("- Arquivo muito grande. ( > {0}MB )".format(max_size)) self.logger.error(
"- Arquivo muito grande. ( > {0}MB )".format(max_size))
raise ValidationError( raise ValidationError(
"Arquivo muito grande. ( > {0}MB )".format(max_size)) "Arquivo muito grande. ( > {0}MB )".format(max_size))
return texto_original return texto_original
@ -1479,7 +1487,6 @@ class ProposicaoForm(forms.ModelForm):
inst.texto_original.delete() inst.texto_original.delete()
self.gerar_hash(inst, receber_recibo) self.gerar_hash(inst, receber_recibo)
return super().save(commit) return super().save(commit)
inst.ano = timezone.now().year inst.ano = timezone.now().year
@ -1803,7 +1810,8 @@ class ConfirmarProposicaoForm(ProposicaoForm):
numeracao = None numeracao = None
try: try:
self.logger.debug("Tentando obter modelo de sequência de numeração.") self.logger.debug(
"Tentando obter modelo de sequência de numeração.")
numeracao = sapl.base.models.AppConfig.objects.last( numeracao = sapl.base.models.AppConfig.objects.last(
).sequencia_numeracao ).sequencia_numeracao
except AttributeError as e: except AttributeError as e:
@ -1829,12 +1837,14 @@ class ConfirmarProposicaoForm(ProposicaoForm):
tipo=tipo).aggregate( tipo=tipo).aggregate(
Max('numero')) Max('numero'))
elif numeracao == 'U': elif numeracao == 'U':
numero = MateriaLegislativa.objects.filter(tipo=tipo).aggregate(Max('numero')) numero = MateriaLegislativa.objects.filter(
tipo=tipo).aggregate(Max('numero'))
if numeracao is None: if numeracao is None:
numero['numero__max'] = 0 numero['numero__max'] = 0
max_numero = numero['numero__max'] + 1 if numero['numero__max'] else 1 max_numero = numero['numero__max'] + \
1 if numero['numero__max'] else 1
# dados básicos # dados básicos
materia = MateriaLegislativa() materia = MateriaLegislativa()
@ -1974,7 +1984,8 @@ class ConfirmarProposicaoForm(ProposicaoForm):
protocolo.tipo_protocolo = '1' protocolo.tipo_protocolo = '1'
protocolo.interessado = str(proposicao.autor)[:200] # tamanho máximo 200 protocolo.interessado = str(proposicao.autor)[
:200] # tamanho máximo 200
protocolo.autor = proposicao.autor protocolo.autor = proposicao.autor
protocolo.assunto_ementa = proposicao.descricao protocolo.assunto_ementa = proposicao.descricao
protocolo.numero_paginas = cd['numero_de_paginas'] protocolo.numero_paginas = cd['numero_de_paginas']

35
sapl/norma/forms.py

@ -1,6 +1,6 @@
import django_filters
import logging 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
from django import forms from django import forms
@ -9,6 +9,7 @@ from django.db import models
from django.forms import ModelForm, widgets, ModelChoiceField from django.forms import ModelForm, widgets, ModelChoiceField
from django.utils import timezone from django.utils import timezone
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
import django_filters
from sapl.base.models import Autor, TipoAutor from sapl.base.models import Autor, TipoAutor
from sapl.crispy_layout_mixin import form_actions, to_row from sapl.crispy_layout_mixin import form_actions, to_row
@ -131,7 +132,6 @@ class NormaJuridicaForm(ModelForm):
'assuntos'] 'assuntos']
widgets = {'assuntos': widgets.CheckboxSelectMultiple} widgets = {'assuntos': widgets.CheckboxSelectMultiple}
def clean(self): def clean(self):
cleaned_data = super(NormaJuridicaForm, self).clean() cleaned_data = super(NormaJuridicaForm, self).clean()
@ -142,8 +142,10 @@ class NormaJuridicaForm(ModelForm):
import re import re
has_digits = re.sub('[^0-9]', '', cleaned_data['numero']) has_digits = re.sub('[^0-9]', '', cleaned_data['numero'])
if not has_digits: if not has_digits:
self.logger.error("Número de norma ({}) não pode conter somente letras.".format(cleaned_data['numero'])) self.logger.error("Número de norma ({}) não pode conter somente letras.".format(
raise ValidationError('Número de norma não pode conter somente letras') cleaned_data['numero']))
raise ValidationError(
'Número de norma não pode conter somente letras')
if self.instance.numero != cleaned_data['numero']: if self.instance.numero != cleaned_data['numero']:
norma = NormaJuridica.objects.filter(ano=cleaned_data['ano'], norma = NormaJuridica.objects.filter(ano=cleaned_data['ano'],
@ -199,7 +201,8 @@ class NormaJuridicaForm(ModelForm):
if texto_integral and texto_integral.size > MAX_DOC_UPLOAD_SIZE: if texto_integral and texto_integral.size > MAX_DOC_UPLOAD_SIZE:
max_size = str(MAX_DOC_UPLOAD_SIZE / (1024 * 1024)) max_size = str(MAX_DOC_UPLOAD_SIZE / (1024 * 1024))
tam_fornecido = str(texto_integral.size / (1024 * 1024)) tam_fornecido = str(texto_integral.size / (1024 * 1024))
self.logger.error("Arquivo muito grande ({}MB). ( Tamanho máximo permitido: {}MB )".format(tam_fornecido, max_size)) self.logger.error("Arquivo muito grande ({}MB). ( Tamanho máximo permitido: {}MB )".format(
tam_fornecido, max_size))
raise ValidationError( raise ValidationError(
"Arquivo muito grande. ( > {0}MB )".format(max_size)) "Arquivo muito grande. ( > {0}MB )".format(max_size))
return texto_integral return texto_integral
@ -256,11 +259,13 @@ class AutoriaNormaForm(ModelForm):
if ((not pk and autorias.exists()) or if ((not pk and autorias.exists()) or
(pk and autorias.exclude(pk=pk).exists())): (pk and autorias.exclude(pk=pk).exists())):
self.logger.error("Autor ({}) já foi cadastrado.".format(cd['autor'])) self.logger.error(
"Autor ({}) já foi cadastrado.".format(cd['autor']))
raise ValidationError(_('Esse Autor já foi cadastrado.')) raise ValidationError(_('Esse Autor já foi cadastrado.'))
return cd return cd
class AnexoNormaJuridicaForm(ModelForm): class AnexoNormaJuridicaForm(ModelForm):
class Meta: class Meta:
model = AnexoNormaJuridica model = AnexoNormaJuridica
@ -270,6 +275,7 @@ class AnexoNormaJuridicaForm(ModelForm):
} }
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
def clean(self): def clean(self):
cleaned_data = super(AnexoNormaJuridicaForm, self).clean() cleaned_data = super(AnexoNormaJuridicaForm, self).clean()
if not self.is_valid(): if not self.is_valid():
@ -278,7 +284,8 @@ class AnexoNormaJuridicaForm(ModelForm):
if anexo_arquivo and anexo_arquivo.size > MAX_DOC_UPLOAD_SIZE: if anexo_arquivo and anexo_arquivo.size > MAX_DOC_UPLOAD_SIZE:
max_size = str(MAX_DOC_UPLOAD_SIZE / (1024 * 1024)) max_size = str(MAX_DOC_UPLOAD_SIZE / (1024 * 1024))
tam_fornecido = str(anexo_arquivo.size / (1024 * 1024)) tam_fornecido = str(anexo_arquivo.size / (1024 * 1024))
self.logger.error("Arquivo muito grande ({}MB). ( Tamanho máximo permitido: {}MB )".format(tam_fornecido, max_size)) self.logger.error("Arquivo muito grande ({}MB). ( Tamanho máximo permitido: {}MB )".format(
tam_fornecido, max_size))
raise ValidationError( raise ValidationError(
"Arquivo muito grande. ( > {0}MB )".format(max_size)) "Arquivo muito grande. ( > {0}MB )".format(max_size))
return cleaned_data return cleaned_data
@ -294,7 +301,6 @@ class AnexoNormaJuridicaForm(ModelForm):
return anexo return anexo
class NormaRelacionadaForm(ModelForm): class NormaRelacionadaForm(ModelForm):
tipo = forms.ModelChoiceField( tipo = forms.ModelChoiceField(
@ -310,6 +316,7 @@ class NormaRelacionadaForm(ModelForm):
widget=forms.Textarea(attrs={'disabled': 'disabled'})) widget=forms.Textarea(attrs={'disabled': 'disabled'}))
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
class Meta: class Meta:
model = NormaRelacionada model = NormaRelacionada
fields = ['tipo', 'numero', 'ano', 'ementa', 'tipo_vinculo'] fields = ['tipo', 'numero', 'ano', 'ementa', 'tipo_vinculo']
@ -325,17 +332,20 @@ class NormaRelacionadaForm(ModelForm):
cleaned_data = self.cleaned_data cleaned_data = self.cleaned_data
try: try:
self.logger.debug("Tentando obter objeto NormaJuridica com numero={}, ano={}, tipo={}.".format(cleaned_data['numero'], cleaned_data['ano'], cleaned_data['tipo'])) self.logger.debug("Tentando obter objeto NormaJuridica com numero={}, ano={}, tipo={}.".format(
cleaned_data['numero'], cleaned_data['ano'], cleaned_data['tipo']))
norma_relacionada = NormaJuridica.objects.get( norma_relacionada = NormaJuridica.objects.get(
numero=cleaned_data['numero'], numero=cleaned_data['numero'],
ano=cleaned_data['ano'], ano=cleaned_data['ano'],
tipo=cleaned_data['tipo']) tipo=cleaned_data['tipo'])
except ObjectDoesNotExist: except ObjectDoesNotExist:
self.logger.info("NormaJuridica com numero={}, ano={}, tipo={} não existe.".format(cleaned_data['numero'], cleaned_data['ano'], cleaned_data['tipo'])) self.logger.info("NormaJuridica com numero={}, ano={}, tipo={} não existe.".format(
cleaned_data['numero'], cleaned_data['ano'], cleaned_data['tipo']))
msg = _('A norma a ser relacionada não existe.') msg = _('A norma a ser relacionada não existe.')
raise ValidationError(msg) raise ValidationError(msg)
else: else:
self.logger.info("NormaJuridica com numero={}, ano={}, tipo={} obtida com sucesso.".format(cleaned_data['numero'], cleaned_data['ano'], cleaned_data['tipo'])) self.logger.info("NormaJuridica com numero={}, ano={}, tipo={} obtida com sucesso.".format(
cleaned_data['numero'], cleaned_data['ano'], cleaned_data['tipo']))
cleaned_data['norma_relacionada'] = norma_relacionada cleaned_data['norma_relacionada'] = norma_relacionada
return cleaned_data return cleaned_data
@ -408,7 +418,8 @@ class NormaPesquisaSimplesForm(forms.Form):
if (data_inicial and data_final and if (data_inicial and data_final and
data_inicial > data_final): data_inicial > data_final):
self.logger.error("Data Final ({}) menor que a Data Inicial ({}).".format(data_final, data_inicial)) self.logger.error("Data Final ({}) menor que a Data Inicial ({}).".format(
data_final, data_inicial))
raise ValidationError(_( raise ValidationError(_(
'A Data Final não pode ser menor que a Data Inicial')) 'A Data Final não pode ser menor que a Data Inicial'))
else: else:

60
sapl/protocoloadm/forms.py

@ -1,6 +1,6 @@
import django_filters
import logging import logging
from crispy_forms.bootstrap import InlineRadios from crispy_forms.bootstrap import InlineRadios
from crispy_forms.helper import FormHelper from crispy_forms.helper import FormHelper
from crispy_forms.layout import HTML, Button, Column, Fieldset, Layout from crispy_forms.layout import HTML, Button, Column, Fieldset, Layout
@ -12,6 +12,7 @@ from django.db.models import Max
from django.forms import ModelForm from django.forms import ModelForm
from django.utils import timezone from django.utils import timezone
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
import django_filters
from sapl.base.models import Autor, TipoAutor from sapl.base.models import Autor, TipoAutor
from sapl.crispy_layout_mixin import SaplFormLayout, form_actions, to_row from sapl.crispy_layout_mixin import SaplFormLayout, form_actions, to_row
@ -25,8 +26,11 @@ from .models import (AcompanhamentoDocumento, DocumentoAcessorioAdministrativo,
Protocolo, TipoDocumentoAdministrativo, Protocolo, TipoDocumentoAdministrativo,
TramitacaoAdministrativo) TramitacaoAdministrativo)
TIPOS_PROTOCOLO = [('0', 'Recebido'), ('1', 'Enviado'), ('2', 'Interno'), ('', '---------')]
TIPOS_PROTOCOLO_CREATE = [('0', 'Recebido'), ('1', 'Enviado'), ('2', 'Interno')] TIPOS_PROTOCOLO = [('0', 'Recebido'), ('1', 'Enviado'),
('2', 'Interno'), ('', '---------')]
TIPOS_PROTOCOLO_CREATE = [
('0', 'Recebido'), ('1', 'Enviado'), ('2', 'Interno')]
NATUREZA_PROCESSO = [('', '---------'), NATUREZA_PROCESSO = [('', '---------'),
('0', 'Administrativo'), ('0', 'Administrativo'),
@ -41,6 +45,7 @@ EM_TRAMITACAO = [('', '---------'),
(0, 'Sim'), (0, 'Sim'),
(1, 'Não')] (1, 'Não')]
class AcompanhamentoDocumentoForm(ModelForm): class AcompanhamentoDocumentoForm(ModelForm):
class Meta: class Meta:
@ -253,10 +258,12 @@ class AnularProcoloAdmForm(ModelForm):
ano = cleaned_data['ano'] ano = cleaned_data['ano']
try: try:
self.logger.debug("Tentando obter Protocolo com numero={} e ano={}.".format(numero, ano)) self.logger.debug(
"Tentando obter Protocolo com numero={} e ano={}.".format(numero, ano))
protocolo = Protocolo.objects.get(numero=numero, ano=ano) protocolo = Protocolo.objects.get(numero=numero, ano=ano)
if protocolo.anulado: if protocolo.anulado:
self.logger.error("Protocolo %s/%s já encontra-se anulado" % (numero, ano)) self.logger.error(
"Protocolo %s/%s já encontra-se anulado" % (numero, ano))
raise forms.ValidationError( raise forms.ValidationError(
_("Protocolo %s/%s já encontra-se anulado") _("Protocolo %s/%s já encontra-se anulado")
% (numero, ano)) % (numero, ano))
@ -341,7 +348,8 @@ class ProtocoloDocumentForm(ModelForm):
observacao = forms.CharField(required=False, observacao = forms.CharField(required=False,
widget=forms.Textarea, label=_('Observação')) widget=forms.Textarea, label=_('Observação'))
numero = forms.IntegerField(required=False, label=_('Número de Protocolo (opcional)')) numero = forms.IntegerField(
required=False, label=_('Número de Protocolo (opcional)'))
class Meta: class Meta:
model = Protocolo model = Protocolo
@ -431,7 +439,8 @@ class ProtocoloMateriaForm(ModelForm):
assunto_ementa = forms.CharField(required=True, assunto_ementa = forms.CharField(required=True,
widget=forms.Textarea, label=_('Ementa')) widget=forms.Textarea, label=_('Ementa'))
numero = forms.IntegerField(required=False, label=_('Número de Protocolo (opcional)')) numero = forms.IntegerField(
required=False, label=_('Número de Protocolo (opcional)'))
class Meta: class Meta:
model = Protocolo model = Protocolo
@ -450,13 +459,16 @@ class ProtocoloMateriaForm(ModelForm):
def clean_autor(self): def clean_autor(self):
autor_field = self.cleaned_data['autor'] autor_field = self.cleaned_data['autor']
try: try:
self.logger.debug("Tentando obter Autor com id={}.".format(autor_field.id)) self.logger.debug(
"Tentando obter Autor com id={}.".format(autor_field.id))
autor = Autor.objects.get(id=autor_field.id) autor = Autor.objects.get(id=autor_field.id)
except ObjectDoesNotExist: except ObjectDoesNotExist:
self.logger.error("Autor com id={} não encontrado. Definido como None.".format(autor_field.id)) self.logger.error(
"Autor com id={} não encontrado. Definido como None.".format(autor_field.id))
autor_field = None autor_field = None
else: else:
self.logger.info("Autor com id={} encontrado com sucesso.".format(autor_field.id)) self.logger.info(
"Autor com id={} encontrado com sucesso.".format(autor_field.id))
autor_field = autor autor_field = autor
return autor_field return autor_field
@ -471,7 +483,8 @@ class ProtocoloMateriaForm(ModelForm):
if data['vincular_materia'] == 'True': if data['vincular_materia'] == 'True':
try: try:
if not data['ano_materia'] or not data['numero_materia']: if not data['ano_materia'] or not data['numero_materia']:
self.logger.error("Não foram informados o número ou ano da matéria a ser vinculada") self.logger.error(
"Não foram informados o número ou ano da matéria a ser vinculada")
raise ValidationError( raise ValidationError(
'Favor informar o número e ano da matéria a ser vinculada') 'Favor informar o número e ano da matéria a ser vinculada')
self.logger.debug("Tentando obter MateriaLegislativa com ano={}, numero={} e data={}." self.logger.debug("Tentando obter MateriaLegislativa com ano={}, numero={} e data={}."
@ -487,7 +500,8 @@ class ProtocoloMateriaForm(ModelForm):
except ObjectDoesNotExist: except ObjectDoesNotExist:
self.logger.error("MateriaLegislativa informada (ano={}, numero={} e data={}) não existente." self.logger.error("MateriaLegislativa informada (ano={}, numero={} e data={}) não existente."
.format(data['ano_materia'], data['numero_materia'], data['tipo_materia'])) .format(data['ano_materia'], data['numero_materia'], data['tipo_materia']))
raise ValidationError(_('Matéria Legislativa informada não existente.')) raise ValidationError(
_('Matéria Legislativa informada não existente.'))
return data return data
@ -773,7 +787,8 @@ class DocumentoAdministrativoForm(ModelForm):
numero_protocolo, ano_protocolo)) numero_protocolo, ano_protocolo))
raise ValidationError(msg) raise ValidationError(msg)
except MultipleObjectsReturned: except MultipleObjectsReturned:
self.logger.error("Existe mais de um Protocolo com este ano ({}) e número ({}).".format(ano_protocolo,numero_protocolo)) self.logger.error("Existe mais de um Protocolo com este ano ({}) e número ({}).".format(
ano_protocolo, numero_protocolo))
msg = _( msg = _(
'Existe mais de um Protocolo com este ano e número.' % ( 'Existe mais de um Protocolo com este ano e número.' % (
numero_protocolo, ano_protocolo)) numero_protocolo, ano_protocolo))
@ -871,13 +886,16 @@ class DesvincularDocumentoForm(ModelForm):
try: try:
self.logger.debug("Tentando obter DocumentoAdministrativo com numero={}, ano={} e tipo={}." self.logger.debug("Tentando obter DocumentoAdministrativo com numero={}, ano={} e tipo={}."
.format(numero, ano, tipo)) .format(numero, ano, tipo))
documento = DocumentoAdministrativo.objects.get(numero=numero, ano=ano, tipo=tipo) documento = DocumentoAdministrativo.objects.get(
numero=numero, ano=ano, tipo=tipo)
if not documento.protocolo: if not documento.protocolo:
self.logger.error("DocumentoAdministrativo %s %s/%s não se encontra vinculado a nenhum protocolo." % (tipo, numero, ano)) self.logger.error(
"DocumentoAdministrativo %s %s/%s não se encontra vinculado a nenhum protocolo." % (tipo, numero, ano))
raise forms.ValidationError( raise forms.ValidationError(
_("%s %s/%s não se encontra vinculado a nenhum protocolo" % (tipo, numero, ano))) _("%s %s/%s não se encontra vinculado a nenhum protocolo" % (tipo, numero, ano)))
except ObjectDoesNotExist: except ObjectDoesNotExist:
self.logger.error("DocumentoAdministrativo %s %s/%s não existe" % (tipo, numero, ano)) self.logger.error(
"DocumentoAdministrativo %s %s/%s não existe" % (tipo, numero, ano))
raise forms.ValidationError( raise forms.ValidationError(
_("%s %s/%s não existe" % (tipo, numero, ano))) _("%s %s/%s não existe" % (tipo, numero, ano)))
@ -939,13 +957,16 @@ class DesvincularMateriaForm(forms.Form):
try: try:
self.logger.info("Tentando obter MateriaLegislativa com numero={}, ano={} e tipo={}." self.logger.info("Tentando obter MateriaLegislativa com numero={}, ano={} e tipo={}."
.format(numero, ano, tipo)) .format(numero, ano, tipo))
materia = MateriaLegislativa.objects.get(numero=numero, ano=ano, tipo=tipo) materia = MateriaLegislativa.objects.get(
numero=numero, ano=ano, tipo=tipo)
if not materia.numero_protocolo: if not materia.numero_protocolo:
self.logger.error("MateriaLegislativa %s %s/%s não se encontra vinculada a nenhum protocolo" % (tipo, numero, ano)) self.logger.error(
"MateriaLegislativa %s %s/%s não se encontra vinculada a nenhum protocolo" % (tipo, numero, ano))
raise forms.ValidationError( raise forms.ValidationError(
_("%s %s/%s não se encontra vinculada a nenhum protocolo" % (tipo, numero, ano))) _("%s %s/%s não se encontra vinculada a nenhum protocolo" % (tipo, numero, ano)))
except ObjectDoesNotExist: except ObjectDoesNotExist:
self.logger.error("MateriaLegislativa %s %s/%s não existe" % (tipo, numero, ano)) self.logger.error(
"MateriaLegislativa %s %s/%s não existe" % (tipo, numero, ano))
raise forms.ValidationError( raise forms.ValidationError(
_("%s %s/%s não existe" % (tipo, numero, ano))) _("%s %s/%s não existe" % (tipo, numero, ano)))
@ -999,6 +1020,7 @@ def filtra_tramitacao_adm_destino_and_status(status, destino):
unidade_tramitacao_destino=destino).distinct().values_list( unidade_tramitacao_destino=destino).distinct().values_list(
'documento_id', flat=True) 'documento_id', flat=True)
class FichaPesquisaAdmForm(forms.Form): class FichaPesquisaAdmForm(forms.Form):
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)

38
sapl/sessao/forms.py

@ -1,9 +1,9 @@
from django.contrib import messages
from datetime import datetime from datetime import datetime
from crispy_forms.helper import FormHelper from crispy_forms.helper import FormHelper
from crispy_forms.layout import HTML, Button, Fieldset, Layout from crispy_forms.layout import HTML, Button, Fieldset, Layout
from django import forms from django import forms
from django.contrib import messages
from django.contrib.contenttypes.models import ContentType from django.contrib.contenttypes.models import ContentType
from django.core.exceptions import ObjectDoesNotExist, ValidationError from django.core.exceptions import ObjectDoesNotExist, ValidationError
from django.db import transaction from django.db import transaction
@ -23,6 +23,7 @@ from sapl.parlamentares.models import Parlamentar, Legislatura, Mandato
from sapl.utils import (RANGE_DIAS_MES, RANGE_MESES, from sapl.utils import (RANGE_DIAS_MES, RANGE_MESES,
MateriaPesquisaOrderingFilter, autor_label, MateriaPesquisaOrderingFilter, autor_label,
autor_modal, timezone) autor_modal, timezone)
from .models import (Bancada, Bloco, ExpedienteMateria, JustificativaAusencia, from .models import (Bancada, Bloco, ExpedienteMateria, JustificativaAusencia,
Orador, OradorExpediente, OrdemDia, PresencaOrdemDia, SessaoPlenaria, Orador, OradorExpediente, OrdemDia, PresencaOrdemDia, SessaoPlenaria,
SessaoPlenariaPresenca, TipoJustificativa, TipoResultadoVotacao, SessaoPlenariaPresenca, TipoJustificativa, TipoResultadoVotacao,
@ -232,8 +233,10 @@ class RetiradaPautaForm(ModelForm):
q = Q(sessao_plenaria=kwargs['initial']['sessao_plenaria']) q = Q(sessao_plenaria=kwargs['initial']['sessao_plenaria'])
ordens = OrdemDia.objects.filter(q) ordens = OrdemDia.objects.filter(q)
expedientes = ExpedienteMateria.objects.filter(q) expedientes = ExpedienteMateria.objects.filter(q)
retiradas_ordem = [r.ordem for r in RetiradaPauta.objects.filter(q, ordem__in=ordens)] retiradas_ordem = [
retiradas_expediente = [r.expediente for r in RetiradaPauta.objects.filter(q, expediente__in=expedientes)] r.ordem for r in RetiradaPauta.objects.filter(q, ordem__in=ordens)]
retiradas_expediente = [r.expediente for r in RetiradaPauta.objects.filter(
q, expediente__in=expedientes)]
setOrdem = set(ordens) - set(retiradas_ordem) setOrdem = set(ordens) - set(retiradas_ordem)
setExpediente = set(expedientes) - set(retiradas_expediente) setExpediente = set(expedientes) - set(retiradas_expediente)
@ -264,19 +267,23 @@ class RetiradaPautaForm(ModelForm):
sessao_plenaria = self.instance.sessao_plenaria sessao_plenaria = self.instance.sessao_plenaria
if self.cleaned_data['data'] < sessao_plenaria.data_inicio: if self.cleaned_data['data'] < sessao_plenaria.data_inicio:
raise ValidationError(_("Data de retirada de pauta anterior à abertura da Sessão.")) raise ValidationError(
_("Data de retirada de pauta anterior à abertura da Sessão."))
if sessao_plenaria.data_fim and self.cleaned_data['data'] > sessao_plenaria.data_fim: if sessao_plenaria.data_fim and self.cleaned_data['data'] > sessao_plenaria.data_fim:
raise ValidationError(_("Data de retirada de pauta posterior ao encerramento da Sessão.")) raise ValidationError(
_("Data de retirada de pauta posterior ao encerramento da Sessão."))
if self.cleaned_data['ordem'] and self.cleaned_data['ordem'].registrovotacao_set.exists(): if self.cleaned_data['ordem'] and self.cleaned_data['ordem'].registrovotacao_set.exists():
raise ValidationError(_("Essa matéria já foi votada, portanto não pode ser retirada de pauta.")) raise ValidationError(
_("Essa matéria já foi votada, portanto não pode ser retirada de pauta."))
elif self.cleaned_data['expediente'] and self.cleaned_data['expediente'].registrovotacao_set.exists(): elif self.cleaned_data['expediente'] and self.cleaned_data['expediente'].registrovotacao_set.exists():
raise ValidationError(_("Essa matéria já foi votada, portanto não pode ser retirada de pauta.")) raise ValidationError(
_("Essa matéria já foi votada, portanto não pode ser retirada de pauta."))
return self.cleaned_data return self.cleaned_data
def save(self, commit=False): def save(self, commit=False):
retirada = super(RetiradaPautaForm, self).save(commit=False) retirada = super(RetiradaPautaForm, self).save(commit=commit)
if retirada.ordem: if retirada.ordem:
retirada.materia = retirada.ordem.materia retirada.materia = retirada.ordem.materia
elif retirada.expediente: elif retirada.expediente:
@ -284,6 +291,7 @@ class RetiradaPautaForm(ModelForm):
retirada.save() retirada.save()
return retirada return retirada
class BancadaForm(ModelForm): class BancadaForm(ModelForm):
class Meta: class Meta:
@ -522,8 +530,10 @@ class VotacaoForm(forms.Form):
votos_sim = forms.IntegerField(label='Sim') votos_sim = forms.IntegerField(label='Sim')
votos_nao = forms.IntegerField(label='Não') votos_nao = forms.IntegerField(label='Não')
abstencoes = forms.IntegerField(label='Abstenções') abstencoes = forms.IntegerField(label='Abstenções')
total_presentes = forms.IntegerField(required=False, widget=forms.HiddenInput()) total_presentes = forms.IntegerField(
voto_presidente = forms.IntegerField(label='A totalização inclui o voto do Presidente?') required=False, widget=forms.HiddenInput())
voto_presidente = forms.IntegerField(
label='A totalização inclui o voto do Presidente?')
total_votos = forms.IntegerField(required=False, label='total') total_votos = forms.IntegerField(required=False, label='total')
observacao = forms.CharField(required=False, label='Observação') observacao = forms.CharField(required=False, label='Observação')
resultado_votacao = forms.CharField(label='Resultado da Votação') resultado_votacao = forms.CharField(label='Resultado da Votação')
@ -544,7 +554,8 @@ class VotacaoForm(forms.Form):
qtde_presentes -= 1 qtde_presentes -= 1
if qtde_presentes and qtde_votos != qtde_presentes: if qtde_presentes and qtde_votos != qtde_presentes:
raise ValidationError('O total de votos não corresponde com a quantidade de presentes!') raise ValidationError(
'O total de votos não corresponde com a quantidade de presentes!')
return cleaned_data return cleaned_data
@ -875,7 +886,6 @@ class JustificativaAusenciaForm(ModelForm):
legislatura=legislatura).order_by('parlamentar__nome_parlamentar') legislatura=legislatura).order_by('parlamentar__nome_parlamentar')
parlamentares = [m.parlamentar for m in mandato] parlamentares = [m.parlamentar for m in mandato]
super(JustificativaAusenciaForm, self).__init__( super(JustificativaAusenciaForm, self).__init__(
*args, **kwargs) *args, **kwargs)
@ -900,7 +910,7 @@ class JustificativaAusenciaForm(ModelForm):
("0", "------------")] + [(p.id, p) for p in setFinal] ("0", "------------")] + [(p.id, p) for p in setFinal]
def clean(self): def clean(self):
cleaned_data = super(JustificativaAusenciaForm, self).clean() super(JustificativaAusenciaForm, self).clean()
if not self.is_valid(): if not self.is_valid():
return self.cleaned_data return self.cleaned_data
@ -913,7 +923,7 @@ class JustificativaAusenciaForm(ModelForm):
else: else:
return self.cleaned_data return self.cleaned_data
def save(self, commit=False): def save(self):
justificativa = super().save(True) justificativa = super().save(True)

Loading…
Cancel
Save