Browse Source

Fix #1862 (#1867)

pull/1894/head
Victor Fabre 7 years ago
committed by Edward Ribeiro
parent
commit
90237c2a79
  1. 31
      sapl/protocoloadm/forms.py
  2. 16
      sapl/protocoloadm/views.py

31
sapl/protocoloadm/forms.py

@ -308,6 +308,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)')
class Meta: class Meta:
model = Protocolo model = Protocolo
fields = ['tipo_protocolo', fields = ['tipo_protocolo',
@ -316,6 +318,7 @@ class ProtocoloDocumentForm(ModelForm):
'assunto', 'assunto',
'interessado', 'interessado',
'observacao', 'observacao',
'numero'
] ]
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
@ -331,6 +334,8 @@ class ProtocoloDocumentForm(ModelForm):
[('interessado', 12)]) [('interessado', 12)])
row5 = to_row( row5 = to_row(
[('observacao', 12)]) [('observacao', 12)])
row6 = to_row(
[('numero', 12)])
self.helper = FormHelper() self.helper = FormHelper()
self.helper.layout = Layout( self.helper.layout = Layout(
@ -341,6 +346,11 @@ class ProtocoloDocumentForm(ModelForm):
row4, row4,
row5, row5,
HTML(" "), HTML(" "),
),
Fieldset(_('Número do Protocolo (Apenas se quiser que a numeração comece '
'a partir do número a ser informado)'),
row6,
HTML(" "),
form_actions(label=_('Protocolar Documento')) form_actions(label=_('Protocolar Documento'))
) )
) )
@ -385,6 +395,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)')
class Meta: class Meta:
model = Protocolo model = Protocolo
fields = ['tipo_materia', fields = ['tipo_materia',
@ -395,7 +407,8 @@ class ProtocoloMateriaForm(ModelForm):
'observacao', 'observacao',
'numero_materia', 'numero_materia',
'ano_materia', 'ano_materia',
'vincular_materia' 'vincular_materia',
'numero'
] ]
def clean_autor(self): def clean_autor(self):
@ -447,12 +460,24 @@ class ProtocoloMateriaForm(ModelForm):
[('assunto_ementa', 12)]) [('assunto_ementa', 12)])
row4 = to_row( row4 = to_row(
[('observacao', 12)]) [('observacao', 12)])
row5 = to_row(
[('numero', 12)])
self.helper = FormHelper() self.helper = FormHelper()
self.helper.layout = Layout( self.helper.layout = Layout(
Fieldset(_('Identificação da Matéria'), Fieldset(_('Identificação da Matéria'),
row1, row2, row3, row1,
row4, form_actions(label='Protocolar Matéria'))) row2,
row3,
row4,
HTML(" "),
),
Fieldset(_('Número do Protocolo (Apenas se quiser que a numeração comece'
' a partir do número a ser informado)'),
row5,
HTML(" "),
form_actions(label=_('Protocolar Matéria')))
)
super(ProtocoloMateriaForm, self).__init__( super(ProtocoloMateriaForm, self).__init__(
*args, **kwargs) *args, **kwargs)

16
sapl/protocoloadm/views.py

@ -304,7 +304,12 @@ class ProtocoloDocumentoView(PermissionRequiredMixin,
protocolo.tipo_processo = '0' # TODO validar o significado protocolo.tipo_processo = '0' # TODO validar o significado
protocolo.anulado = False protocolo.anulado = False
if not protocolo.numero:
protocolo.numero = (numero['numero__max'] + 1) if numero['numero__max'] else 1 protocolo.numero = (numero['numero__max'] + 1) if numero['numero__max'] else 1
if protocolo.numero < (numero['numero__max'] + 1):
msg = _('Número de protocolo deve ser maior que {}').format(numero['numero__max'])
messages.add_message(self.request, messages.ERROR, msg)
return self.render_to_response(self.get_context_data())
protocolo.ano = timezone.now().year protocolo.ano = timezone.now().year
protocolo.data = timezone.now() protocolo.data = timezone.now()
protocolo.hora = timezone.now().time() protocolo.hora = timezone.now().time()
@ -415,6 +420,7 @@ class ProtocoloMateriaView(PermissionRequiredMixin, CreateView):
'pk': protocolo.pk}) 'pk': protocolo.pk})
def form_valid(self, form): def form_valid(self, form):
protocolo = form.save(commit=False)
try: try:
numeracao = sapl.base.models.AppConfig.objects.last( numeracao = sapl.base.models.AppConfig.objects.last(
).sequencia_numeracao ).sequencia_numeracao
@ -443,10 +449,12 @@ class ProtocoloMateriaView(PermissionRequiredMixin, CreateView):
if numeracao is None: if numeracao is None:
numero['numero__max'] = 0 numero['numero__max'] = 0
protocolo = Protocolo() if not protocolo.numero:
protocolo.numero = (numero['numero__max'] + 1) if numero['numero__max'] else 1
protocolo.numero = ( if protocolo.numero < (numero['numero__max'] + 1):
numero['numero__max'] + 1) if numero['numero__max'] else 1 msg = _('Número de protocolo deve ser maior que {}').format(numero['numero__max'])
messages.add_message(self.request, messages.ERROR, msg)
return self.render_to_response(self.get_context_data())
protocolo.ano = timezone.now().year protocolo.ano = timezone.now().year
protocolo.data = timezone.now().date() protocolo.data = timezone.now().date()
protocolo.hora = timezone.now().time() protocolo.hora = timezone.now().time()

Loading…
Cancel
Save