def __init__(self, entity_version, *args, **kwargs): entity_calendar_obj = entity_calendar.find_by_entity_and_reference_for_current_academic_year( entity_version.entity.id, academic_calendar_type.SUMMARY_COURSE_SUBMISSION) initial = {} if entity_calendar_obj else find_summary_course_submission_dates_for_entity_version( entity_version) super().__init__(*args, instance=entity_calendar_obj, initial=initial, **kwargs)
def get_entity_calendar(an_entity_version, academic_yr): entity_cal = entity_calendar.find_by_entity_and_reference_for_current_academic_year( an_entity_version.entity.id, academic_calendar_type.SUMMARY_COURSE_SUBMISSION) if entity_cal: return entity_cal else: if an_entity_version.parent: parent_entity_version = entity_version.find_latest_version_by_entity( an_entity_version.parent, timezone.now()) if parent_entity_version: return get_entity_calendar(parent_entity_version, academic_yr) return None
def find_summary_course_submission_dates_for_entity_version(entity_version): current_calendar_instance = None current_entity_version = entity_version while current_entity_version: current_calendar_instance = entity_calendar.find_by_entity_and_reference_for_current_academic_year( current_entity_version.entity.id, academic_calendar_type.SUMMARY_COURSE_SUBMISSION) if current_calendar_instance: break current_entity_version = current_entity_version.get_parent_version() if current_calendar_instance is None: current_calendar_instance = academic_calendar.get_by_reference_and_academic_year( academic_calendar_type.SUMMARY_COURSE_SUBMISSION, current_academic_year()) return { 'start_date': current_calendar_instance.start_date, 'end_date': current_calendar_instance.end_date }
def test_find_for_current_academic_year(self): entity_calendar_obj = find_by_entity_and_reference_for_current_academic_year( self.current_entity_calendar.entity.id, SUMMARY_COURSE_SUBMISSION) self.assertEqual(entity_calendar_obj, self.current_entity_calendar)
def test_when_no_data_match_criteria(self): entity_calendar_obj = find_by_entity_and_reference_for_current_academic_year( self.current_entity_calendar.entity.id, EXAM_ENROLLMENTS) self.assertIsNone(entity_calendar_obj)