def check_survey_required_and_unanswered(user, course_descriptor): """ Checks whether a user is required to answer the survey and has yet to do so. Returns: AccessResponse: Either ACCESS_GRANTED or SurveyRequiredAccessError. """ if not is_survey_required_for_course(course_descriptor): return ACCESS_GRANTED # anonymous users do not need to answer the survey if user.is_anonymous: return ACCESS_GRANTED # course staff do not need to answer survey has_staff_access = has_access(user, 'staff', course_descriptor) if has_staff_access: return ACCESS_GRANTED # survey is required and it exists, let's see if user has answered the survey survey = SurveyForm.get(course_descriptor.course_survey_name) answered_survey = SurveyAnswer.do_survey_answers_exist(survey, user) if answered_survey: return ACCESS_GRANTED return SurveyRequiredAccessError()
def must_answer_survey(course_descriptor, user): """ Returns whether a user needs to answer a required survey """ if not is_survey_required_for_course(course_descriptor): return False # this will throw exception if not found, but a non existing survey name will # be trapped in the above is_survey_required_for_course() method survey = SurveyForm.get(course_descriptor.course_survey_name) has_staff_access = has_access(user, "staff", course_descriptor) # survey is required and it exists, let's see if user has answered the survey # course staff do not need to answer survey answered_survey = SurveyAnswer.do_survey_answers_exist(survey, user) return not answered_survey and not has_staff_access
def must_answer_survey(course_descriptor, user): """ Returns whether a user needs to answer a required survey """ if not is_survey_required_for_course(course_descriptor): return False # this will throw exception if not found, but a non existing survey name will # be trapped in the above is_survey_required_for_course() method survey = SurveyForm.get(course_descriptor.course_survey_name) has_staff_access = has_access(user, 'staff', course_descriptor) # survey is required and it exists, let's see if user has answered the survey # course staff do not need to answer survey answered_survey = SurveyAnswer.do_survey_answers_exist(survey, user) return not answered_survey and not has_staff_access
def is_survey_required_and_unanswered(user, course_descriptor): """ Returns whether a user is required to answer the survey and has yet to do so. """ if not is_survey_required_for_course(course_descriptor): return False # anonymous users do not need to answer the survey if user.is_anonymous(): return False # course staff do not need to answer survey has_staff_access = has_access(user, 'staff', course_descriptor) if has_staff_access: return False # survey is required and it exists, let's see if user has answered the survey survey = SurveyForm.get(course_descriptor.course_survey_name) answered_survey = SurveyAnswer.do_survey_answers_exist(survey, user) if not answered_survey: return True
def is_survey_required_and_unanswered(user, course_descriptor): """ Returns whether a user is required to answer the survey and has yet to do so. """ if not is_survey_required_for_course(course_descriptor): return False # anonymous users do not need to answer the survey if user.is_anonymous: return False # course staff do not need to answer survey has_staff_access = has_access(user, 'staff', course_descriptor) if has_staff_access: return False # survey is required and it exists, let's see if user has answered the survey survey = SurveyForm.get(course_descriptor.course_survey_name) answered_survey = SurveyAnswer.do_survey_answers_exist(survey, user) if not answered_survey: return True