def _build_new_course_enrollment_offer_yr_calendar(education_group_yr):
    cal = get_by_reference_and_academic_year(academic_calendar_type.COURSE_ENROLLMENT,
                                             education_group_yr.academic_year)
    if cal:
        return create_offer_year_calendar(education_group_yr, cal)

    return None
Exemplo n.º 2
0
def build_calendar_by_entities(ac_year, reference):
    """
    This function will compute date for each entity. If entity calendar not exist,
    get default date to academic calendar"""
    entity_structure = entity_version.build_current_entity_version_structure_in_memory(
        date=ac_year.end_date)
    entities_id = list(entity_structure.keys())
    ac_calendar = academic_calendar.get_by_reference_and_academic_year(
        reference, ac_year)
    all_entities_calendars = EntityCalendar.objects.filter(entity__in=entities_id, academic_calendar=ac_calendar)\
                                                   .select_related('entity')

    # Specific date for an entity [record found on entity calendar]
    entity_calendar_computed = {}
    for entity_calendar in all_entities_calendars:
        # FIXME: We should use date OR datetime in all database model
        entity_calendar_computed[entity_calendar.entity_id] = {
            'start_date': entity_calendar.start_date.date(),
            'end_date': entity_calendar.end_date.date(),
        }
        entities_id.remove(entity_calendar.entity_id)

    default_dates = {
        'start_date': ac_calendar.start_date,
        'end_date': ac_calendar.end_date
    }
    entity_calendar_computed.update({
        entity_id:
        _get_start_end_date_of_parent(entity_id, entity_structure,
                                      entity_calendar_computed, default_dates)
        for entity_id in entities_id
    })
    return entity_calendar_computed
def _build_new_course_enrollment_offer_yr_calendar(education_group_yr):
    cal = get_by_reference_and_academic_year(academic_calendar_type.COURSE_ENROLLMENT,
                                             education_group_yr.academic_year)
    if cal:
        return create_offer_year_calendar(education_group_yr, cal)

    return None
Exemplo n.º 4
0
def _get_calendar(academic_yr, an_entity_version):
    a_calendar = get_entity_calendar(an_entity_version, academic_yr)
    if a_calendar is None:
        a_calendar = academic_calendar.get_by_reference_and_academic_year(
            academic_calendar_type.SUMMARY_COURSE_SUBMISSION,
            academic_yr
        )
    return a_calendar
Exemplo n.º 5
0
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
    }
Exemplo n.º 6
0
 def save_entity_calendar(self, entity, *args, **kwargs):
     self.instance.entity = entity
     self.instance.academic_calendar = get_by_reference_and_academic_year(
         academic_calendar_type.SUMMARY_COURSE_SUBMISSION,
         current_academic_year())
     return self.save(*args, **kwargs)
Exemplo n.º 7
0
 def save_entity_calendar(self, entity, *args, **kwargs):
     self.instance.entity = entity
     self.instance.academic_calendar = get_by_reference_and_academic_year(
         academic_calendar_type.SUMMARY_COURSE_SUBMISSION, current_academic_year())
     return self.save(*args, **kwargs)