Browse Source

decorator para validar diagnostico e checagem de servidor

diagnosticos
Felipe Vieira 13 years ago
parent
commit
2670c3fc22
  1. 25
      sigi/apps/diagnosticos/views.py
  2. 1
      sigi/settings.py
  3. 14
      sigi/templates/mobile/404.html

25
sigi/apps/diagnosticos/views.py

@ -7,6 +7,7 @@ from django.views.decorators.cache import cache_page
from sigi.apps.utils.decorators import login_required from sigi.apps.utils.decorators import login_required
from sigi.apps.diagnosticos.models import Diagnostico, Categoria from sigi.apps.diagnosticos.models import Diagnostico, Categoria
from sigi.apps.casas.models import Funcionario from sigi.apps.casas.models import Funcionario
from sigi.apps.servidores.models import Servidor
from sigi.apps.diagnosticos.forms import (DiagnosticoMobileForm, from sigi.apps.diagnosticos.forms import (DiagnosticoMobileForm,
CasaLegislativaMobileForm, FuncionariosMobileForm) CasaLegislativaMobileForm, FuncionariosMobileForm)
@ -16,17 +17,20 @@ def validate_diagnostico(func):
""" Retorna 404 caso o diagnostico esteja publicado """ Retorna 404 caso o diagnostico esteja publicado
ou o usuario nao seja um membro da equipe ou o usuario nao seja um membro da equipe
""" """
msg = None
try: try:
diagnostico = Diagnostico.objects.filter(status=False).get(pk=id_diagnostico) diagnostico = Diagnostico.objects.filter(status=False).get(pk=id_diagnostico)
if (request.user.get_profile() in diagnostico.get_membros()): if (request.user.get_profile() in diagnostico.get_membros()):
# continua o processamento normal da view # continua o processamento normal da view
return func(request, id_diagnostico, *args, **kwargs) return func(request, id_diagnostico, *args, **kwargs)
except Servidor.DoesNotExist:
msg = "Para acessar os diagnóstico você precisa ter um servidor cadastrado na sua conta."
except Diagnostico.DoesNotExist: except Diagnostico.DoesNotExist:
pass pass
# renderiza a pagina de 404 # renderiza a pagina de 404
context = RequestContext(request) context = RequestContext(request, {'msg': msg})
return render_to_response('mobile/404.html', {}) return render_to_response('mobile/404.html', context)
return decorator return decorator
@cache_page(5) @cache_page(5)
@ -36,14 +40,15 @@ def lista(request):
que contenham o status de não publicado. que contenham o status de não publicado.
""" """
# TODO Implementar pesquisa de diagnosticos, em que esses registros try:
# devem ser criado pelo servidor logado. servidor = request.user.get_profile()
diagnosticos = Diagnostico.objects.filter(status=False).filter( diagnosticos = servidor.get_diagnosticos(publicado=False)
responsavel=request.user.get_profile()) context = RequestContext(request, {'diagnosticos': diagnosticos})
return render_to_response('diagnosticos/diagnosticos_list.html', context)
context = RequestContext(request, {'diagnosticos': diagnosticos}) except Servidor.DoesNotExist:
return render_to_response('diagnosticos/diagnosticos_list.html', context) msg = "Para acessar os diagnóstico você precisa ter um servidor cadastrado na sua conta."
context = RequestContext(request, {'msg': msg})
return render_to_response('mobile/404.html', context)
@cache_page(5) @cache_page(5)
@validate_diagnostico @validate_diagnostico

1
sigi/settings.py

@ -127,6 +127,7 @@ TEMPLATE_CONTEXT_PROCESSORS = (
'django.core.context_processors.debug', 'django.core.context_processors.debug',
'django.core.context_processors.i18n', 'django.core.context_processors.i18n',
'django.core.context_processors.media', 'django.core.context_processors.media',
'django.core.context_processors.request',
'sigi.context_processors.charts_data', 'sigi.context_processors.charts_data',
) )

14
sigi/templates/mobile/404.html

@ -4,10 +4,16 @@
<h1>Ocorreu um erro</h1> <h1>Ocorreu um erro</h1>
{% endblock cabecalho %} {% endblock cabecalho %}
{% block corpo %} {% block corpo %}
<p>A página que está procurando não existe. </p> {% if msg %}
<p>Verifique se o diagnóstico, categoria ou pergunta está cadastrado no sistema.</p> <p>{{msg}}</p>
<a href="{% url lista_diagnosticos %}" data-icon="arrow-l" <a href="{{ request.META.HTTP_REFERER }}" data-icon="arrow-l"
data-direction="reverse" data-role="button" data-theme="c" class="ui-btn-left">Voltar</a> data-direction="reverse" data-role="button" data-theme="c" class="ui-btn-left">Voltar</a>
{% else %}
<p>A página que está procurando não existe. </p>
<p>Verifique se o diagnóstico, categoria ou pergunta está cadastrado no sistema.</p>
<a href="{% url lista_diagnosticos %}" data-icon="arrow-l"
data-direction="reverse" data-role="button" data-theme="c" class="ui-btn-left">Voltar</a>
{% endif %}
{% endblock corpo %} {% endblock corpo %}
{% block rodape %} {% block rodape %}

Loading…
Cancel
Save