aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNirbheek Chauhan <nirbheek.chauhan@gmail.com>2008-10-04 01:56:23 +0530
committerNirbheek Chauhan <nirbheek.chauhan@gmail.com>2008-10-04 02:19:46 +0530
commit17699233c8086cf05477c3174016d4db014ef16a (patch)
tree5c25b8cf49f46cd7351b39b02023b5c726f29777 /master/master/views.py
parentAdd a frontpage for displaying the root webpage (diff)
downloadautotua-17699233c8086cf05477c3174016d4db014ef16a.tar.gz
autotua-17699233c8086cf05477c3174016d4db014ef16a.tar.bz2
autotua-17699233c8086cf05477c3174016d4db014ef16a.zip
Un-suck front page! Login support!
* master/icons/Makefile: * master/icons/home.svg: * master/master/templates/basic.html - Replace login.svg with an edited version of logout.svg - Add a new icon (home.svg), and it's logged-out version: none.png - Use logout, login, home icons - Modify header to accomodate login/logout/home icons * master/master/templates/frontpage.html: * master/master/media/css/frontpage.css: - Fix the frontpage to not suck while displaying the "pieces" (the 4 large images) * master/master/templates/registration/login.html: * master/master/urls.py: * master/master/views.py: - Implement login! - Also, implement awesome login/logout image behaviour ;p * Using RequestContext() * none.png/home.png are implemented in the same way
Diffstat (limited to 'master/master/views.py')
-rw-r--r--master/master/views.py44
1 files changed, 38 insertions, 6 deletions
diff --git a/master/master/views.py b/master/master/views.py
index e1b5eba..a95892c 100644
--- a/master/master/views.py
+++ b/master/master/views.py
@@ -6,22 +6,53 @@
# Immortal lh!
#
-from django.http import HttpResponse
-from django.shortcuts import *
+import process
from master.models import User, Job
+
+from django.shortcuts import *
from django.conf import settings
-import process
+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)
+ 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)
+ return render_to_response('userpage.html', details,
+ context_instance=RequestContext(request))
def jobs_page(request, username=None):
jobs = None
@@ -33,4 +64,5 @@ def jobs_page(request, username=None):
for job in jobs:
job.stage_url = process.generate_stage_url(job)
details['jobs'] = jobs
- return render_to_response('jobs.html', details)
+ return render_to_response('jobs.html', details,
+ context_instance=RequestContext(request))