@ -1,6 +1,6 @@
import django_filters
import logging
from crispy_forms . bootstrap import InlineRadios
from crispy_forms . helper import FormHelper
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 . utils import timezone
from django . utils . translation import ugettext_lazy as _
import django_filters
from sapl . base . models import Autor , TipoAutor
from sapl . crispy_layout_mixin import SaplFormLayout , form_actions , to_row
@ -25,8 +26,11 @@ from .models import (AcompanhamentoDocumento, DocumentoAcessorioAdministrativo,
Protocolo , TipoDocumentoAdministrativo ,
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 = [ ( ' ' , ' --------- ' ) ,
( ' 0 ' , ' Administrativo ' ) ,
@ -41,6 +45,7 @@ EM_TRAMITACAO = [('', '---------'),
( 0 , ' Sim ' ) ,
( 1 , ' Não ' ) ]
class AcompanhamentoDocumentoForm ( ModelForm ) :
class Meta :
@ -253,10 +258,12 @@ class AnularProcoloAdmForm(ModelForm):
ano = cleaned_data [ ' ano ' ]
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 )
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 (
_ ( " Protocolo %s / %s já encontra-se anulado " )
% ( numero , ano ) )
@ -341,7 +348,8 @@ class ProtocoloDocumentForm(ModelForm):
observacao = forms . CharField ( required = False ,
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 :
model = Protocolo
@ -431,7 +439,8 @@ class ProtocoloMateriaForm(ModelForm):
assunto_ementa = forms . CharField ( required = True ,
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 :
model = Protocolo
@ -450,13 +459,16 @@ class ProtocoloMateriaForm(ModelForm):
def clean_autor ( self ) :
autor_field = self . cleaned_data [ ' autor ' ]
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 )
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
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
return autor_field
@ -471,7 +483,8 @@ class ProtocoloMateriaForm(ModelForm):
if data [ ' vincular_materia ' ] == ' True ' :
try :
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 (
' Favor informar o número e ano da matéria a ser vinculada ' )
self . logger . debug ( " Tentando obter MateriaLegislativa com ano= {} , numero= {} e data= {} . "
@ -487,7 +500,8 @@ class ProtocoloMateriaForm(ModelForm):
except ObjectDoesNotExist :
self . logger . error ( " MateriaLegislativa informada (ano= {} , numero= {} e data= {} ) não existente. "
. 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
@ -773,7 +787,8 @@ class DocumentoAdministrativoForm(ModelForm):
numero_protocolo , ano_protocolo ) )
raise ValidationError ( msg )
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 = _ (
' Existe mais de um Protocolo com este ano e número. ' % (
numero_protocolo , ano_protocolo ) )
@ -871,13 +886,16 @@ class DesvincularDocumentoForm(ModelForm):
try :
self . logger . debug ( " Tentando obter DocumentoAdministrativo com numero= {} , ano= {} e 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 :
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 (
_ ( " %s %s / %s não se encontra vinculado a nenhum protocolo " % ( tipo , numero , ano ) ) )
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 (
_ ( " %s %s / %s não existe " % ( tipo , numero , ano ) ) )
@ -939,13 +957,16 @@ class DesvincularMateriaForm(forms.Form):
try :
self . logger . info ( " Tentando obter MateriaLegislativa com numero= {} , ano= {} e 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 :
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 (
_ ( " %s %s / %s não se encontra vinculada a nenhum protocolo " % ( tipo , numero , ano ) ) )
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 (
_ ( " %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 (
' documento_id ' , flat = True )
class FichaPesquisaAdmForm ( forms . Form ) :
logger = logging . getLogger ( __name__ )