@ -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 ) ] )
@ -162,7 +164,7 @@ class MateriaSimplificadaForm(ModelForm):
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 "
" do ano na data de apresentação ( {} ). " . format ( ano , data_apresentacao . year ) )
" do ano na data de apresentação ( {} ). " . format ( ano , data_apresentacao . year ) )
raise ValidationError ( " O ano da matéria não pode ser "
raise ValidationError ( " O ano da matéria não pode ser "
" diferente do ano na data de apresentação " )
" diferente do ano na data de apresentação " )
@ -212,41 +214,42 @@ class MateriaLegislativaForm(ModelForm):
protocolo_antigo = self . instance . numero_protocolo
protocolo_antigo = self . instance . numero_protocolo
if protocolo :
if protocolo :
if not Protocolo . objects . filter ( numero = protocolo , ano = ano ) . exists ( ) :
if not Protocolo . objects . filter ( numero = protocolo , ano = ano ) . exists ( ) :
self . logger . error ( " Protocolo %s / %s não "
self . logger . error ( " Protocolo %s / %s não "
" existe " % ( protocolo , ano ) )
" existe " % ( protocolo , ano ) )
raise ValidationError ( _ ( ' Protocolo %s / %s não '
raise ValidationError ( _ ( ' Protocolo %s / %s não '
' existe ' % ( protocolo , ano ) ) )
' existe ' % ( protocolo , ano ) ) )
if protocolo_antigo != protocolo :
if protocolo_antigo != protocolo :
exist_materia = MateriaLegislativa . objects . filter (
exist_materia = MateriaLegislativa . objects . filter (
numero_protocolo = protocolo ,
numero_protocolo = protocolo ,
ano = ano ) . exists ( )
ano = ano ) . exists ( )
exist_doc = DocumentoAdministrativo . objects . filter (
exist_doc = DocumentoAdministrativo . objects . filter (
protocolo_id = protocolo ,
protocolo_id = protocolo ,
ano = ano ) . exists ( )
ano = ano ) . exists ( )
if exist_materia or exist_doc :
if exist_materia or exist_doc :
self . logger . error ( " Protocolo %s / %s ja possui "
self . logger . error ( " Protocolo %s / %s ja possui "
" documento vinculado "
" documento vinculado "
% ( protocolo , ano ) )
% ( protocolo , ano ) )
raise ValidationError ( _ ( ' Protocolo %s / %s ja possui '
raise ValidationError ( _ ( ' Protocolo %s / %s ja possui '
' documento vinculado '
' documento vinculado '
% ( protocolo , ano ) ) )
% ( protocolo , ano ) ) )
p = Protocolo . objects . get ( numero = protocolo , ano = ano )
p = Protocolo . objects . get ( numero = protocolo , ano = ano )
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 "
" do ano na data de apresentação ( {} ). "
" do ano na data de apresentação ( {} ). "
. format ( ano , data_apresentacao . year ) )
. format ( ano , data_apresentacao . year ) )
raise ValidationError ( _ ( " O ano da matéria não pode ser "
raise ValidationError ( _ ( " O ano da matéria não pode ser "
" diferente do ano na data de apresentação " ) )
" diferente do ano na data de apresentação " ) )
ano_origem_externa = cleaned_data [ ' ano_origem_externa ' ]
ano_origem_externa = cleaned_data [ ' ano_origem_externa ' ]
data_origem_externa = cleaned_data [ ' data_origem_externa ' ]
data_origem_externa = cleaned_data [ ' data_origem_externa ' ]
@ -254,11 +257,11 @@ class MateriaLegislativaForm(ModelForm):
if ano_origem_externa and data_origem_externa and \
if ano_origem_externa and data_origem_externa and \
ano_origem_externa != data_origem_externa . year :
ano_origem_externa != data_origem_externa . year :
self . logger . error ( " O ano de origem externa da matéria ( {} ) é "
self . logger . error ( " O ano de origem externa da matéria ( {} ) é "
" diferente do ano na data de origem externa ( {} ). "
" diferente do ano na data de origem externa ( {} ). "
. format ( ano_origem_externa , data_origem_externa ) )
. format ( ano_origem_externa , data_origem_externa ) )
raise ValidationError ( _ ( " O ano de origem externa da matéria não "
raise ValidationError ( _ ( " O ano de origem externa da matéria não "
" pode ser diferente do ano na data de "
" pode ser diferente do ano na data de "
" origem externa " ) )
" origem externa " ) )
return cleaned_data
return cleaned_data
@ -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__ )
@ -379,8 +383,8 @@ class RelatoriaForm(ModelForm):
comissao = Comissao . objects . get ( id = self . initial [ ' comissao ' ] )
comissao = Comissao . objects . get ( id = self . initial [ ' comissao ' ] )
except ObjectDoesNotExist as e :
except ObjectDoesNotExist as e :
self . logger . error ( " Objeto Comissao não encontrado com id= {} "
self . logger . error ( " Objeto Comissao não encontrado com id= {} "
" .A localização atual deve ser uma comissão. "
" .A localização atual deve ser uma comissão. "
. format ( self . initial [ ' comissao ' ] ) + str ( e ) )
. format ( self . initial [ ' comissao ' ] ) + str ( e ) )
msg = _ ( ' A localização atual deve ser uma comissão. ' )
msg = _ ( ' A localização atual deve ser uma comissão. ' )
raise ValidationError ( msg )
raise ValidationError ( msg )
else :
else :
@ -441,15 +445,15 @@ class TramitacaoForm(ModelForm):
destino = ultima_tramitacao . unidade_tramitacao_destino
destino = ultima_tramitacao . unidade_tramitacao_destino
if ( destino != self . cleaned_data [ ' unidade_tramitacao_local ' ] ) :
if ( destino != self . cleaned_data [ ' unidade_tramitacao_local ' ] ) :
self . logger . error ( " A origem da nova tramitação ( {} ) não é igual ao "
self . logger . error ( " A origem da nova tramitação ( {} ) não é igual ao "
" destino da última adicionada ( {} )! "
" destino da última adicionada ( {} )! "
. format ( self . cleaned_data [ ' unidade_tramitacao_local ' ] , destino ) )
. format ( self . cleaned_data [ ' unidade_tramitacao_local ' ] , destino ) )
msg = _ ( ' A origem da nova tramitação deve ser igual ao '
msg = _ ( ' A origem da nova tramitação deve ser igual ao '
' destino da última adicionada! ' )
' destino da última adicionada! ' )
raise ValidationError ( msg )
raise ValidationError ( msg )
if cleaned_data [ ' data_tramitacao ' ] > timezone . now ( ) . date ( ) :
if cleaned_data [ ' data_tramitacao ' ] > timezone . now ( ) . date ( ) :
self . logger . error ( ' A data de tramitação informada ( {} ) não é ' +
self . logger . error ( ' A data de tramitação informada ( {} ) não é ' +
' menor ou igual a data de hoje! ' . format ( cleaned_data [ ' data_tramitacao ' ] ) )
' menor ou igual a data de hoje! ' . format ( cleaned_data [ ' data_tramitacao ' ] ) )
msg = _ (
msg = _ (
' A data de tramitação deve ser ' +
' A data de tramitação deve ser ' +
' menor ou igual a data de hoje! ' )
' menor ou igual a data de hoje! ' )
@ -460,8 +464,8 @@ class TramitacaoForm(ModelForm):
msg = _ ( ' A data da nova tramitação deve ser ' +
msg = _ ( ' A data da nova tramitação deve ser ' +
' maior que a data da última tramitação! ' )
' maior que a data da última tramitação! ' )
self . logger . error ( " A data da nova tramitação ( {} ) deve ser "
self . logger . error ( " A data da nova tramitação ( {} ) deve ser "
" maior que a data da última tramitação ( {} )! "
" maior que a data da última tramitação ( {} )! "
. format ( data_tram_form , ultima_tramitacao . data_tramitacao ) )
. format ( data_tram_form , ultima_tramitacao . data_tramitacao ) )
raise ValidationError ( msg )
raise ValidationError ( msg )
if data_enc_form :
if data_enc_form :
@ -469,8 +473,8 @@ class TramitacaoForm(ModelForm):
msg = _ ( ' A data de encaminhamento deve ser ' +
msg = _ ( ' A data de encaminhamento deve ser ' +
' maior que a data de tramitação! ' )
' maior que a data de tramitação! ' )
self . logger . error ( " A data de encaminhamento ( {} ) deve ser "
self . logger . error ( " A data de encaminhamento ( {} ) deve ser "
" maior que a data de tramitação! ( {} ) "
" maior que a data de tramitação! ( {} ) "
. format ( data_enc_form , data_tram_form ) )
. format ( data_enc_form , data_tram_form ) )
raise ValidationError ( msg )
raise ValidationError ( msg )
if data_prazo_form :
if data_prazo_form :
@ -478,8 +482,8 @@ class TramitacaoForm(ModelForm):
msg = _ ( ' A data fim de prazo deve ser ' +
msg = _ ( ' A data fim de prazo deve ser ' +
' maior que a data de tramitação! ' )
' maior que a data de tramitação! ' )
self . logger . error ( " A data fim de prazo ( {} ) deve ser " +
self . logger . error ( " A data fim de prazo ( {} ) deve ser " +
" maior que a data de tramitação ( {} )! "
" maior que a data de tramitação ( {} )! "
. format ( data_prazo_form , data_tram_form ) )
. format ( data_prazo_form , data_tram_form ) )
raise ValidationError ( msg )
raise ValidationError ( msg )
return cleaned_data
return cleaned_data
@ -529,10 +533,10 @@ class TramitacaoUpdateForm(TramitacaoForm):
if self . cleaned_data [ ' unidade_tramitacao_destino ' ] != \
if self . cleaned_data [ ' unidade_tramitacao_destino ' ] != \
self . instance . unidade_tramitacao_destino :
self . instance . unidade_tramitacao_destino :
self . logger . error ( " Você não pode mudar a Unidade de Destino desta "
self . logger . error ( " Você não pode mudar a Unidade de Destino desta "
" tramitação para {} , pois irá conflitar com a Unidade "
" tramitação para {} , pois irá conflitar com a Unidade "
" Local da tramitação seguinte ( {} ). "
" Local da tramitação seguinte ( {} ). "
. format ( self . cleaned_data [ ' unidade_tramitacao_destino ' ] ,
. format ( self . cleaned_data [ ' unidade_tramitacao_destino ' ] ,
self . instance . unidade_tramitacao_destino ) )
self . instance . unidade_tramitacao_destino ) )
raise ValidationError (
raise ValidationError (
' Você não pode mudar a Unidade de Destino desta '
' Você não pode mudar a Unidade de Destino desta '
' tramitação, pois irá conflitar com a Unidade '
' tramitação, pois irá conflitar com a Unidade '
@ -589,15 +593,15 @@ class LegislacaoCitadaForm(ModelForm):
try :
try :
self . logger . debug ( " Tentando obter objeto NormalJuridica (numero= {} , ano= {} , tipo= {} ). "
self . logger . debug ( " Tentando obter objeto NormalJuridica (numero= {} , ano= {} , tipo= {} ). "
. format ( cleaned_data [ ' numero ' ] , cleaned_data [ ' ano ' ] , cleaned_data [ ' tipo ' ] ) )
. format ( cleaned_data [ ' numero ' ] , cleaned_data [ ' ano ' ] , cleaned_data [ ' tipo ' ] ) )
norma = NormaJuridica . objects . get (
norma = 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 . error ( " A norma a ser inclusa (numero= {} , ano= {} , tipo= {} ) "
self . logger . error ( " A norma a ser inclusa (numero= {} , ano= {} , tipo= {} ) "
" não existe no cadastro de Normas. "
" não existe no cadastro de Normas. "
. format ( cleaned_data [ ' numero ' ] , cleaned_data [ ' ano ' ] , cleaned_data [ ' tipo ' ] ) )
. format ( cleaned_data [ ' numero ' ] , cleaned_data [ ' ano ' ] , cleaned_data [ ' tipo ' ] ) )
msg = _ ( ' A norma a ser inclusa não existe no cadastro '
msg = _ ( ' A norma a ser inclusa não existe no cadastro '
' de Normas. ' )
' de Normas. ' )
raise ValidationError ( msg )
raise ValidationError ( msg )
@ -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 ' ,
@ -658,8 +663,8 @@ class NumeracaoForm(ModelForm):
try :
try :
self . logger . info ( " Tentando obter objeto MateriaLegislativa (numero= {} , ano= {} . tipo= {} ). "
self . logger . info ( " Tentando obter objeto MateriaLegislativa (numero= {} , ano= {} . tipo= {} ). "
. format ( self . cleaned_data [ ' numero_materia ' ] ,
. format ( self . cleaned_data [ ' numero_materia ' ] ,
self . cleaned_data [ ' ano_materia ' ] , self . cleaned_data [ ' tipo_materia ' ] ) )
self . cleaned_data [ ' ano_materia ' ] , self . cleaned_data [ ' tipo_materia ' ] ) )
MateriaLegislativa . objects . get (
MateriaLegislativa . objects . get (
numero = self . cleaned_data [ ' numero_materia ' ] ,
numero = self . cleaned_data [ ' numero_materia ' ] ,
ano = self . cleaned_data [ ' ano_materia ' ] ,
ano = self . cleaned_data [ ' ano_materia ' ] ,
@ -668,8 +673,8 @@ class NumeracaoForm(ModelForm):
msg = _ ( ' A matéria a ser inclusa não existe no cadastro '
msg = _ ( ' A matéria a ser inclusa não existe no cadastro '
' de matérias legislativas. ' )
' de matérias legislativas. ' )
self . logger . error ( " A MateriaLegislativa a ser inclusa (numero= {} , ano= {} . tipo= {} ) não existe no cadastro de matérias legislativas. "
self . logger . error ( " A MateriaLegislativa a ser inclusa (numero= {} , ano= {} . tipo= {} ) não existe no cadastro de matérias legislativas. "
. format ( self . cleaned_data [ ' numero_materia ' ] ,
. format ( self . cleaned_data [ ' numero_materia ' ] ,
self . cleaned_data [ ' ano_materia ' ] , self . cleaned_data [ ' tipo_materia ' ] ) )
self . cleaned_data [ ' ano_materia ' ] , self . cleaned_data [ ' tipo_materia ' ] ) )
raise ValidationError ( msg )
raise ValidationError ( msg )
if Numeracao . objects . filter (
if Numeracao . objects . filter (
@ -680,8 +685,8 @@ class NumeracaoForm(ModelForm):
) . exists ( ) :
) . exists ( ) :
msg = _ ( ' Essa numeração já foi cadastrada. ' )
msg = _ ( ' Essa numeração já foi cadastrada. ' )
self . logger . error ( " Essa numeração (materia= {} , tipo_materia= {} , ano_materia= {} , numero_materia= {} ) "
self . logger . error ( " Essa numeração (materia= {} , tipo_materia= {} , ano_materia= {} , numero_materia= {} ) "
" já foi cadastrada. " . format ( self . instance . materia , self . cleaned_data [ ' tipo_materia ' ] ,
" já foi cadastrada. " . format ( self . instance . materia , self . cleaned_data [ ' tipo_materia ' ] ,
self . cleaned_data [ ' ano_materia ' ] , self . cleaned_data [ ' numero_materia ' ] ) )
self . cleaned_data [ ' ano_materia ' ] , self . cleaned_data [ ' numero_materia ' ] ) )
raise ValidationError ( msg )
raise ValidationError ( msg )
return self . cleaned_data
return self . cleaned_data
@ -716,7 +721,7 @@ class AnexadaForm(ModelForm):
try :
try :
self . logger . info ( " Tentando obter objeto MateriaLegislativa (numero= {} , ano= {} , tipo= {} ). "
self . logger . info ( " Tentando obter objeto MateriaLegislativa (numero= {} , ano= {} , tipo= {} ). "
. format ( cleaned_data [ ' numero ' ] , cleaned_data [ ' ano ' ] , cleaned_data [ ' tipo ' ] ) )
. format ( cleaned_data [ ' numero ' ] , cleaned_data [ ' ano ' ] , cleaned_data [ ' tipo ' ] ) )
materia_anexada = MateriaLegislativa . objects . get (
materia_anexada = MateriaLegislativa . objects . get (
numero = cleaned_data [ ' numero ' ] ,
numero = cleaned_data [ ' numero ' ] ,
ano = cleaned_data [ ' ano ' ] ,
ano = cleaned_data [ ' ano ' ] ,
@ -725,7 +730,7 @@ class AnexadaForm(ModelForm):
msg = _ ( ' A MateriaLegislativa a ser anexada (numero= {} , ano= {} , tipo= {} ) não existe no cadastro '
msg = _ ( ' A MateriaLegislativa a ser anexada (numero= {} , ano= {} , tipo= {} ) não existe no cadastro '
' de matérias legislativas. ' . format ( cleaned_data [ ' numero ' ] , cleaned_data [ ' ano ' ] , cleaned_data [ ' tipo ' ] ) )
' de matérias legislativas. ' . format ( cleaned_data [ ' numero ' ] , cleaned_data [ ' ano ' ] , cleaned_data [ ' tipo ' ] ) )
self . logger . error ( " A matéria a ser anexada não existe no cadastro "
self . logger . error ( " A matéria a ser anexada não existe no cadastro "
" de matérias legislativas. " )
" de matérias legislativas. " )
raise ValidationError ( msg )
raise ValidationError ( msg )
materia_principal = self . instance . materia_principal
materia_principal = self . instance . materia_principal
@ -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 ' ) )
@ -1204,7 +1211,7 @@ class TipoProposicaoForm(ModelForm):
if not content_type . model_class ( ) . objects . filter (
if not content_type . model_class ( ) . objects . filter (
pk = cd [ ' tipo_conteudo_related ' ] ) . exists ( ) :
pk = cd [ ' tipo_conteudo_related ' ] ) . exists ( ) :
self . logger . error ( " O Registro definido ( %s ) não está na base de %s . "
self . logger . error ( " O Registro definido ( %s ) não está na base de %s . "
% ( cd [ ' tipo_conteudo_related ' ] , content_type ) )
% ( cd [ ' tipo_conteudo_related ' ] , content_type ) )
raise ValidationError (
raise ValidationError (
_ ( ' O Registro definido ( %s ) não está na base de %s . '
_ ( ' O Registro definido ( %s ) não está na base de %s . '
) % ( cd [ ' tipo_conteudo_related ' ] , content_type ) )
) % ( cd [ ' tipo_conteudo_related ' ] , content_type ) )
@ -1377,11 +1384,11 @@ class ProposicaoForm(forms.ModelForm):
' texto_original ' , 7 if self . texto_articulado_proposicao else 12 ) ) )
' texto_original ' , 7 if self . texto_articulado_proposicao else 12 ) ) )
fields . append ( to_column ( ( Fieldset ( _ ( ' Outras informações - Vincular a Matéria Legislativa Existente ' ) ,
fields . append ( to_column ( ( Fieldset ( _ ( ' Outras informações - Vincular a Matéria Legislativa Existente ' ) ,
to_column ( ( ' tipo_materia ' , 12 ) ) ,
to_column ( ( ' tipo_materia ' , 12 ) ) ,
to_column ( ( ' numero_materia ' , 6 ) ) ,
to_column ( ( ' numero_materia ' , 6 ) ) ,
to_column ( ( ' ano_materia ' , 6 ) )
to_column ( ( ' ano_materia ' , 6 ) )
) , 12 ) ) ,
) , 12 ) ) ,
)
)
self . helper = FormHelper ( )
self . helper = FormHelper ( )
self . helper . layout = SaplFormLayout ( * fields )
self . helper . layout = SaplFormLayout ( * fields )
@ -1410,9 +1417,10 @@ 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
def gerar_hash ( self , inst , receber_recibo ) :
def gerar_hash ( self , inst , receber_recibo ) :
@ -1443,7 +1451,7 @@ class ProposicaoForm(forms.ModelForm):
if tm and am and nm :
if tm and am and nm :
try :
try :
self . logger . debug ( " Tentando obter objeto MateriaLegislativa (tipo_id= {} , ano= {} , numero= {} ). "
self . logger . debug ( " Tentando obter objeto MateriaLegislativa (tipo_id= {} , ano= {} , numero= {} ). "
. format ( tm , am , nm ) )
. format ( tm , am , nm ) )
materia_de_vinculo = MateriaLegislativa . objects . get (
materia_de_vinculo = MateriaLegislativa . objects . get (
tipo_id = tm ,
tipo_id = tm ,
ano = am ,
ano = am ,
@ -1451,11 +1459,11 @@ class ProposicaoForm(forms.ModelForm):
)
)
except ObjectDoesNotExist :
except ObjectDoesNotExist :
self . logger . error ( " Objeto MateriaLegislativa vinculada (tipo_id= {} , ano= {} , numero= {} ) não existe! "
self . logger . error ( " Objeto MateriaLegislativa vinculada (tipo_id= {} , ano= {} , numero= {} ) não existe! "
. format ( tm , am , nm ) )
. format ( tm , am , nm ) )
raise ValidationError ( _ ( ' Matéria Vinculada não existe! ' ) )
raise ValidationError ( _ ( ' Matéria Vinculada não existe! ' ) )
else :
else :
self . logger . info ( " MateriaLegislativa vinculada (tipo_id= {} , ano= {} , numero= {} ) com sucesso. "
self . logger . info ( " MateriaLegislativa vinculada (tipo_id= {} , ano= {} , numero= {} ) com sucesso. "
. format ( tm , am , nm ) )
. format ( tm , am , nm ) )
cd [ ' materia_de_vinculo ' ] = materia_de_vinculo
cd [ ' materia_de_vinculo ' ] = materia_de_vinculo
return cd
return cd
@ -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
@ -1732,8 +1739,8 @@ class ConfirmarProposicaoForm(ProposicaoForm):
if not numeracao :
if not numeracao :
self . logger . error ( " A sequência de numeração (por ano ou geral) "
self . logger . error ( " A sequência de numeração (por ano ou geral) "
" não foi configurada para a aplicação em "
" não foi configurada para a aplicação em "
" tabelas auxiliares " )
" tabelas auxiliares " )
raise ValidationError ( " A sequência de numeração (por ano ou geral) "
raise ValidationError ( " A sequência de numeração (por ano ou geral) "
" não foi configurada para a aplicação em "
" não foi configurada para a aplicação em "
" tabelas auxiliares " )
" tabelas auxiliares " )
@ -1751,7 +1758,7 @@ class ConfirmarProposicaoForm(ProposicaoForm):
elif self . instance . tipo . content_type . model_class (
elif self . instance . tipo . content_type . model_class (
) == TipoDocumento and not cd [ ' materia_de_vinculo ' ] :
) == TipoDocumento and not cd [ ' materia_de_vinculo ' ] :
self . logger . error ( " Documentos não podem ser incorporados sem definir "
self . logger . error ( " Documentos não podem ser incorporados sem definir "
" para qual Matéria Legislativa ele se destina. " )
" para qual Matéria Legislativa ele se destina. " )
raise ValidationError (
raise ValidationError (
_ ( ' Documentos não podem ser incorporados sem definir '
_ ( ' Documentos não podem ser incorporados sem definir '
' para qual Matéria Legislativa ele se destina. ' ) )
' para qual Matéria Legislativa ele se destina. ' ) )
@ -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 ' ]
@ -2083,7 +2094,7 @@ class EtiquetaPesquisaForm(forms.Form):
if ( not cleaned_data [ ' data_inicial ' ] or
if ( not cleaned_data [ ' data_inicial ' ] or
not cleaned_data [ ' data_final ' ] ) :
not cleaned_data [ ' data_final ' ] ) :
self . logger . error ( " Caso pesquise por data, os campos de Data Incial e "
self . logger . error ( " Caso pesquise por data, os campos de Data Incial e "
" Data Final devem ser preenchidos obrigatoriamente " )
" Data Final devem ser preenchidos obrigatoriamente " )
raise ValidationError ( _ (
raise ValidationError ( _ (
' Caso pesquise por data, os campos de Data Incial e ' +
' Caso pesquise por data, os campos de Data Incial e ' +
' Data Final devem ser preenchidos obrigatoriamente ' ) )
' Data Final devem ser preenchidos obrigatoriamente ' ) )
@ -2091,7 +2102,7 @@ class EtiquetaPesquisaForm(forms.Form):
# a inicial
# a inicial
elif cleaned_data [ ' data_final ' ] < cleaned_data [ ' data_inicial ' ] :
elif cleaned_data [ ' data_final ' ] < cleaned_data [ ' data_inicial ' ] :
self . logger . error ( " A Data Final ( {} ) não pode ser menor que a Data Inicial( {} ). "
self . logger . error ( " A Data Final ( {} ) não pode ser menor que a Data Inicial( {} ). "
. format ( cleaned_data [ ' data_final ' ] , cleaned_data [ ' data_inicial ' ] ) )
. format ( cleaned_data [ ' data_final ' ] , cleaned_data [ ' 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 ' ) )
@ -2200,22 +2211,22 @@ class ExcluirTramitacaoEmLote(forms.Form):
logger = logging . getLogger ( __name__ )
logger = logging . getLogger ( __name__ )
data_tramitacao = forms . DateField ( required = True ,
data_tramitacao = forms . DateField ( required = True ,
label = _ ( ' Data da Tramitação ' ) )
label = _ ( ' Data da Tramitação ' ) )
unidade_tramitacao_local = forms . ModelChoiceField ( label = _ ( ' Unidade Local ' ) ,
unidade_tramitacao_local = forms . ModelChoiceField ( label = _ ( ' Unidade Local ' ) ,
required = True ,
required = True ,
queryset = UnidadeTramitacao . objects . all ( ) ,
queryset = UnidadeTramitacao . objects . all ( ) ,
empty_label = ' ------ ' )
empty_label = ' ------ ' )
unidade_tramitacao_destino = forms . ModelChoiceField ( label = _ ( ' Unidade Destino ' ) ,
unidade_tramitacao_destino = forms . ModelChoiceField ( label = _ ( ' Unidade Destino ' ) ,
required = True ,
required = True ,
queryset = UnidadeTramitacao . objects . all ( ) ,
queryset = UnidadeTramitacao . objects . all ( ) ,
empty_label = ' ------ ' )
empty_label = ' ------ ' )
status = forms . ModelChoiceField ( label = _ ( ' Status ' ) ,
status = forms . ModelChoiceField ( label = _ ( ' Status ' ) ,
required = True ,
required = True ,
queryset = StatusTramitacao . objects . all ( ) ,
queryset = StatusTramitacao . objects . all ( ) ,
empty_label = ' ------ ' )
empty_label = ' ------ ' )
def clean ( self ) :
def clean ( self ) :
super ( ExcluirTramitacaoEmLote , self ) . clean ( )
super ( ExcluirTramitacaoEmLote , self ) . clean ( )
@ -2231,15 +2242,15 @@ class ExcluirTramitacaoEmLote(forms.Form):
status = cleaned_data [ ' status ' ]
status = cleaned_data [ ' status ' ]
tramitacao_set = Tramitacao . objects . filter ( data_tramitacao = data_tramitacao ,
tramitacao_set = Tramitacao . objects . filter ( data_tramitacao = data_tramitacao ,
unidade_tramitacao_local = unidade_tramitacao_local ,
unidade_tramitacao_local = unidade_tramitacao_local ,
unidade_tramitacao_destino = unidade_tramitacao_destino ,
unidade_tramitacao_destino = unidade_tramitacao_destino ,
status = status )
status = status )
if not tramitacao_set . exists ( ) :
if not tramitacao_set . exists ( ) :
self . logger . error ( " Não existem tramitações com os dados informados "
self . logger . error ( " Não existem tramitações com os dados informados "
" (data_tramitacao= {} , unidade_tramitacao_local= {} ). "
" (data_tramitacao= {} , unidade_tramitacao_local= {} ). "
" unidade_tramitacao_destino= {} , status= {} ). "
" unidade_tramitacao_destino= {} , status= {} ). "
. format ( data_tramitacao , unidade_tramitacao_local ,
. format ( data_tramitacao , unidade_tramitacao_local ,
unidade_tramitacao_destino , status ) )
unidade_tramitacao_destino , status ) )
raise forms . ValidationError (
raise forms . ValidationError (
_ ( " Não existem tramitações com os dados informados. " ) )
_ ( " Não existem tramitações com os dados informados. " ) )
@ -2250,7 +2261,7 @@ class ExcluirTramitacaoEmLote(forms.Form):
row1 = to_row (
row1 = to_row (
[ ( ' data_tramitacao ' , 6 ) ,
[ ( ' data_tramitacao ' , 6 ) ,
( ' status ' , 6 ) , ] )
( ' status ' , 6 ) , ] )
row2 = to_row (
row2 = to_row (
[ ( ' unidade_tramitacao_local ' , 6 ) ,
[ ( ' unidade_tramitacao_local ' , 6 ) ,
( ' unidade_tramitacao_destino ' , 6 ) ] )
( ' unidade_tramitacao_destino ' , 6 ) ] )