def list(self, request, access_type, page_name=None, params=None, filter=None, order=None, visibility=None, context=None, **kwargs): """Overwrites the base list to add an extra button and use other redirect. For normal listings of GradingSurveyGroups do not use this method. For args see base.View.list(). """ program_entity = program_logic.getFromKeyNameOr404(kwargs['scope_path']) params = params.copy() params['public_button_global'] = [ { 'bounds': [0,'all'], 'id': 'create_new', 'caption': 'Create new Grading Survey Group', 'type': 'redirect_simple', 'parameters': { 'link': redirects.getCreateRedirect(program_entity, params), 'new_window': False, } }] params['public_row_extra'] = lambda entity: { 'link': redirects.getViewRecordsRedirect(entity, params), } filter = {'scope': program_entity} return super(View, self).list( request, 'allow', page_name=page_name, params=params, filter=filter, order=order, visibility='public', context=context, **kwargs)
def setQueries(self, program_keyname, group_form): """Add program filtering queries to the GroupForm. Args: program_keyname: keyname of the program to filter on group_form: DynaForm instance to set the queries for """ # fetch the program program = program_logic.getFromKeyNameOr404(program_keyname) # filter grading surveys by program and use title for display grading_query = grading_logic.getQueryForFields( filter={'scope_path': program_keyname}) # filter project surveys by program and use title for display student_query = project_logic.getQueryForFields( filter={'scope_path': program_keyname}) group_form.base_fields['grading_survey'].query = grading_query group_form.base_fields['student_survey'].query = student_query # use survey titles in drop-downs self.choiceTitles(group_form, 'grading_survey', grading_logic) self.choiceTitles(group_form, 'student_survey', project_logic)
def setQueries(self, program_keyname, group_form): """Add program filtering queries to the GroupForm. Args: program_keyname: keyname of the program to filter on group_form: DynaForm instance to set the queries for """ # fetch the program program = program_logic.getFromKeyNameOr404(program_keyname) # filter grading surveys by program and use title for display grading_query = grading_logic.getQueryForFields( filter={'scope_path':program_keyname}) # filter project surveys by program and use title for display student_query = project_logic.getQueryForFields( filter={'scope_path':program_keyname}) group_form.base_fields['grading_survey'].query = grading_query group_form.base_fields['student_survey'].query = student_query # use survey titles in drop-downs self.choiceTitles(group_form, 'grading_survey', grading_logic) self.choiceTitles(group_form, 'student_survey', project_logic)
def list(self, request, access_type, page_name=None, params=None, filter=None, order=None, visibility=None, context=None, **kwargs): """Overwrites the base list to add an extra button and use other redirect. For normal listings of GradingSurveyGroups do not use this method. For args see base.View.list(). """ program_entity = program_logic.getFromKeyNameOr404( kwargs['scope_path']) params = params.copy() params['public_button_global'] = [{ 'bounds': [0, 'all'], 'id': 'create_new', 'caption': 'Create new Grading Survey Group', 'type': 'redirect_simple', 'parameters': { 'link': redirects.getCreateRedirect(program_entity, params), 'new_window': False, } }] params['public_row_extra'] = lambda entity: { 'link': redirects.getViewRecordsRedirect(entity, params), } filter = {'scope': program_entity} return super(View, self).list(request, 'allow', page_name=page_name, params=params, filter=filter, order=order, visibility='public', context=context, **kwargs)