# HG changeset patch # User nishanth # Date 1271710689 -19800 # Node ID 601057af86c23b956887108be55c0ad81cd442ad # Parent 182e4a773ef256462b6085955b810960c13ea36f implemented event create diff -r 182e4a773ef2 -r 601057af86c2 event/forms.py --- /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'] diff -r 182e4a773ef2 -r 601057af86c2 event/views.py --- 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}) diff -r 182e4a773ef2 -r 601057af86c2 templates/create_event.html --- /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.as_p}} + +
+{% endblock %} diff -r 182e4a773ef2 -r 601057af86c2 tmp.db.bak Binary file tmp.db.bak has changed