Browse Source

Site design

raylu 14 years ago
parent
commit
f60a315894

+ 6 - 0
pyc/grader/context_processors.py

@@ -0,0 +1,6 @@
+def nav(request):
+	from grader.models import Lab
+	return {
+			'labs': Lab.objects.all(),
+			'authenticated' : request.user.is_authenticated()
+			}

+ 8 - 8
pyc/grader/views.py

@@ -8,13 +8,12 @@ from grader.models import Lab, Submission
 import os
 
 def index(request):
-	return render_to_response('index.html', {
-			'labs' : Lab.objects.all(),
-			'authenticated' : request.user.is_authenticated(),
-			})
+	return render_to_response('index.html',
+			context_instance=RequestContext(request))
 
 def password_changed(request):
-	return render_to_response('password_changed.html')
+	return render_to_response('password_changed.html',
+			context_instance=RequestContext(request))
 
 def lab(request, lab_id):
 	from datetime import timedelta
@@ -35,7 +34,7 @@ def lab(request, lab_id):
 			'lab' : lab,
 			'submissions' : submissions,
 			'staff' : request.user.is_staff
-			})
+			}, context_instance=RequestContext(request))
 
 @login_required
 def submit(request, lab_id):
@@ -90,10 +89,11 @@ def submission(request, lab_id, user_id):
 	f.close()
 	return render_to_response('submission.html', {
 			'code' : code,
-			})
+			}, context_instance=RequestContext(request))
 
 def faq(request):
-	return render_to_response('faq.html')
+	return render_to_response('faq.html', {},
+			context_instance=RequestContext(request))
 
 def grade(file, id):
 	import subprocess

+ 6 - 0
pyc/settings.py

@@ -113,6 +113,12 @@ TEMPLATE_DIRS = (
 	path.join(path.dirname(__file__), 'templates'),
 )
 
+TEMPLATE_CONTEXT_PROCESSORS = (
+	'django.contrib.auth.context_processors.auth',
+	'django.core.context_processors.i18n',
+	'pyc.grader.context_processors.nav',
+)
+
 INSTALLED_APPS = (
 	'django.contrib.auth',
 	'django.contrib.contenttypes',

+ 27 - 0
pyc/templates/base.html

@@ -6,6 +6,33 @@
 	<link href="/static/style.css" rel="stylesheet" type="text/css" charset="utf8">
 </head>
 <body>
+<div id="wrap">
+	<div id="content">
 {% block body %}{% endblock %}
+	</div>
+	<div id="nav">
+		<div class="nav">
+			<a href="{% url grader.views.index %}">Home</a>
+
+			<p>Labs:
+			<ol>
+			{% for lab in labs %}
+				<li><a href="/lab/{{ lab.id }}/">{{ lab.name }}</a></li>
+			{% endfor %}
+			</ol></p>
+
+			<a href="{% url grader.views.faq %}">FAQ</a>
+		</div>
+		<div class="nav">
+			{% if authenticated %}
+				<a href="{% url django.contrib.auth.views.password_change %}">Change Password</a>
+				<br />
+				<a href="{% url django.contrib.auth.views.logout %}">Logout</a>
+			{% else %}
+				<a href="{% url django.contrib.auth.views.login %}">Login</a>
+			{% endif %}
+		</div>
+	</div>
+</div>
 </body>
 </html>

+ 0 - 4
pyc/templates/faq.html

@@ -44,8 +44,4 @@ Yes.
 </p>
 	</li>
 </ol>
-
-<p>
-<a href="/">Home</a>
-</p>
 {% endblock %}

+ 0 - 19
pyc/templates/index.html

@@ -1,12 +1,5 @@
 {% extends 'base.html' %}
 {% block body %}
-Labs:
-<ol>
-{% for lab in labs %}
-	<li><a href="/lab/{{ lab.id }}/">{{ lab.name }}</a></li>
-{% endfor %}
-</ol>
-
 <p>
 pyc is a way to learn Python through competition.
 <br />
@@ -16,16 +9,4 @@ Submit your code online and be automatically graded and ranked.
 <br />
 If you are interested, please contact raylu.
 </p>
-
-<p>
-{% if authenticated %}
-	<a href="{% url django.contrib.auth.views.password_change %}">Change Password</a>
-	<br />
-	<a href="{% url django.contrib.auth.views.logout %}">Logout</a>
-{% else %}
-	<a href="{% url django.contrib.auth.views.login %}">Login</a>
-{% endif %}
-<br />
-<a href="{% url grader.views.faq %}">FAQ</a>
-</p>
 {% endblock %}

+ 0 - 2
pyc/templates/lab.html

@@ -27,7 +27,5 @@ Lab {{ lab.id }} due {{ lab.due }} at 11:59:59 PDT (UTC-7):
 
 <p>
 <a href="/submit/{{ lab.id }}/">Submit</a> your solution
-<br>
-<a href="/">Back</a> to the homepage
 </p>
 {% endblock %}

+ 46 - 1
static/style.css

@@ -1,3 +1,42 @@
+body {
+	background-color: #000;
+	color: #eee;
+}
+
+a, a:visited, a:active {
+	color: #08a;
+	text-decoration: none;
+}
+a:hover {
+	color: #0ae;
+	text-decoration: underline;
+}
+
+#wrap {
+	width: 1000px;
+	margin: auto;
+	margin-top: 25px;
+}
+
+#wrap #content {
+	width: 750px;
+	background-color: #111;
+	padding: 15px;
+	float: right;
+}
+
+#wrap #nav {
+	float: left;
+	width: 175px;
+}
+
+#wrap #nav div.nav {
+	width: 175px;
+	background-color: #111;
+	padding: 15px;
+	margin-bottom: 15px;
+}
+
 table#lab {
 	border-collapse: collapse;
 	border: 1px solid #000;
@@ -10,5 +49,11 @@ table#lab {
 	padding: 5px;
 }
 #lab tr.staff td {
-	background-color: #ddd;
+	color: #888;
+}
+
+input {
+	background-color: #111;
+	color: #eee;
+	border: 1 solid #eee;
 }