From bc9cbd2cc9286bfe86b57c8ec44fec657c6c1236 Mon Sep 17 00:00:00 2001 From: raylu Date: Thu, 12 May 2011 19:34:22 -0400 Subject: Login/logout --- pyc/grader/views.py | 10 ++++++++-- pyc/settings.py | 2 ++ pyc/templates/index.html | 8 ++++++++ pyc/templates/login.html | 25 +++++++++++++++++++++++++ pyc/urls.py | 3 +++ 5 files changed, 46 insertions(+), 2 deletions(-) create mode 100644 pyc/templates/login.html diff --git a/pyc/grader/views.py b/pyc/grader/views.py index bba6b8f..c4fb082 100644 --- a/pyc/grader/views.py +++ b/pyc/grader/views.py @@ -2,9 +2,15 @@ from django.shortcuts import render_to_response from grader.models import Lab def index(request): - return render_to_response('index.html', {'labs' : Lab.objects.all()}) + return render_to_response('index.html', { + 'labs' : Lab.objects.all(), + 'authenticated' : request.user.is_authenticated(), + }) def lab(request, lab_id): lab = Lab.objects.get(pk=lab_id) submissions = lab.submission_set.filter(user__is_staff=False).order_by('-grade', '-time') - return render_to_response('lab.html', {'lab' : lab, 'submissions' : submissions}) + return render_to_response('lab.html', { + 'lab' : lab, + 'submissions' : submissions, + }) diff --git a/pyc/settings.py b/pyc/settings.py index 69b3746..1e53bdd 100644 --- a/pyc/settings.py +++ b/pyc/settings.py @@ -126,6 +126,8 @@ INSTALLED_APPS = ( 'grader', ) +LOGIN_REDIRECT_URL = '/' + # A sample logging configuration. The only tangible logging # performed by this configuration is to send an email to # the site admins on every HTTP 500 error. diff --git a/pyc/templates/index.html b/pyc/templates/index.html index 6707fca..ba860f2 100644 --- a/pyc/templates/index.html +++ b/pyc/templates/index.html @@ -6,4 +6,12 @@ Labs:
  • {{ lab.name }}
  • {% endfor %} + +

    +{% if authenticated %} + Logout +{% else %} + Login +{% endif %} +

    {% endblock %} diff --git a/pyc/templates/login.html b/pyc/templates/login.html new file mode 100644 index 0000000..b80abee --- /dev/null +++ b/pyc/templates/login.html @@ -0,0 +1,25 @@ +{% extends 'base.html' %} +{% load url from future %} + +{% block body %} +{% if form.errors %} +

    Login error.

    +{% endif %} + +
    +{% csrf_token %} + + + + + + + + + +
    {{ form.username.label_tag }}{{ form.username }}
    {{ form.password.label_tag }}{{ form.password }}
    + + + +
    +{% endblock %} diff --git a/pyc/urls.py b/pyc/urls.py index b65970e..9f30735 100644 --- a/pyc/urls.py +++ b/pyc/urls.py @@ -7,6 +7,9 @@ urlpatterns = patterns('', url(r'^$', 'grader.views.index', name='index'), url(r'^lab/(?P\d+)/$', 'grader.views.lab'), + url(r'^login/$', 'django.contrib.auth.views.login', {'template_name': 'login.html'}), + url(r'^logout/$', 'django.contrib.auth.views.logout', {'next_page': '/'}), + # Uncomment the admin/doc line below to enable admin documentation: # url(r'^admin/doc/', include('django.contrib.admindocs.urls')), -- cgit v1.2.3