raylu 14 жил өмнө
parent
commit
bc9cbd2cc9

+ 8 - 2
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,
+			})

+ 2 - 0
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.

+ 8 - 0
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 %}

+ 25 - 0
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 %}

+ 3 - 0
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')),