# HG changeset patch # User nishanth # Date 1271321144 -19800 # Node ID 0f926874a69590ba280b77835a10cdc75b445911 # Parent ab0a8a72b06930677ccaebc229bdb6036fa6918c added the files I forgot to add in previous commit diff -r ab0a8a72b069 -r 0f926874a695 feedback/utils.py --- /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 + + diff -r ab0a8a72b069 -r 0f926874a695 templates/show_report.html --- /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 {{event.title}} +
+ {{workshop_report|unordered_list}} +{% endblock %}