--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/event/forms.py Tue Apr 20 02:28:09 2010 +0530
@@ -0,0 +1,22 @@
+from django import forms
+
+from offline.event.models import Event
+
+class EventCreateForm(forms.ModelForm):
+
+ class Meta:
+ model = Event
+ fields = ['title', 'start_date', 'stop_date']
+
+ def clean_start_date(self):
+ return self.cleaned_data['start_date']
+
+ def clean_stop_date(self):
+
+ stop_date = self.cleaned_data['stop_date']
+ start_date = self.clean_start_date()
+
+ if start_date > stop_date:
+ raise forms.ValidationError("Event cannot stop before it starts")
+
+ return self.cleaned_data['stop_date']
--- a/event/views.py Tue Apr 20 01:55:09 2010 +0530
+++ b/event/views.py Tue Apr 20 02:28:09 2010 +0530
@@ -1,8 +1,8 @@
from django.http import Http404
-from django.shortcuts import render_to_response
+from django.shortcuts import render_to_response, redirect
from offline.event.models import Event
-
+from offline.event.forms import EventCreateForm
from offline.settings import ADMIN_KEY
def event_home(request):
@@ -22,11 +22,11 @@
return render_to_response('home.html', {'event':event, 'can_submit_feedback':can_submit_feedback, 'can_take_quiz':can_take_quiz})
-def event_admin(request, key_word):
+def event_admin(request, admin_key):
""" see if the key is correct and then display options.
"""
- if not key_word == ADMIN_KEY:
+ if not admin_key == ADMIN_KEY:
raise Http404
try:
@@ -36,7 +36,28 @@
return render_to_response('admin.html', {'event':event, 'admin_key':ADMIN_KEY})
-def event_create():
- pass
+def event_create(request, admin_key):
+
+ if not admin_key == ADMIN_KEY:
+ raise Http404
+
+ try:
+ event = Event.objects.all()[0]
+ return redirect("/event/admin/%s"%admin_key)
+ except IndexError:
+ new_event = Event()
+ if request.method == "POST":
+ form = EventCreateForm(request.POST)
+ if form.is_valid():
+ new_event.title = form.cleaned_data['title']
+ new_event.start_date = form.cleaned_data['start_date']
+ new_event.stop_date = form.cleaned_data['stop_date']
+ new_event.save()
+ return redirect('/event/admin/%s'%ADMIN_KEY)
+ else:
+ return render_to_response('create_event.html',{'form':form})
+ else:
+ form = EventCreateForm()
+ return render_to_response('create_event.html',{'form':form})
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/templates/create_event.html Tue Apr 20 02:28:09 2010 +0530
@@ -0,0 +1,8 @@
+{% extends 'base.html' %}
+{% block content %}
+Start by entering these details to create the event.
+<form action="" method="post">
+ {{form.as_p}}
+<input type="submit" value="Create">
+</form>
+{% endblock %}
Binary file tmp.db.bak has changed