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
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)
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)
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))
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
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
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())
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
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')
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
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
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)
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
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)