Browse Source

Corrigindo e inserindo a validação da data entre duas últimas funções do servidor cadastrado.

diagnosticos
Gilson Filho 13 years ago
parent
commit
5d37b0ea60
  1. 4
      sigi/apps/diagnosticos/models.py
  2. 34
      sigi/apps/servidores/forms.py
  3. 10
      sigi/apps/utils/validators.py
  4. 3
      sigi/templates/base_mobile.html
  5. 2
      sigi/templates/diagnosticos/diagnosticos_categorias_list.html

4
sigi/apps/diagnosticos/models.py

@ -2,6 +2,7 @@
from datetime import datetime
from django.db import models
from sigi.apps.casas.models import CasaLegislativa
from sigi.apps.utils import SearchField
from sigi.apps.utils.email import enviar_email
from eav.models import BaseChoice, BaseEntity, BaseSchema, BaseAttribute
@ -51,6 +52,9 @@ class Diagnostico(BaseEntity):
""" Retorna uma listas das categorias dinamicas que tem
ao menos uma resposta
"""
# Pesquisando se os contatos, que é a segunda categoria estão respondidas
casa_legislativa = CasaLegislativa.objects.get(pk=self.casa_legislativa.id)
# obtem todas as respostas dinamicas desse diagnostico
respostas = Resposta.objects.filter(entity_id=self.id).all()

34
sigi/apps/servidores/forms.py

@ -2,9 +2,10 @@
from django import forms
from sigi.apps.utils.validators import valida_data
from sigi.apps.utils.validators import valida_data, valida_periodo_data
from sigi.apps.servidores.models import Ferias, Licenca, Funcao, Servidor
from sigi.apps.servidores.models import Ferias, Licenca, Funcao
class FeriasForm(forms.ModelForm):
class Meta:
@ -13,9 +14,8 @@ class FeriasForm(forms.ModelForm):
def clean(self):
data = self.cleaned_data
if valida_data(data.get('inicio_ferias'), data.get('fim_ferias')):
raise forms.ValidationError(
u"""A data de início deve ser menor que a data final. Verifique
novamente""")
raise forms.ValidationError(u"""A data de início deve ser menor
que a data final. Verifique novamente""")
return data
@ -26,9 +26,8 @@ class LicencaForm(forms.ModelForm):
def clean(self):
data = self.cleaned_data
if valida_data(data.get('inicio_licenca'), data.get('fim_licenca')):
raise forms.ValidationError(
u"""A data de início deve ser menor que a data final. Verifique
novamente""")
raise forms.ValidationError(u"""A data de início deve ser menor
que a data final. Verifique novamente""")
return data
@ -39,7 +38,22 @@ class FuncaoForm(forms.ModelForm):
def clean(self):
data = self.cleaned_data
if valida_data(data.get('inicio_funcao'), data.get('fim_funcao')):
raise forms.ValidationError(
u"""A data de início deve ser menor que a data final. Verifique
raise forms.ValidationError(u"""A data de início deve ser menor
que a data final. Verifique
novamente""")
# Verifica na função anterior, se o seu período é igual
# ou está entre o período da função atual.
servidor = Servidor.objects.get(nome_completo=data.get('servidor'))
if len(servidor.funcao_set.all()) > 1:
funcao_anterior = servidor.funcao_set.all()[1]
else:
funcao_anterior = servidor.funcao_set.all()[0]
if valida_periodo_data(funcao_anterior.inicio_funcao,
funcao_anterior.fim_funcao, data.get('inicio_funcao'),
data.get('fim_funcao')):
raise forms.ValidationError(u"""Você não pode exercer
uma função no mesmo período que a anterior, como também,
não pode ser entre o período da mesma.""")
return data

10
sigi/apps/utils/validators.py

@ -1,5 +1,6 @@
# -*- coding: utf8 -*-
def valida_data(data_inicio, data_final):
"""Função responsável por validar se o intervalo das
datas estão erradas, ou seja, se a data de início está
@ -13,6 +14,7 @@ def valida_data(data_inicio, data_final):
else:
return False
def valida_periodo_data(di01, df01, di02, df02):
"""Função responsável por validar dois períodos de datas.
Isso é usado para verificar se determinado servidor exerceu
@ -34,13 +36,7 @@ def valida_periodo_data(di01, df01, di02, df02):
# Verificando a primeira situação
if di01 == di02 and df01 == df02:
return True
else:
return False
# Verificando a segunda situação
if di01 >= di02 or df01 <= df02:
elif ((di01 >= di02) or (di02 <= df01)) and df01 <= df02:
return True
else:
return False

3
sigi/templates/base_mobile.html

@ -33,8 +33,7 @@
{% block rodape %}
<ul>
<li><a href="#" data-icon="grid" class="ui-state-persist">Listar</a></li>
<li><a href="#" data-icon="home">Home</a></li>
<li><a href="#" data-icon="plus">Anexar Arquivos</a></li>
<li><a href="#" data-icon="delete">Sair</a></li>
</ul>
{% endblock rodape %}
</div>

2
sigi/templates/diagnosticos/diagnosticos_categorias_list.html

@ -19,7 +19,7 @@
<li>
{% endif %}
<a href="{% url detalhes_categoria_casa_legislativa diagnostico.id %}">
<h4 class="">01. Identificação da Casa Legislativa</h4>
<h4 class="ui-li-heading-read">01. Identificação da Casa Legislativa</h4>
</a>
</li>
{% if ultima_categoria == 2 %}

Loading…
Cancel
Save