implemented event create
authornishanth
Tue, 20 Apr 2010 02:28:09 +0530
changeset 9 601057af86c2
parent 8 182e4a773ef2
child 10 7535305b1104
implemented event create
event/forms.py
event/views.py
templates/create_event.html
tmp.db.bak
--- /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