Ejemplo n.º 1
0
def learning_units_summary_list(request):
    a_user_person = find_by_user(request.user)
    learning_units_found = []

    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})
    try:
        if search_form.is_valid():
            learning_units_found_search = search_form.get_learning_units(
                requirement_entities=a_user_person.find_main_entities_version,
                luy_status=True
            )
            learning_units_found = get_learning_units_and_summary_status(learning_units_found_search)
            check_if_display_message(request, learning_units_found_search)
    except TooManyResultsException:
        display_error_messages(request, 'too_many_results')

    responsible_and_learning_unit_yr_list = get_responsible_and_learning_unit_yr_list(learning_units_found)
    learning_units = sorted(learning_units_found, key=lambda learning_yr: learning_yr.acronym)
    errors = [can_learning_unit_year_educational_information_be_udpated(learning_unit_year_id=luy.id)
              for luy in learning_units]
    context = {
        'form': search_form,
        'formset': _get_formset(request, responsible_and_learning_unit_yr_list),
        'learning_units_with_errors': list(zip(learning_units, errors)),
        'experimental_phase': True,
        'search_type': SUMMARY_LIST,
        'is_faculty_manager': a_user_person.is_faculty_manager()
    }

    return layout.render(request, "learning_units.html", context)
Ejemplo n.º 2
0
 def test_is_academic_calendar_has_started_case_date_args_higher_than_ac_calendar_start(
         self):
     higher_date = self.current_academic_calendar.start_date + datetime.timedelta(
         days=10)
     self.assertTrue(
         is_academic_calendar_has_started(
             academic_year=self.current_academic_year,
             reference=academic_calendar_type.SUMMARY_COURSE_SUBMISSION,
             date=higher_date))
Ejemplo n.º 3
0
 def test_is_academic_calendar_has_started_case_date_args_lower_than_ac_calendar_start(
         self):
     lower_date = self.current_academic_calendar.start_date - datetime.timedelta(
         days=5)
     self.assertFalse(
         is_academic_calendar_has_started(
             academic_year=self.current_academic_year,
             reference=academic_calendar_type.SUMMARY_COURSE_SUBMISSION,
             date=lower_date))
Ejemplo n.º 4
0
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)
Ejemplo n.º 5
0
def learning_units_summary_list(request):
    a_user_person = find_by_user(request.user)
    learning_units_found = []

    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})
    try:
        if search_form.is_valid():
            learning_units_found_search = search_form.get_learning_units(
                requirement_entities=a_user_person.find_main_entities_version,
                luy_status=True)

            # TODO refactoring : too many queries
            learning_units_found = get_learning_units_and_summary_status(
                learning_units_found_search)
            check_if_display_message(request, learning_units_found_search)
    except TooManyResultsException:
        display_error_messages(request, 'too_many_results')
    responsible_and_learning_unit_yr_list = get_responsible_and_learning_unit_yr_list(
        learning_units_found)
    learning_units = sorted(learning_units_found,
                            key=lambda learning_yr: learning_yr.acronym)
    errors = [
        can_learning_unit_year_educational_information_be_udpated(
            learning_unit_year_id=luy.id) for luy in learning_units
    ]

    if request.GET.get('xls_status') == "xls_teaching_material":
        try:
            return generate_xls_teaching_material(request.user,
                                                  learning_units_found)
        except ObjectDoesNotExist:
            display_warning_messages(
                request,
                _("the list to generate is empty.").capitalize())

    form_comparison = SelectComparisonYears(
        academic_year=get_academic_year_of_reference(learning_units_found))
    context = {
        'form': search_form,
        'formset': _get_formset(request,
                                responsible_and_learning_unit_yr_list),
        'learning_units_with_errors': list(zip(learning_units, errors)),
        'search_type': SUMMARY_LIST,
        'is_faculty_manager': a_user_person.is_faculty_manager(),
        'form_comparison': form_comparison
    }

    return layout.render(request, "learning_units.html", context)
Ejemplo n.º 6
0
 def test_is_academic_calendar_has_started_case_no_date_args(self):
     self.assertTrue(
         is_academic_calendar_has_started(
             academic_year=self.current_academic_year,
             reference=academic_calendar_type.SUMMARY_COURSE_SUBMISSION))