Browse Source

modificando maneira de extender a classe user

diagnosticos
Felipe Vieira 13 years ago
parent
commit
757b8cebd3
  1. 7
      sigi/apps/diagnosticos/decorators.py
  2. 8
      sigi/apps/diagnosticos/views.py
  3. 16
      sigi/apps/servidores/models.py
  4. 3
      sigi/settings.py
  5. 6
      sigi/templates/mobile/404.html

7
sigi/apps/diagnosticos/decorators.py

@ -2,10 +2,7 @@
from django.template import RequestContext from django.template import RequestContext
from django.shortcuts import render_to_response from django.shortcuts import render_to_response
from sigi.apps.diagnosticos.models import Diagnostico from sigi.apps.diagnosticos.models import Diagnostico
from sigi.apps.servidores.models import Servidor
def validate_diagnostico(func): def validate_diagnostico(func):
def decorator(request, id_diagnostico, *args, **kwargs): def decorator(request, id_diagnostico, *args, **kwargs):
@ -15,11 +12,9 @@ def validate_diagnostico(func):
msg = None 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.servidor 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

8
sigi/apps/diagnosticos/views.py

@ -11,7 +11,6 @@ from sigi.apps.utils.decorators import login_required
from sigi.apps.diagnosticos.decorators import validate_diagnostico from sigi.apps.diagnosticos.decorators import validate_diagnostico
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)
@ -22,15 +21,10 @@ def lista(request):
"""Consulta os diagnosticos do servidor logado, """Consulta os diagnosticos do servidor logado,
que contenham o status de não publicado. que contenham o status de não publicado.
""" """
try: servidor = request.user.servidor
servidor = request.user.get_profile()
diagnosticos = servidor.get_diagnosticos(publicado=False) diagnosticos = servidor.get_diagnosticos(publicado=False)
context = RequestContext(request, {'diagnosticos': diagnosticos}) context = RequestContext(request, {'diagnosticos': diagnosticos})
return render_to_response('diagnosticos/diagnosticos_list.html', context) 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) @cache_page(5)

16
sigi/apps/servidores/models.py

@ -1,5 +1,6 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
from django.db import models from django.db import models
from django.db.models.signals import post_save
from django.contrib.contenttypes import generic from django.contrib.contenttypes import generic
from django.contrib.auth.models import User from django.contrib.auth.models import User
@ -141,6 +142,21 @@ class Servidor(models.Model):
def __unicode__(self): def __unicode__(self):
return self.nome_completo return self.nome_completo
# Soluçao alternativa para extender o usuário do django
# Acesso do servidor de um objeto user
User.profile = property(lambda user: Servidor.objects.get(user))
# Sinal para ao criar um usuário criar um servidor
# baseado no nome contino no LDAP
def create_user_profile(sender, instance, created, **kwargs):
if created:
Servidor.objects.create(
user=instance,
nome_completo= "%s %s" % (instance.first_name, instance.last_name)
)
post_save.connect(create_user_profile, sender=User)
class Funcao(models.Model): class Funcao(models.Model):
""" Modelo para guardar o histórico de funções dos """ Modelo para guardar o histórico de funções dos
servidores no Interlegis servidores no Interlegis

3
sigi/settings.py

@ -100,9 +100,6 @@ AUTH_LDAP_MIRROR_GROUPS = True
AUTH_LDAP_CACHE_GROUPS = True AUTH_LDAP_CACHE_GROUPS = True
AUTH_LDAP_GROUP_CACHE_TIMEOUT = 3600 AUTH_LDAP_GROUP_CACHE_TIMEOUT = 3600
# Django Auth Configurations
AUTH_PROFILE_MODULE = 'servidores.Servidor'
# Keep ModelBackend around for per-user permissions and maybe a local superuser. # Keep ModelBackend around for per-user permissions and maybe a local superuser.
AUTHENTICATION_BACKENDS = ( AUTHENTICATION_BACKENDS = (
'django_auth_ldap.backend.LDAPBackend', 'django_auth_ldap.backend.LDAPBackend',

6
sigi/templates/mobile/404.html

@ -4,16 +4,10 @@
<h1>Ocorreu um erro</h1> <h1>Ocorreu um erro</h1>
{% endblock cabecalho %} {% endblock cabecalho %}
{% block corpo %} {% block corpo %}
{% if msg %}
<p>{{msg}}</p>
<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>
{% else %}
<p>A página que está procurando não existe. </p> <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> <p>Verifique se o diagnóstico, categoria ou pergunta está cadastrado no sistema.</p>
<a href="{% url lista_diagnosticos %}" data-icon="arrow-l" <a href="{% url lista_diagnosticos %}" 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>
{% endif %}
{% endblock corpo %} {% endblock corpo %}
{% block rodape %} {% block rodape %}

Loading…
Cancel
Save