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. 36
      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 datetime import datetime
from django.db import models from django.db import models
from sigi.apps.casas.models import CasaLegislativa
from sigi.apps.utils import SearchField from sigi.apps.utils import SearchField
from sigi.apps.utils.email import enviar_email from sigi.apps.utils.email import enviar_email
from eav.models import BaseChoice, BaseEntity, BaseSchema, BaseAttribute from eav.models import BaseChoice, BaseEntity, BaseSchema, BaseAttribute
@ -51,6 +52,9 @@ class Diagnostico(BaseEntity):
""" Retorna uma listas das categorias dinamicas que tem """ Retorna uma listas das categorias dinamicas que tem
ao menos uma resposta 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 # obtem todas as respostas dinamicas desse diagnostico
respostas = Resposta.objects.filter(entity_id=self.id).all() respostas = Resposta.objects.filter(entity_id=self.id).all()

36
sigi/apps/servidores/forms.py

@ -2,9 +2,10 @@
from django import forms 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 FeriasForm(forms.ModelForm):
class Meta: class Meta:
@ -13,9 +14,8 @@ class FeriasForm(forms.ModelForm):
def clean(self): def clean(self):
data = self.cleaned_data data = self.cleaned_data
if valida_data(data.get('inicio_ferias'), data.get('fim_ferias')): if valida_data(data.get('inicio_ferias'), data.get('fim_ferias')):
raise forms.ValidationError( raise forms.ValidationError(u"""A data de início deve ser menor
u"""A data de início deve ser menor que a data final. Verifique que a data final. Verifique novamente""")
novamente""")
return data return data
@ -26,9 +26,8 @@ class LicencaForm(forms.ModelForm):
def clean(self): def clean(self):
data = self.cleaned_data data = self.cleaned_data
if valida_data(data.get('inicio_licenca'), data.get('fim_licenca')): if valida_data(data.get('inicio_licenca'), data.get('fim_licenca')):
raise forms.ValidationError( raise forms.ValidationError(u"""A data de início deve ser menor
u"""A data de início deve ser menor que a data final. Verifique que a data final. Verifique novamente""")
novamente""")
return data return data
@ -39,7 +38,22 @@ class FuncaoForm(forms.ModelForm):
def clean(self): def clean(self):
data = self.cleaned_data data = self.cleaned_data
if valida_data(data.get('inicio_funcao'), data.get('fim_funcao')): if valida_data(data.get('inicio_funcao'), data.get('fim_funcao')):
raise forms.ValidationError( raise forms.ValidationError(u"""A data de início deve ser menor
u"""A data de início deve ser menor que a data final. Verifique que a data final. Verifique
novamente""") 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 return data

10
sigi/apps/utils/validators.py

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

3
sigi/templates/base_mobile.html

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

2
sigi/templates/diagnosticos/diagnosticos_categorias_list.html

@ -19,7 +19,7 @@
<li> <li>
{% endif %} {% endif %}
<a href="{% url detalhes_categoria_casa_legislativa diagnostico.id %}"> <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> </a>
</li> </li>
{% if ultima_categoria == 2 %} {% if ultima_categoria == 2 %}

Loading…
Cancel
Save