added the files I forgot to add in previous commit
authornishanth
Thu, 15 Apr 2010 14:15:44 +0530
changeset 42 0f926874a695
parent 41 ab0a8a72b069
child 43 757d1da69255
added the files I forgot to add in previous commit
feedback/utils.py
templates/show_report.html
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/feedback/utils.py	Thu Apr 15 14:15:44 2010 +0530
@@ -0,0 +1,94 @@
+""" A collection of utilities for feedback app.
+"""
+
+from workshop.feedback.models import *
+
+LONG_FIELD_NAME = {'topics': "Range of topics covered:",
+                   'depth': "Depth of coverage:",
+                   'methodology': "Effectiveness of methodology:",
+                   'pace': "Pace of coverage:",
+                   'applicability': "Applicability:",
+                   'problems': "Choice of problems:",
+                   'exercises': "Choice of Exercises:",
+                  }
+
+EXPAND_OPTION = {
+    "topics" : {
+        "1" : "%s%% of the people felt that the range of topics covered was very relevant",
+        "2" : "%s%% of the people felt that the range of topics covered was relevant",
+        "3" : "%s%% of the people felt that the range of topics covered was somewhat relevant",
+        "4" : "%s%% of the people felt that the range of topics covered was not relevant",
+    },
+
+    "depth" : {
+        "1" : "%s%% of the people felt that the depth of coverage was too detailed",
+        "2" : "%s%% of the people felt that the depth of coverage was detailed",
+        "3" : "%s%% of the people felt that the depth of coverage was not detailed enough",
+        "4" : "%s%% of the people felt that the depth of coverage was poorly detailed",
+    },
+
+    "methodology" : {
+        "1" : "%s%% of the people felt that the teaching methodology was extremely effective",
+        "2" : "%s%% of the people felt that the teaching methodology was effective",
+        "3" : "%s%% of the people felt that the teaching methodology was not very effective",
+        "4" : "%s%% of the people felt that the teaching methodology was ineffective",
+    },
+
+    "pace" : {
+        "1" : "%s%% of the people felt that the the pace of coverage was too fast",
+        "2" : "%s%% of the people felt that the the pace of coverage was fast",
+        "3" : "%s%% of the people felt that the the pace of coverage was just right",
+        "4" : "%s%% of the people felt that the the pace of coverage was slow",
+        "5" : "%s%% of the people felt that the the pace of coverage was too slow",
+    },
+
+    "applicability" : {
+        "1" : "%s%% of the people felt that they can apply what they have learnt immediately",
+        "2" : "%s%% of the people felt that they can apply what they have learnt somewhat immediately",
+        "3" : "%s%% of the people felt that they cannot apply what they have learnt immediately",
+        "4" : "%s%% of the people felt that they might never apply what they have learnt",
+    },
+
+    "problems" : {
+        "1" : "%s%% of the people felt that the problems were very interesting",
+        "2" : "%s%% of the people felt that the problems were interesting",
+        "3" : "%s%% of the people felt that the problems were somewhat interesting",
+        "4" : "%s%% of the people felt that the problems were not interesting",
+    },
+
+    "exercises" : {
+        "1" : "%s%% of the people felt that the exercises were very instructive",
+        "2" : "%s%% of the people felt that the exercises were instructive",
+        "3" : "%s%% of the people felt that the exercises were somewhat instructive",
+        "4" : "%s%% of the people felt that the exercises were not instructive",
+    },
+}
+
+def make_day_report(feeds):
+    """ take a list of feedback objects and return the percentage of each item in the form of a dict.
+    """
+
+    no_of_feeds = feeds.count()
+    if not no_of_feeds:
+        return {}
+
+    day_report = []
+
+    for field in ['topics', 'depth', 'methodology', 'pace', 'applicability', 'problems', 'exercises']:
+        
+        choices = eval((field+'_choices').upper()) ## the choices are named accordingly in the models file
+        choices_dict = dict(choices)
+        
+        field_report = []
+        for option in sorted(choices_dict.keys()):
+            args_dict = {field : option}
+            option_percent = feeds.filter(**args_dict).count() / no_of_feeds * 100
+            if option_percent:
+                field_report.append((EXPAND_OPTION[field][option])%option_percent)
+        
+        if field_report:
+            day_report.extend( [LONG_FIELD_NAME[field], field_report] )
+
+    return day_report
+        
+    
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/templates/show_report.html	Thu Apr 15 14:15:44 2010 +0530
@@ -0,0 +1,6 @@
+{% extends "base.html" %}
+{% block content %}
+Report of the workshop <a href="/reg/event/view/{{event.key}}">{{event.title}}</a>
+<br />
+	{{workshop_report|unordered_list}}
+{% endblock %}