added close and open feedback functionalities.
authornishanth
Tue, 20 Apr 2010 01:55:09 +0530
changeset 8 182e4a773ef2
parent 7 dfedb369f32e
child 9 601057af86c2
added close and open feedback functionalities.
feedback/views.py
templates/close_feedback.html
templates/open_feedback.html
--- a/feedback/views.py	Tue Apr 20 01:31:45 2010 +0530
+++ b/feedback/views.py	Tue Apr 20 01:55:09 2010 +0530
@@ -1,6 +1,8 @@
 from django.shortcuts import render_to_response
 from django.http import Http404
 
+from offline.settings import ADMIN_KEY
+
 from offline.event.models import Event
 
 from offline.feedback.models import Feedback
@@ -52,9 +54,47 @@
         form = FeedbackForm()
         return render_to_response('submit_feedback.html',{'form':form, 'event':event})
 
-def open_feedback():
-    pass
+def open_feedback(request, admin_key):
+    """
+    Check for key and then exiatance of event.
+    """
+
+    if not admin_key == ADMIN_KEY:
+        raise Http404
+
+    try:
+        event = Event.objects.all()[0]
+    except IndexError:
+        raise Http404
 
-def close_feedback():
-    pass
+    if event.feedback_status == '0':
+        no_of_days = (event.stop_date - event.start_date).days + 1
+        if request.method == "POST":
+            day = request.POST['day']
+            event.feedback_status = day
+            event.save()
+            return render_to_response('open_feedback.html', {'success': True, 'day':day, 'event':event})
+        else:
+            return render_to_response('open_feedback.html', {'event': event, 'days': range(1,no_of_days+1)})
+    else:
+        day = event.feedback_status
+        return render_to_response('open_feedback.html', {'success': True, 'day':day, 'event':event})
 
+def close_feedback(request, admin_key):
+    """
+    simply set feedback status to 0
+    """
+
+    if not admin_key == ADMIN_KEY:
+        raise Http404
+
+    try:
+        event = Event.objects.all()[0]
+    except IndexError:
+        raise Http404
+
+    day = event.feedback_status
+    event.feedback_status = '0'
+    event.save()
+    return render_to_response('close_feedback.html', {'event': event, 'day':day})
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/templates/close_feedback.html	Tue Apr 20 01:55:09 2010 +0530
@@ -0,0 +1,4 @@
+{% extends "base.html" %}
+{% block content %}
+	Feedback for day {{day}} of {{event.title}} has been successfully closed.<br />
+{% endblock %}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/templates/open_feedback.html	Tue Apr 20 01:55:09 2010 +0530
@@ -0,0 +1,17 @@
+{% extends "base.html" %}
+{% block content %}
+	{% if success %}
+		The feedback for day {{day}} of {{event.title}} has been opened.<br />
+	{% else %}
+		Select the day of workshop {{event.title}} to start accepting feedbacks.
+		<form action="" method="post">
+		Day:<br />
+		<select name="day">
+		{% for day in days %}
+			<option value="{{day}}">Day {{day}}</option>
+		{% endfor %}
+		</select>
+		<input value="Open" type="submit">
+		</form>
+	{% endif %}
+{% endblock %}