def learning_units_external_search(request): search_form = ExternalLearningUnitYearForm(request.GET or None, initial={ 'academic_year_id': current_academic_year(), 'with_entity_subordinated': True }) user_person = get_object_or_404(Person, user=request.user) found_learning_units = LearningUnitYear.objects.none() if search_form.is_valid(): found_learning_units = search_form.get_queryset() check_if_display_message(request, found_learning_units) context = { 'form': search_form, 'academic_years': get_last_academic_years(), 'current_academic_year': current_academic_year(), 'search_type': EXTERNAL_SEARCH, 'learning_units_count': found_learning_units.count(), 'is_faculty_manager': user_person.is_faculty_manager, 'form_comparison': SelectComparisonYears(academic_year=get_academic_year_of_reference( found_learning_units)), 'page_obj': paginate_queryset(found_learning_units, request.GET), } return render(request, "learning_units.html", context)
def education_groups(request): person = get_object_or_404(Person, user=request.user) if request.GET: form = EducationGroupFilter(request.GET) else: current_academic_year = mdl.academic_year.current_academic_year() form = EducationGroupFilter(initial={'academic_year': current_academic_year, 'category': education_group_categories.TRAINING}) object_list = _get_object_list(form, request) if form.is_valid() else [] if request.GET.get('xls_status') == "xls": return create_xls(request.user, object_list, _get_filter_keys(form), {ORDER_COL: request.GET.get('xls_order_col'), ORDER_DIRECTION: request.GET.get('xls_order')}) if request.GET.get('xls_status') == "xls_administrative": return create_xls_administrative_data( request.user, object_list, _get_filter_keys(form), {ORDER_COL: request.GET.get('xls_order_col'), ORDER_DIRECTION: request.GET.get('xls_order')} ) context = { 'form': form, 'object_list': paginate_queryset(object_list, request.GET), 'object_list_count': len(object_list), 'experimental_phase': True, 'enums': education_group_categories, 'person': person } return layout.render(request, "education_group/search.html", context)
def learning_units_search(request, search_type): service_course_search = search_type == SERVICE_COURSES_SEARCH borrowed_course_search = search_type == BORROWED_COURSE form = LearningUnitYearForm( request.GET or None, service_course_search=service_course_search, borrowed_course_search=borrowed_course_search, initial={'academic_year_id': starting_academic_year()} ) found_learning_units = LearningUnitYear.objects.none() try: if form.is_valid(): found_learning_units = form.get_activity_learning_units() check_if_display_message(request, found_learning_units) except TooManyResultsException: display_error_messages(request, 'too_many_results') if request.POST.get('xls_status') == "xls": return create_xls(request.user, found_learning_units, _get_filter(form, search_type)) if request.POST.get('xls_status') == "xls_comparison": return create_xls_comparison( request.user, found_learning_units, _get_filter(form, search_type), request.POST.get('comparison_year') ) if request.POST.get('xls_status') == "xls_with_parameters": return create_xls_with_parameters( request.user, found_learning_units, _get_filter(form, search_type), { WITH_GRP: request.POST.get('with_grp') == 'true', WITH_ATTRIBUTIONS: request.POST.get('with_attributions') == 'true' } ) form_comparison = SelectComparisonYears(academic_year=get_academic_year_of_reference(found_learning_units)) context = { 'form': form, 'academic_years': get_last_academic_years(), 'container_types': learning_container_year_types.LEARNING_CONTAINER_YEAR_TYPES, 'types': learning_unit_year_subtypes.LEARNING_UNIT_YEAR_SUBTYPES, 'learning_units_count': len(found_learning_units) if isinstance(found_learning_units, list) else found_learning_units.count(), 'current_academic_year': starting_academic_year(), 'experimental_phase': True, 'search_type': search_type, 'is_faculty_manager': request.user.person.is_faculty_manager, 'form_comparison': form_comparison, 'page_obj': paginate_queryset(found_learning_units, request.GET), } return render(request, "learning_units.html", context)
def entities_search(request): order_by = request.GET.get('order_by', 'acronym') filter = EntityVersionFilter(request.GET or None) entities_version_list = filter.qs.select_related('entity__organization').order_by(order_by) entities_version_list = paginate_queryset(entities_version_list, request.GET) return render(request, "entities.html", {'entities_version': entities_version_list, 'form': filter.form})
def learning_units_summary_list(request): a_user_person = request.user.person found_learning_units = LearningUnitYear.objects.none() initial_academic_year = current_academic_year() if academic_calendar.is_academic_calendar_has_started( initial_academic_year, SUMMARY_COURSE_SUBMISSION): initial_academic_year = initial_academic_year.next() search_form = LearningUnitYearForm(request.GET or None, initial={ 'academic_year_id': initial_academic_year, 'with_entity_subordinated': True }) try: if search_form.is_valid(): found_learning_units = search_form.get_learning_units_and_summary_status( requirement_entities=a_user_person.find_main_entities_version, ) check_if_display_message(request, found_learning_units) except TooManyResultsException: display_error_messages(request, 'too_many_results') responsible_and_learning_unit_yr_list = get_responsible_and_learning_unit_yr_list( found_learning_units) for luy in found_learning_units: luy.errors = can_learning_unit_year_educational_information_be_udpated( learning_unit_year_id=luy) if request.GET.get('xls_status') == "xls_teaching_material": try: return generate_xls_teaching_material(request.user, found_learning_units) except ObjectDoesNotExist: display_warning_messages( request, _("the list to generate is empty.").capitalize()) form_comparison = SelectComparisonYears( academic_year=get_academic_year_of_reference(found_learning_units)) context = { 'form': search_form, 'formset': _get_formset(request, responsible_and_learning_unit_yr_list), 'learning_units_count': found_learning_units.count(), 'search_type': SUMMARY_LIST, 'is_faculty_manager': a_user_person.is_faculty_manager, 'form_comparison': form_comparison, 'page_obj': paginate_queryset(found_learning_units, request.GET), } return render(request, "learning_units.html", context)
def entities_search(request): order_by = request.GET.get('order_by', 'acronym') form = EntitySearchForm(request.GET or None) entities_version_list = form.get_entities().order_by(order_by) entities_version_list = paginate_queryset(entities_version_list, request.GET) return render(request, "entities.html", { 'entities_version': entities_version_list, 'form': form })
def search_tutors(request): tutors_qs = Tutor.objects.none() form = TutorSearchForm(data=request.GET) if form.is_valid(): tutors_qs = form.search() tutors = paginate_queryset(tutors_qs, request.GET) return render(request, "search/search.html", { "form": form, "tutors": tutors })
def learning_units_proposal_search(request): search_form = LearningUnitProposalForm( request.GET or None, initial={'academic_year_id': current_academic_year()} ) user_person = get_object_or_404(Person, user=request.user) found_learning_units = LearningUnitYear.objects.none() if search_form.is_valid(): found_learning_units = search_form.get_proposal_learning_units() check_if_display_message(request, found_learning_units) if request.POST.get('xls_status_proposal') == "xls": return create_xls_proposal( user_person.user, list(found_learning_units), _get_filter(search_form, PROPOSAL_SEARCH) ) if request.POST: research_criteria = get_research_criteria(search_form) if search_form.is_valid() else [] selected_proposals_id = request.POST.getlist("selected_action", default=[]) selected_proposals = ProposalLearningUnit.objects.filter(id__in=selected_proposals_id) messages_by_level = apply_action_on_proposals(selected_proposals, user_person, request.POST, research_criteria) display_messages_by_level(request, messages_by_level) return redirect(reverse("learning_unit_proposal_search") + "?{}".format(request.GET.urlencode())) context = { 'form': search_form, 'form_proposal_state': ProposalStateModelForm(), 'academic_years': get_last_academic_years(), 'current_academic_year': current_academic_year(), 'experimental_phase': True, 'search_type': PROPOSAL_SEARCH, 'learning_units_count': found_learning_units.count(), 'is_faculty_manager': user_person.is_faculty_manager, 'form_comparison': SelectComparisonYears(academic_year=get_academic_year_of_reference(found_learning_units)), 'page_obj': paginate_queryset(found_learning_units, request.GET), } return render(request, "learning_units.html", context)
def education_groups(request): person = get_object_or_404(Person, user=request.user) filter_form = EducationGroupFilter(request.GET or None) objects_qs = EducationGroupYear.objects.none() if filter_form.is_valid(): objects_qs = filter_form.qs if not objects_qs.exists(): messages.add_message(request, messages.WARNING, _('No result!')) # FIXME: use ordering args in filter_form! Remove xls_order_col/xls_order property if request.GET.get('xls_status') == "xls": return create_xls( request.user, objects_qs, _get_filter_keys(filter_form.form), { ORDER_COL: request.GET.get('xls_order_col'), ORDER_DIRECTION: request.GET.get('xls_order') }) # FIXME: use ordering args in filter_form! Remove xls_order_col/xls_order property if request.GET.get('xls_status') == "xls_administrative": return create_xls_administrative_data( request.user, objects_qs, _get_filter_keys(filter_form.form), { ORDER_COL: request.GET.get('xls_order_col'), ORDER_DIRECTION: request.GET.get('xls_order') }) object_list_paginated = paginate_queryset(objects_qs, request.GET) if request.is_ajax(): serializer = EducationGroupSerializer(object_list_paginated, context={'request': request}, many=True) return JsonResponse({'object_list': serializer.data}) context = { 'form': filter_form.form, 'object_list': object_list_paginated, 'object_list_count': objects_qs.count(), 'enums': education_group_categories, 'person': person } return render(request, "education_group/search.html", context)