From 25167a7fa5adc08c3bbf79c730d6a0bb45e50efb Mon Sep 17 00:00:00 2001
From: raylu
Date: Thu, 12 May 2011 21:37:52 -0400
Subject: Basic file uploading
---
pyc/grader/views.py | 20 ++++++++++++++++++++
pyc/settings.py | 3 ++-
pyc/templates/lab.html | 4 ++++
pyc/templates/submit.html | 10 ++++++++++
pyc/urls.py | 1 +
5 files changed, 37 insertions(+), 1 deletion(-)
create mode 100644 pyc/templates/submit.html
diff --git a/pyc/grader/views.py b/pyc/grader/views.py
index c4fb082..21ea22f 100644
--- a/pyc/grader/views.py
+++ b/pyc/grader/views.py
@@ -1,4 +1,6 @@
from django.shortcuts import render_to_response
+from django.template import RequestContext
+
from grader.models import Lab
def index(request):
@@ -14,3 +16,21 @@ def lab(request, lab_id):
'lab' : lab,
'submissions' : submissions,
})
+
+from django.contrib.auth.decorators import login_required
+@login_required
+def submit(request, lab_id):
+ from django.http import HttpResponseRedirect
+ if request.method == 'POST':
+ form = SubmissionForm(request.POST, request.FILES)
+ if form.is_valid():
+ return HttpResponseRedirect('/user/1/')
+ else:
+ form = SubmissionForm()
+ return render_to_response('submit.html', {
+ 'form' : form,
+ }, context_instance=RequestContext(request))
+
+from django import forms
+class SubmissionForm(forms.Form):
+ file = forms.FileField()
diff --git a/pyc/settings.py b/pyc/settings.py
index 1e53bdd..75d27be 100644
--- a/pyc/settings.py
+++ b/pyc/settings.py
@@ -51,7 +51,7 @@ USE_L10N = True
# Absolute filesystem path to the directory that will hold user-uploaded files.
# Example: "/home/media/media.lawrence.com/media/"
-MEDIA_ROOT = ''
+MEDIA_ROOT = path.expanduser('~/submissions')
# URL that handles the media served from MEDIA_ROOT. Make sure to use a
# trailing slash.
@@ -127,6 +127,7 @@ INSTALLED_APPS = (
)
LOGIN_REDIRECT_URL = '/'
+LOGIN_URL = '/login'
# A sample logging configuration. The only tangible logging
# performed by this configuration is to send an email to
diff --git a/pyc/templates/lab.html b/pyc/templates/lab.html
index f07a082..2d7316d 100644
--- a/pyc/templates/lab.html
+++ b/pyc/templates/lab.html
@@ -17,4 +17,8 @@ Lab {{ lab.id }} due {{ lab.due }} at 11:59:59 PDT (UTC-7):
{% endfor %}
+
+
+Submit your solution
+
{% endblock %}
diff --git a/pyc/templates/submit.html b/pyc/templates/submit.html
new file mode 100644
index 0000000..e8746d5
--- /dev/null
+++ b/pyc/templates/submit.html
@@ -0,0 +1,10 @@
+{% extends 'base.html' %}
+{% block body %}
+
+
+
+{% endblock %}
diff --git a/pyc/urls.py b/pyc/urls.py
index 9f30735..8132990 100644
--- a/pyc/urls.py
+++ b/pyc/urls.py
@@ -6,6 +6,7 @@ admin.autodiscover()
urlpatterns = patterns('',
url(r'^$', 'grader.views.index', name='index'),
url(r'^lab/(?P\d+)/$', 'grader.views.lab'),
+ url(r'^submit/(?P\d+)/$', 'grader.views.submit'),
url(r'^login/$', 'django.contrib.auth.views.login', {'template_name': 'login.html'}),
url(r'^logout/$', 'django.contrib.auth.views.logout', {'next_page': '/'}),
--
cgit v1.2.3