def override_requirement(self, manual_progress):
    "\n        Sets the progress fulfillment variables based on a manual progress value, which is\n        expressed in either units or subjects depending on the requirement's threshold.\n        "
    self.is_fulfilled = (manual_progress >= self.threshold.get_actual_cutoff())
    subjects = 0
    units = 0
    satisfied_courses = set()
    if (self.threshold.criterion == CRITERION_UNITS):
        units = manual_progress
        subjects = (manual_progress / DEFAULT_UNIT_COUNT)
    else:
        units = (manual_progress * DEFAULT_UNIT_COUNT)
        subjects = manual_progress
    subject_progress = ceiling_thresh(subjects, self.threshold.cutoff_for_criterion(CRITERION_SUBJECTS))
    unit_progress = ceiling_thresh(units, self.threshold.cutoff_for_criterion(CRITERION_UNITS))
    random_ids = random.sample(range(1000, max(10000, (subject_progress.progress + 1000))), subject_progress.progress)
    for rand_id in random_ids:
        dummy_course = Course(id=((self.list_path + '_') + str(rand_id)), subject_id=((('gen_course_' + self.list_path) + '_') + str(rand_id)), title=((('Generated Course ' + self.list_path) + ' ') + str(rand_id)))
        satisfied_courses.add(dummy_course)
    self.subject_fulfillment = subject_progress
    self.subject_progress = subject_progress.progress
    self.subject_max = subject_progress.max
    self.unit_fulfillment = unit_progress
    self.unit_progress = unit_progress.progress
    self.unit_max = unit_progress.max
    progress = (unit_progress if ((self.threshold is not None) and (self.threshold.criterion == CRITERION_UNITS)) else subject_progress)
    self.progress = progress.progress
    self.progress_max = progress.max
    self.percent_fulfilled = progress.get_percent()
    self.fraction_fulfilled = progress.get_fraction()
    self.satisfied_courses = list(satisfied_courses)
Sets the progress fulfillment variables based on a manual progress value, which is
expressed in either units or subjects depending on the requirement's threshold.
def override_requirement(self, manual_progress):
    "\n        Sets the progress fulfillment variables based on a manual progress value, which is\n        expressed in either units or subjects depending on the requirement's threshold.\n        "
    self.is_fulfilled = (manual_progress >= self.threshold.get_actual_cutoff())
    subjects = 0
    units = 0
    satisfied_courses = set()
    if (self.threshold.criterion == CRITERION_UNITS):
        units = manual_progress
        subjects = (manual_progress / DEFAULT_UNIT_COUNT)
    else:
        units = (manual_progress * DEFAULT_UNIT_COUNT)
        subjects = manual_progress
    subject_progress = ceiling_thresh(subjects, self.threshold.cutoff_for_criterion(CRITERION_SUBJECTS))
    unit_progress = ceiling_thresh(units, self.threshold.cutoff_for_criterion(CRITERION_UNITS))
    random_ids = random.sample(range(1000, max(10000, (subject_progress.progress + 1000))), subject_progress.progress)
    for rand_id in random_ids:
        dummy_course = Course(id=((self.list_path + '_') + str(rand_id)), subject_id=((('gen_course_' + self.list_path) + '_') + str(rand_id)), title=((('Generated Course ' + self.list_path) + ' ') + str(rand_id)))
        satisfied_courses.add(dummy_course)
    self.subject_fulfillment = subject_progress
    self.subject_progress = subject_progress.progress
    self.subject_max = subject_progress.max
    self.unit_fulfillment = unit_progress
    self.unit_progress = unit_progress.progress
    self.unit_max = unit_progress.max
    progress = (unit_progress if ((self.threshold is not None) and (self.threshold.criterion == CRITERION_UNITS)) else subject_progress)
    self.progress = progress.progress
    self.progress_max = progress.max
    self.percent_fulfilled = progress.get_percent()
    self.fraction_fulfilled = progress.get_fraction()
    self.satisfied_courses = list(satisfied_courses)