--- a/feedback/forms.py Mon Apr 19 22:06:51 2010 +0530
+++ b/feedback/forms.py Mon Apr 19 22:36:23 2010 +0530
@@ -1,6 +1,6 @@
from django import forms
-from ws_app.feedback.models import Feedback
+from offline.feedback.models import Feedback
class FeedbackForm(forms.ModelForm):
""" A form to collect the feedback.
@@ -8,7 +8,7 @@
class Meta:
model = Feedback
- exclude = [ 'event', 'day']
+ exclude = [ 'event', 'day', 'user_ip']
def clean_comments(self):
comments = self.cleaned_data['comments']
--- a/feedback/views.py Mon Apr 19 22:06:51 2010 +0530
+++ b/feedback/views.py Mon Apr 19 22:36:23 2010 +0530
@@ -1,1 +1,54 @@
-# Create your views here.
+from django.shortcuts import render_to_response
+from django.http import Http404
+
+from offline.event.models import Event
+
+from offline.feedback.models import Feedback
+from offline.feedback.forms import FeedbackForm
+
+
+def submit_feedback(request):
+
+ """ see if the ip address has already submitted a feedback.
+ if not, collect the feedback.
+ """
+
+ try:
+ event = Event.objects.all()[0]
+ except IndexError:
+ raise Http404
+
+ if event.feedback_status == "0":
+ raise Http404
+ else:
+ day = event.feedback_status
+
+ ip = request.META['REMOTE_ADDR']
+
+ try:
+ Feedback.objects.get(event=event,day=day,user_ip=ip)
+ return render_to_response('submit_feedback.html', {'submitted':True, 'event':event})
+ except Feedback.DoesNotExist:
+ new_feedback = Feedback(event=event,day=day,user_ip=ip)
+
+ if request.method == "POST":
+ form = FeedbackForm(request.POST)
+ if form.is_valid():
+ data = form.cleaned_data
+ new_feedback.topics = data['topics']
+ new_feedback.depth = data['depth']
+ new_feedback.methodology = data['methodology']
+ new_feedback.pace = data['pace']
+ new_feedback.applicability = data['applicability']
+ new_feedback.problems = data['problems']
+ new_feedback.exercises = data['exercises']
+ new_feedback.comments = data['comments']
+ new_feedback.save()
+
+ return render_to_response('submit_feedback.html', {'submitted':True, 'event':event})
+ else:
+ return render_to_response('submit_feedback.html',{ 'form':form, 'event':event})
+ else:
+ form = FeedbackForm()
+ return render_to_response('submit_feedback.html',{'form':form, 'event':event})
+
--- a/settings.py Mon Apr 19 22:06:51 2010 +0530
+++ b/settings.py Mon Apr 19 22:36:23 2010 +0530
@@ -69,6 +69,7 @@
# Put strings here, like "/home/html/django_templates" or "C:/www/django/templates".
# Always use forward slashes, even on Windows.
# Don't forget to use absolute paths, not relative paths.
+ './templates',
)
INSTALLED_APPS = (
@@ -76,4 +77,6 @@
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
+ 'offline.event',
+ 'offline.feedback',
)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/templates/base.html Mon Apr 19 22:36:23 2010 +0530
@@ -0,0 +1,12 @@
+<html>
+<head>
+<title>
+{% block title %}
+{% endblock %}
+</title>
+</head>
+<body>
+{% block content %}
+{% endblock %}
+</body>
+</html>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/templates/submit_feedback.html Mon Apr 19 22:36:23 2010 +0530
@@ -0,0 +1,12 @@
+{% extends "base.html" %}
+{% block content %}
+ {% if submitted %}
+ Your feedback has been successfully submitted.
+ {% else %}
+ Submit feedback for day{{event.feedback_status}} of {{event.title}}<br />
+ <form action="" method="post">
+ {{ form.as_p }}
+ <input type="submit" value="submit">
+ </form>
+ {% endif %}
+{% endblock %}
--- a/urls.py Mon Apr 19 22:06:51 2010 +0530
+++ b/urls.py Mon Apr 19 22:36:23 2010 +0530
@@ -1,5 +1,7 @@
from django.conf.urls.defaults import *
+from offline.feedback.views import submit_feedback
+
# Uncomment the next two lines to enable the admin:
# from django.contrib import admin
# admin.autodiscover()
@@ -14,4 +16,5 @@
# Uncomment the next line to enable the admin:
# (r'^admin/', include(admin.site.urls)),
+ (r'^feedback/submit', submit_feedback)
)