Esempio n. 1
0
    def get_filter_learning_container_ids(self, qs):
        """
        Append a filter on the queryset if entities are given in the search

        :param qs: LearningUnitYearQuerySet
        :return: queryset
        """
        requirement_entity_acronym = self.cleaned_data.get('requirement_entity_acronym')
        allocation_entity_acronym = self.cleaned_data.get('allocation_entity_acronym')
        with_entity_subordinated = self.cleaned_data.get('with_entity_subordinated', False)

        if requirement_entity_acronym:
            requirement_entity_ids = get_entities_ids(requirement_entity_acronym, with_entity_subordinated)

            qs = qs.filter(
                learning_container_year__entitycontaineryear__entity__in=requirement_entity_ids,
                learning_container_year__entitycontaineryear__type=REQUIREMENT_ENTITY
            )

        if allocation_entity_acronym:
            allocation_entity_ids = get_entities_ids(allocation_entity_acronym, with_entity_subordinated)

            qs = qs.filter(
                learning_container_year__entitycontaineryear__entity__in=allocation_entity_ids,
                learning_container_year__entitycontaineryear__type=ALLOCATION_ENTITY
            )

        return qs
Esempio n. 2
0
def get_filter_learning_container_ids(filter_data):
    requirement_entity_acronym = filter_data.get('requirement_entity_acronym')
    allocation_entity_acronym = filter_data.get('allocation_entity_acronym')
    with_entity_subordinated = filter_data.get('with_entity_subordinated',
                                               False)
    entities_id_list_requirement = []
    entities_id_list_allocation = []

    if requirement_entity_acronym:
        entity_ids = get_entities_ids(requirement_entity_acronym,
                                      with_entity_subordinated)
        entities_id_list_requirement += get_entity_container_list(
            entity_ids, entity_container_year_link_type.REQUIREMENT_ENTITY)

    if allocation_entity_acronym:
        entity_ids = get_entities_ids(allocation_entity_acronym,
                                      with_entity_subordinated)
        entities_id_list_allocation += get_entity_container_list(
            entity_ids, entity_container_year_link_type.ALLOCATION_ENTITY)

    if requirement_entity_acronym and allocation_entity_acronym:
        return _get_common_entities(entities_id_list_allocation,
                                    entities_id_list_requirement)
    else:
        return _get_entity_ids_list(allocation_entity_acronym,
                                    entities_id_list_allocation,
                                    entities_id_list_requirement,
                                    requirement_entity_acronym)
Esempio n. 3
0
    def get_filter_learning_container_ids(self, qs):
        """
        Append a filter on the queryset if entities are given in the search

        :param qs: LearningUnitYearQuerySet
        :return: queryset
        """
        requirement_entity_acronym = self.cleaned_data.get('requirement_entity_acronym')
        allocation_entity_acronym = self.cleaned_data.get('allocation_entity_acronym')
        with_entity_subordinated = self.cleaned_data.get('with_entity_subordinated', False)

        if requirement_entity_acronym:
            requirement_entity_ids = get_entities_ids(requirement_entity_acronym, with_entity_subordinated)

            qs = qs.filter(
                learning_container_year__entitycontaineryear__entity__in=requirement_entity_ids,
                learning_container_year__entitycontaineryear__type=REQUIREMENT_ENTITY
            )

        if allocation_entity_acronym:
            allocation_entity_ids = get_entities_ids(allocation_entity_acronym, with_entity_subordinated)

            qs = qs.filter(
                learning_container_year__entitycontaineryear__entity__in=allocation_entity_ids,
                learning_container_year__entitycontaineryear__type=ALLOCATION_ENTITY
            )

        return qs
Esempio n. 4
0
def get_filter_learning_container_ids(filter_data):
    requirement_entity_acronym = filter_data.get('requirement_entity_acronym')
    allocation_entity_acronym = filter_data.get('allocation_entity_acronym')
    with_entity_subordinated = filter_data.get('with_entity_subordinated',
                                               False)
    entities_id_list = []

    if requirement_entity_acronym:
        entity_ids = get_entities_ids(requirement_entity_acronym,
                                      with_entity_subordinated)

        entities_id_list += list(
            mdl.entity_container_year.search(
                link_type=entity_container_year_link_type.REQUIREMENT_ENTITY,
                entity_id=entity_ids).values_list('learning_container_year',
                                                  flat=True).distinct())

    if allocation_entity_acronym:
        entity_ids = get_entities_ids(allocation_entity_acronym, False)
        entities_id_list += list(
            mdl.entity_container_year.search(
                link_type=entity_container_year_link_type.ALLOCATION_ENTITY,
                entity_id=entity_ids).values_list('learning_container_year',
                                                  flat=True).distinct())

    return entities_id_list if entities_id_list else None
def _get_filter_entity_management(qs, requirement_entity_acronym,
                                  with_entity_subordinated):
    entity_ids = get_entities_ids(requirement_entity_acronym,
                                  with_entity_subordinated)
    return qs.filter(
        formation__education_group__educationgroupyear__management_entity__in=
        entity_ids)
