web/ldt_utils/user/views.py
author ymh <ymh.work@gmail.com>
Tue, 08 Jun 2010 15:31:42 +0200
changeset 4 7c994c98d1df
parent 0 web/ldt/user/views.py@ecdfc63274bf
permissions -rw-r--r--
change ldt.ldt to ldt.ldt_utils
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     1
from django.conf import settings
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     2
from django.http import HttpResponse, HttpResponseRedirect
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     3
from django.shortcuts import render_to_response
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     4
from django.contrib.auth import authenticate, login, logout
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     5
from django.contrib.auth.decorators import login_required
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     6
# from django.contrib.sites.models import Site, RequestSite
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
from django.template import RequestContext, Context, loader
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     8
from django.utils.translation import ugettext as _
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     9
from django.core.urlresolvers import reverse
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    10
from forms import EmailChangeForm
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    11
from django.utils import simplejson
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    12
from ldt.management import test_cms, test_ldt
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    13
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    14
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    15
def home(request):
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    16
    return render_to_response('ldt/user/home.html',context_instance=RequestContext(request))
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    17
    
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    18
@login_required   
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    19
def profile(request):
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    20
    return render_to_response('ldt/user/profile.html', context_instance=RequestContext(request))
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    21
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    22
@login_required     
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    23
def space(request, page_id=None, slug=None):
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    24
    cms = test_cms()
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    25
    ldt = test_ldt()
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    26
    context={
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    27
        'cms': cms,
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    28
        'ldt': ldt
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    29
    }
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    30
    return render_to_response('ldt/user/space.html', context, context_instance=RequestContext(request))
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    31
    
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    32
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    33
    
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    34
def logout_view(request):
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    35
    logout(request)
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    36
    # return HttpResponseRedirect(request.META.get('HTTP_REFERER', '/'))
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    37
    return HttpResponseRedirect(settings.LOGOUT_URL)
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    38
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    39
    
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    40
def loginAjax(request, loginstate_template_name='ldt/user/login_form.html'):
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    41
    if request.method == "POST":
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    42
        username=request.POST["username"]
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    43
        password=request.POST["password"]
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    44
        user = authenticate(username=username, password=password)
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    45
        error_message = _(u"Sorry, that's not a valid username or password.")
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    46
        if user is not None:
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    47
            if user.is_active:
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    48
                login(request, user)
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    49
                context = RequestContext(request, { 'username': user.username,})
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    50
                template = loader.get_template(loginstate_template_name)
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    51
                html = template.render(context)
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    52
                return HttpResponse(simplejson.dumps({'message': u'successful', 'username': user.username, 'html': html, 'reload': request.POST["reload"],}))               
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    53
            else:
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    54
                return HttpResponse(simplejson.dumps({'message': error_message,}))
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    55
        else:
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    56
            return HttpResponse(simplejson.dumps({'message': error_message,}))
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    57
    return render_to_response('ldt/user/login_ajax.html', context_instance=RequestContext(request))
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    58
            
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    59
@login_required              
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    60
def change_email(request, post_change_redirect=None):
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    61
    if post_change_redirect is None:
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    62
        post_change_redirect = reverse('ldt.user.views.change_email_done')
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    63
    if request.method == "POST":
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    64
        form = EmailChangeForm(request.user, request.POST)
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    65
        if form.is_valid():
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    66
            form.save()
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    67
            return HttpResponseRedirect(post_change_redirect)
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    68
    else:
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    69
        form = EmailChangeForm(request.user)
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    70
    return render_to_response('ldt/user/change_email.html', {'form': form,}, context_instance=RequestContext(request))
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    71
    
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    72
@login_required    
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    73
def change_email_done(request, template_name='ldt/user/change_email_done.html'):
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    74
    return render_to_response(template_name, context_instance=RequestContext(request))
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    75