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