--- a/app/soc/views/helper/list_info.py Tue Jul 28 11:20:42 2009 +0200
+++ b/app/soc/views/helper/list_info.py Tue Jul 28 11:23:11 2009 +0200
@@ -31,7 +31,7 @@
"""
def wrapper(item, _):
- """Decorator wrapper method.
+ """Wrapper method.
"""
info = {'rank': ranking[item.key()]}
@@ -42,3 +42,56 @@
return info
return wrapper
+
+
+def getStudentProjectSurveyInfo(program_entity):
+ """Returns a function that returns information used in a Student Project
+ table to show how many evaluations have been available and how
+ many have been taken.
+
+ Args:
+ program_entity: the program to check the total amount of
+ (Grading)ProjctSurveys for
+ """
+
+ from soc.logic.models.survey import grading_logic as grading_survey_logic
+ from soc.logic.models.survey import project_logic as project_survey_logic
+
+ fields = {'scope_path': program_entity.key().id_or_name()}
+
+ # count the number of have been active ProjectSurveys
+ project_surveys = project_survey_logic.getForFields(fields)
+ project_survey_count = len(project_surveys)
+
+ for project_survey in project_surveys:
+ if not project_survey_logic.hasAtLeastOneRecord(project_survey):
+ project_survey_count = project_survey_count - 1
+
+ # count the number of have been active GradingProjectSurveys
+ grading_surveys = grading_survey_logic.getForFields(fields)
+ grading_survey_count = len(grading_surveys)
+
+ for grading_survey in grading_surveys:
+ if not grading_survey_logic.hasAtLeastOneRecord(grading_survey):
+ grading_survey_count = grading_survey_count - 1
+
+ def wrapper(item, _):
+ """Wrapper method.
+ """
+
+ from soc.logic.models.survey_record import grading_logic
+ from soc.logic.models.survey_record import project_logic
+
+ fields = {'project': item}
+
+ # count the amount of records we have on store for this project
+ project_record_count = project_logic.getQueryForFields(fields).count()
+ grading_record_count = grading_logic.getQueryForFields(fields).count()
+
+ info = {'project_surveys_total': project_survey_count,
+ 'project_surveys_completed': project_record_count,
+ 'grading_project_surveys_total': grading_survey_count,
+ 'grading_project_surveys_completed': grading_record_count}
+
+ return info
+ return wrapper