aboutsummaryrefslogtreecommitdiff
blob: a95892cba108e73e11a1f16969f225c8cf865de9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
# vim: set sw=4 sts=4 et :
# Copyright: 2008 Gentoo Foundation
# Author(s): Nirbheek Chauhan <nirbheek.chauhan@gmail.com>
# License: AGPL-3
#
# Immortal lh!
#

import process
from master.models import User, Job

from django.shortcuts import *
from django.conf import settings
from django.http import HttpResponseRedirect
from django.template import RequestContext
from django.contrib.auth.forms import AuthenticationForm
from django.contrib.auth.decorators import login_required
from django.views.decorators.cache import never_cache

details = {'media_prefix': settings.MEDIA_PREFIX}

def front_page(request):
    return render_to_response('frontpage.html', details,
                              context_instance=RequestContext(request))

@never_cache
def login(request):
    """Displays the login form and handles the login action."""

    redirect_to = request.REQUEST.get('next', '')
    if request.method == "POST":
        form = AuthenticationForm(data=request.POST)
        if form.is_valid():
            # Light security check -- make sure redirect_to isn't garbage.
            if not redirect_to or '//' in redirect_to or ' ' in redirect_to:
                redirect_to = '/~%s' % form.get_user()
            from django.contrib.auth import login
            login(request, form.get_user())
            if request.session.test_cookie_worked():
                request.session.delete_test_cookie()
            return HttpResponseRedirect(redirect_to)
    else:
        form = AuthenticationForm(request)
    request.session.set_test_cookie()
    details['form'] = form
    details['next'] = redirect_to
    return render_to_response('registration/login.html', details,
                              context_instance=RequestContext(request))

def user_page(request, username):
    user = get_object_or_404(User, username=username)
    for i in ('first_name', 'last_name', 'email',):
        details[i] = getattr(user, i)
    return render_to_response('userpage.html', details,
                              context_instance=RequestContext(request))

def jobs_page(request, username=None):
    jobs = None
    if username:
        user = get_object_or_404(User, username=username)
        jobs = get_list_or_404(Job, maintainer=user)
    else:
        jobs = get_list_or_404(Job)
    for job in jobs:
        job.stage_url = process.generate_stage_url(job)
    details['jobs'] = jobs
    return render_to_response('jobs.html', details,
                              context_instance=RequestContext(request))