Browse Source

Melhorando cadastro de complemento

pull/3077/head
ulyssesBML 6 years ago
parent
commit
a40aa9bebd
  1. 16
      sapl/protocoloadm/forms.py
  2. 9
      sapl/protocoloadm/views.py
  3. 2
      sapl/templates/protocoloadm/documentoadministrativo_filter.html

16
sapl/protocoloadm/forms.py

@ -1,3 +1,4 @@
import re
import django_filters import django_filters
import logging import logging
@ -201,9 +202,9 @@ class DocumentoAdministrativoFilterSet(django_filters.FilterSet):
('o', 4), ]) ('o', 4), ])
row2 = to_row( row2 = to_row(
[('numero', 4), [('numero', 5),
('complemento',4), ('complemento',2),
('ano', 4)]) ('ano', 5)])
row3 = to_row( row3 = to_row(
[('protocolo__numero', 4), [('protocolo__numero', 4),
@ -1121,11 +1122,18 @@ class DocumentoAdministrativoForm(FileFieldCheckMixin, ModelForm):
numero_protocolo = self.data['numero_protocolo'] numero_protocolo = self.data['numero_protocolo']
ano_protocolo = self.data['ano_protocolo'] ano_protocolo = self.data['ano_protocolo']
complemento = self.data['complemento'] complemento = re.sub('\s+', '', self.data['complemento']).upper()
numero_documento = int(self.cleaned_data['numero']) numero_documento = int(self.cleaned_data['numero'])
tipo_documento = int(self.data['tipo']) tipo_documento = int(self.data['tipo'])
ano_documento = int(self.data['ano']) ano_documento = int(self.data['ano'])
equal_docs = DocumentoAdministrativo.objects.filter(numero=numero_documento,
ano=ano_documento,
complemento=complemento)
if equal_docs.exists() and equal_docs.first().pk != self.instance.pk:
raise ValidationError("Um documento administrativo com esse numero, complemento e ano já existe.")
# não permite atualizar para numero/ano/tipo existente # não permite atualizar para numero/ano/tipo existente
if self.instance.pk: if self.instance.pk:
mudanca_doc = numero_documento != self.instance.numero \ mudanca_doc = numero_documento != self.instance.numero \

9
sapl/protocoloadm/views.py

@ -1,5 +1,6 @@
from datetime import datetime from datetime import datetime
import logging import logging
import re
from random import choice from random import choice
from string import ascii_letters, digits from string import ascii_letters, digits
@ -365,6 +366,10 @@ class DocumentoAdministrativoCrud(Crud):
def cancel_url(self): def cancel_url(self):
return self.search_url return self.search_url
def form_valid(self, form):
form.instance.complemento = re.sub('\s+', '', form.instance.complemento).upper()
return super().form_valid(form)
class UpdateView(Crud.UpdateView): class UpdateView(Crud.UpdateView):
form_class = DocumentoAdministrativoForm form_class = DocumentoAdministrativoForm
layout_key = None layout_key = None
@ -376,7 +381,7 @@ class DocumentoAdministrativoCrud(Crud):
self.object = form.save() self.object = form.save()
dict_objeto_novo = self.object.__dict__ dict_objeto_novo = self.object.__dict__
atributos = [ atributos = [
'tipo_id', 'ano', 'numero', 'data', 'protocolo_id', 'assunto', 'tipo_id', 'ano', 'numero', 'data', 'protocolo_id', 'assunto',
'interessado', 'tramitacao', 'restrito', 'texto_integral','numero_externo', 'interessado', 'tramitacao', 'restrito', 'texto_integral','numero_externo',
@ -393,6 +398,8 @@ class DocumentoAdministrativoCrud(Crud):
self.object.save() self.object.save()
break break
form.instance.complemento = re.sub('\s+', '', form.instance.complemento).upper()
return super().form_valid(form) return super().form_valid(form)

2
sapl/templates/protocoloadm/documentoadministrativo_filter.html

@ -37,7 +37,7 @@
{% if request.user.is_anonymous and not d.restrito or not request.user.is_anonymous%} {% if request.user.is_anonymous and not d.restrito or not request.user.is_anonymous%}
<tr> <tr>
<td> <td>
<strong><a href="{% url 'sapl.protocoloadm:documentoadministrativo_detail' d.id %}">{{d.tipo.sigla}} {{d.numero}}/{{d.ano}} - {{d.tipo}}</strong></a></br> <strong><a href="{% url 'sapl.protocoloadm:documentoadministrativo_detail' d.id %}">{{d.tipo.sigla}} {{d.numero}}{%if d.complemento %}-{{d.complemento}}{% endif %}/{{d.ano}} - {{d.tipo}}</strong></a></br>
<strong>Interessado:</strong>&nbsp;{{ d.interessado|default_if_none:"Não informado"}} <strong>Interessado:</strong>&nbsp;{{ d.interessado|default_if_none:"Não informado"}}
</br> </br>
<strong>Assunto:</strong>&nbsp;{{ d.assunto|safe }} <strong>Assunto:</strong>&nbsp;{{ d.assunto|safe }}

Loading…
Cancel
Save