diff options
author | raylu <raylu@cmu.edu> | 2011-05-12 19:34:22 -0400 |
---|---|---|
committer | raylu <raylu@cmu.edu> | 2011-05-12 19:34:22 -0400 |
commit | bc9cbd2cc9286bfe86b57c8ec44fec657c6c1236 (patch) | |
tree | f52c62fd8ecaa3a7e709fe4b7bb855f8a41c7a90 | |
parent | 8300a1a6644d33deaf5ad0dcbc51755db3c21f00 (diff) | |
download | pyc-bc9cbd2cc9286bfe86b57c8ec44fec657c6c1236.tar.xz |
Login/logout
-rw-r--r-- | pyc/grader/views.py | 10 | ||||
-rw-r--r-- | pyc/settings.py | 2 | ||||
-rw-r--r-- | pyc/templates/index.html | 8 | ||||
-rw-r--r-- | pyc/templates/login.html | 25 | ||||
-rw-r--r-- | pyc/urls.py | 3 |
5 files changed, 46 insertions, 2 deletions
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: <li><a href="/lab/{{ lab.id }}/">{{ lab.name }}</a></li> {% endfor %} </ol> + +<p> +{% if authenticated %} + <a href="{% url django.contrib.auth.views.logout %}">Logout</a> +{% else %} + <a href="{% url django.contrib.auth.views.login %}">Login</a> +{% endif %} +</p> {% 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 %} +<p>Login error.</p> +{% endif %} + +<form method="post" action="{% url 'django.contrib.auth.views.login' %}"> +{% csrf_token %} +<table> + <tr> + <td style="text-align: right">{{ form.username.label_tag }}</td> + <td>{{ form.username }}</td> + </tr> + <tr> + <td style="text-align: right">{{ form.password.label_tag }}</td> + <td>{{ form.password }}</td> + </tr> +</table> + +<input type="submit" value="login" /> +<input type="hidden" name="next" value="{{ next }}" /> +</form> +{% 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<lab_id>\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')), |