Esempio n. 6
0
 def test_get_entities_ids(self):
     entity_parent = EntityFactory()
     entities = []
     for i in range(20):
         child_entity_version = EntityVersionFactory(
             parent=entity_parent,
             acronym='TEST{}'.format(i),
             start_date=self.current_academic_year.start_date+timedelta(days=i),
             end_date=self.current_academic_year.start_date+timedelta(days=i)
         )
         entity_parent = child_entity_version.entity
         entities.append(entity_parent.id)
     entities_ids = get_entities_ids('NOTHING', True)
     self.assertEqual([], entities_ids)
     entities_ids = get_entities_ids('TEST', True)
     self.assertEqual(entities, sorted(entities_ids))
Esempio n. 7
0
 def filter_entity(self, queryset, name, value):
     with_subordinated = self.form.cleaned_data['with_entity_subordinated']
     lookup_expression = "__".join(["learning_container_year", name, "in"])
     if value:
         entity_ids = get_entities_ids(value, with_subordinated)
         queryset = queryset.filter(**{lookup_expression: entity_ids})
     return queryset
Esempio n. 8
0
 def filter_allocation_entity_with_entity_subordinated(
         self, queryset, name, value):
     with_subordinated = self.form.cleaned_data['with_entity_subordinated']
     if value:
         entity_ids = get_entities_ids(value, with_subordinated)
         queryset = queryset.filter(
             learning_container_year__allocation_entity__in=entity_ids)
     return queryset
Esempio n. 9
0
def _get_filter_entity_management(requirement_entity_acronym,
                                  with_entity_subordinated):
    entity_ids = get_entities_ids(requirement_entity_acronym,
                                  with_entity_subordinated)
    return list(
        offer_year_entity.search(type=offer_year_entity_type.ENTITY_MANAGEMENT,
                                 entity=entity_ids).values_list(
                                     'education_group_year',
                                     flat=True).distinct())
Esempio n. 10
0
def get_filter_learning_container_ids(filter_data):
    requirement_entity_acronym = filter_data.get('requirement_entity_acronym')
    allocation_entity_acronym = filter_data.get('allocation_entity_acronym')
    with_entity_subordinated = filter_data.get('with_entity_subordinated', False)
    entities_id_list = []

    if requirement_entity_acronym:
        entity_ids = get_entities_ids(requirement_entity_acronym, with_entity_subordinated)
        entities_id_list = get_entity_container_list(entities_id_list,
                                                     entity_ids,
                                                     entity_container_year_link_type.REQUIREMENT_ENTITY)

    if allocation_entity_acronym:
        entity_ids = get_entities_ids(allocation_entity_acronym, False)
        entities_id_list = get_entity_container_list(entities_id_list,
                                                     entity_ids,
                                                     entity_container_year_link_type.ALLOCATION_ENTITY)

    return entities_id_list if entities_id_list else None
Esempio n. 11
0
def get_list_entity_learning_unit_yr(an_entity_version, current_academic_yr):
    entity_ids = get_entities_ids(an_entity_version.entity.most_recent_acronym,
                                  False)
    entities_id_list = get_entity_container_list(
        [], entity_ids, entity_container_year_link_type.REQUIREMENT_ENTITY)

    return learning_unit_year.search(**{'learning_container_year_id': entities_id_list,
                                        'academic_year_id': current_academic_yr,
                                        'status': True}) \
        .select_related('academic_year', 'learning_container_year',
                        'learning_container_year__academic_year') \
        .prefetch_related(build_entity_container_prefetch()) \
        .order_by('academic_year__year', 'acronym')
Esempio n. 12
0
def get_filter_learning_container_ids(entity_version, qs):
    """
    Append a filter on the queryset if entities are given in the search

    :param qs: LearningUnitYearQuerySet
    :return: queryset
    """

    if entity_version:
        allocation_entity_ids = get_entities_ids(entity_version.acronym, True)
        qs = qs.filter(
            learning_container_year__allocation_entity__in=allocation_entity_ids
        )

    return qs
Esempio n. 13
0
 def filter_with_entity_subordinated(self, queryset, name, value):
     with_subordinated = self.form.cleaned_data['with_entity_subordinated']
     if value:
         entity_ids = get_entities_ids(value, with_subordinated)
         queryset = queryset.filter(management_entity__in=entity_ids)
     return queryset
Esempio n. 14
0
 def filter_with_entity_subordinated(self, queryset, name, value):
     with_subordinated = self.form.cleaned_data['with_entity_subordinated']
     if value:
         entity_ids = get_entities_ids(value, with_subordinated)
         queryset = queryset.filter(management_entity__in=entity_ids)
     return queryset
Esempio n. 15
0
def _get_filter_entity_management(qs, requirement_entity_acronym,
                                  with_entity_subordinated):
    entity_ids = get_entities_ids(requirement_entity_acronym,
                                  with_entity_subordinated)
    return qs.filter(management_entity__in=entity_ids)
Esempio n. 16
0
def filter_by_entities(name, queryset, value, with_subordinated):
    lookup_expression = "__".join(["learning_container_year", name, "in"])
    if value:
        entity_ids = get_entities_ids(value, with_subordinated)
        queryset = queryset.filter(**{lookup_expression: entity_ids})
    return queryset
Esempio n. 17
0
def _get_formation_filter_entity_management(qs, requirement_entity_acronym, with_entity_subordinated):
    exact_requirement_entity_acronym = "^{}$".format(requirement_entity_acronym)
    entity_ids = get_entities_ids(exact_requirement_entity_acronym, with_entity_subordinated)
    return qs.filter(educationgroupyear__management_entity__in=entity_ids)