# vim: set sw=4 sts=4 et : # Copyright: 2008 Gentoo Foundation # Author(s): Nirbheek Chauhan # 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))