def getManageOverviewData(self, request, mo_params, org_entity): """Returns the manageOverview data. """ args = [] fields = {} idx = request.GET.get('idx', '') idx = int(idx) if idx.isdigit() else -1 if idx == 0: from soc.modules.gsoc.logic.models.survey import grading_logic as \ grading_survey_logic from soc.modules.gsoc.logic.models.survey import project_logic as \ project_survey_logic from soc.modules.gsoc.logic.models.survey_record import grading_logic from soc.modules.gsoc.logic.models.survey_record import project_logic program_entity = org_entity.scope 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.hasRecord(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.hasRecord(grading_survey): grading_survey_count = grading_survey_count - 1 fields = {'scope': org_entity} params = mo_params args = [project_surveys, project_survey_count, grading_surveys, grading_survey_count] else: return responses.jsonErrorResponse(request, "idx not valid") contents = lists.getListData(request, params, fields, 'public', args=args) json = simplejson.dumps(contents) return responses.jsonResponse(request, json)
def getManageOverviewData(self, request, mo_params, org_entity): """Returns the manageOverview data. """ args = [] fields = {} idx = lists.getListIndex(request) if idx == 0: from soc.modules.gsoc.logic.models.survey import grading_logic as \ grading_survey_logic from soc.modules.gsoc.logic.models.survey import project_logic as \ project_survey_logic from soc.modules.gsoc.logic.models.survey_record import grading_logic from soc.modules.gsoc.logic.models.survey_record import project_logic program_entity = org_entity.scope 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.hasRecord(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.hasRecord(grading_survey): grading_survey_count = grading_survey_count - 1 fields = {'scope': org_entity} params = mo_params args = [ project_surveys, project_survey_count, grading_surveys, grading_survey_count ] else: return lists.getErrorResponse(request, 'idx not valid') contents = lists.getListData(request, params, fields, args=args) return lists.getResponse(request, contents)
def getManageOverviewData(self, request, mo_params, org_entity): """Returns the manageOverview data. """ args = [] fields = {} idx = lists.getListIndex(request) if idx == 0: from soc.modules.gsoc.logic.models.survey import grading_logic as \ grading_survey_logic from soc.modules.gsoc.logic.models.survey import project_logic as \ project_survey_logic from soc.modules.gsoc.logic.models.survey_record import grading_logic from soc.modules.gsoc.logic.models.survey_record import project_logic program_entity = org_entity.scope 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.hasRecord(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.hasRecord(grading_survey): grading_survey_count = grading_survey_count - 1 fields = {'scope': org_entity} params = mo_params args = [project_surveys, project_survey_count, grading_surveys, grading_survey_count] else: return lists.getErrorResponse(request, 'idx not valid') contents = lists.getListData(request, params, fields, args=args) return lists.getResponse(request, contents)
def setStudentProjectSurveyInfo(list_content, program_entity): """Sets the list info to a method that returns information used in a Student Project table to show how many evaluations have been available and how many have been taken. Args: list_content: list content for which to set the info program_entity: the Program to check the total amount of (Grading)ProjctSurveys for Returns: The original list_content with info set """ from soc.modules.gsoc.logic.models.survey import grading_logic as \ grading_survey_logic from soc.modules.gsoc.logic.models.survey import project_logic as \ project_survey_logic from soc.modules.gsoc.logic.models.survey_record import grading_logic from soc.modules.gsoc.logic.models.survey_record import project_logic if not list_content: # this can happen because of the need_content parameter for getListContent return list_content 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.hasRecord(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.hasRecord(grading_survey): grading_survey_count = grading_survey_count - 1 # Pre-store the needed info since Django calls the wrapper method for every # info call. info_storage = {} for item in list_content['data']: 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} info_storage[item.key()] = info def wrapper(item, _): """Wrapper method. """ return info_storage[item.key()] list_content['info'] = (wrapper, None) return list_content
def setStudentProjectSurveyInfo(list_content, program_entity): """Sets the list info to a method that returns information used in a Student Project table to show how many evaluations have been available and how many have been taken. Args: list_content: list content for which to set the info program_entity: the Program to check the total amount of (Grading)ProjctSurveys for Returns: The original list_content with info set """ from soc.modules.gsoc.logic.models.survey import grading_logic as \ grading_survey_logic from soc.modules.gsoc.logic.models.survey import project_logic as \ project_survey_logic from soc.modules.gsoc.logic.models.survey_record import grading_logic from soc.modules.gsoc.logic.models.survey_record import project_logic if not list_content: # this can happen because of the need_content parameter for getListContent return list_content 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.hasRecord(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.hasRecord(grading_survey): grading_survey_count = grading_survey_count - 1 # Pre-store the needed info since Django calls the wrapper method for every # info call. info_storage = {} for item in list_content['data']: 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 } info_storage[item.key()] = info def wrapper(item, _): """Wrapper method. """ return info_storage[item.key()] list_content['info'] = (wrapper, None) return list_content