diff --git a/sigi/apps/diagnosticos/views.py b/sigi/apps/diagnosticos/views.py index 906e035..296d572 100644 --- a/sigi/apps/diagnosticos/views.py +++ b/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.diagnosticos.models import Diagnostico, Categoria from sigi.apps.casas.models import Funcionario +from sigi.apps.servidores.models import Servidor from sigi.apps.diagnosticos.forms import (DiagnosticoMobileForm, CasaLegislativaMobileForm, FuncionariosMobileForm) @@ -16,17 +17,20 @@ def validate_diagnostico(func): """ Retorna 404 caso o diagnostico esteja publicado ou o usuario nao seja um membro da equipe """ + msg = None try: diagnostico = Diagnostico.objects.filter(status=False).get(pk=id_diagnostico) if (request.user.get_profile() in diagnostico.get_membros()): # continua o processamento normal da view 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: pass # renderiza a pagina de 404 - context = RequestContext(request) - return render_to_response('mobile/404.html', {}) + context = RequestContext(request, {'msg': msg}) + return render_to_response('mobile/404.html', context) return decorator @cache_page(5) @@ -36,14 +40,15 @@ def lista(request): que contenham o status de não publicado. """ - # TODO Implementar pesquisa de diagnosticos, em que esses registros - # devem ser criado pelo servidor logado. - diagnosticos = Diagnostico.objects.filter(status=False).filter( - responsavel=request.user.get_profile()) - - context = RequestContext(request, {'diagnosticos': diagnosticos}) - return render_to_response('diagnosticos/diagnosticos_list.html', context) - + try: + servidor = request.user.get_profile() + diagnosticos = servidor.get_diagnosticos(publicado=False) + context = RequestContext(request, {'diagnosticos': diagnosticos}) + return render_to_response('diagnosticos/diagnosticos_list.html', context) + except Servidor.DoesNotExist: + 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) @validate_diagnostico diff --git a/sigi/settings.py b/sigi/settings.py index eb2fc21..1cb3c90 100644 --- a/sigi/settings.py +++ b/sigi/settings.py @@ -127,6 +127,7 @@ TEMPLATE_CONTEXT_PROCESSORS = ( 'django.core.context_processors.debug', 'django.core.context_processors.i18n', 'django.core.context_processors.media', + 'django.core.context_processors.request', 'sigi.context_processors.charts_data', ) diff --git a/sigi/templates/mobile/404.html b/sigi/templates/mobile/404.html index 584add7..35029c3 100644 --- a/sigi/templates/mobile/404.html +++ b/sigi/templates/mobile/404.html @@ -4,10 +4,16 @@

Ocorreu um erro

{% endblock cabecalho %} {% block corpo %} -

A página que está procurando não existe.

-

Verifique se o diagnóstico, categoria ou pergunta está cadastrado no sistema.

- Voltar + {% if msg %} +

{{msg}}

+ Voltar + {% else %} +

A página que está procurando não existe.

+

Verifique se o diagnóstico, categoria ou pergunta está cadastrado no sistema.

+ Voltar + {% endif %} {% endblock corpo %} {% block rodape %}