Beispiel #1
0
def search_vacant_attribution(request):
    tutor = mdl_base.tutor.find_by_user(request.user)
    attributions_vacant = None
    form = VacantAttributionFilterForm(data=request.GET)
    if form.is_valid():
        application_academic_year = tutor_application.get_application_year()
        attributions_vacant = attribution.get_attribution_vacant_list(
            acronym_filter=form.cleaned_data['learning_container_acronym'],
            academic_year=application_academic_year)
        attributions_vacant = tutor_application.mark_attribution_already_applied(
            attributions_vacant, tutor.person.global_id,
            application_academic_year)
        if attributions_vacant:
            for an_attribution in attributions_vacant:
                attribution.update_learning_unit_volume(
                    an_attribution, application_academic_year)

        for attrib in attributions_vacant:
            attrib['teachers'] = attribution.get_teachers(
                attrib['acronym'], application_academic_year.year)

    return layout.render(
        request, "attribution_vacant_list.html", {
            'a_tutor': tutor,
            'attributions_vacant': attributions_vacant,
            'search_form': form
        })
Beispiel #2
0
def overview(request, global_id=None):
    tutor = mdl_base.tutor.find_by_user(request.user) if not global_id else \
                 mdl_base.tutor.find_by_person_global_id(global_id)

    # Applications for next year
    application_year = tutor_application.get_application_year()
    applications = tutor_application.get_application_list(
        global_id=tutor.person.global_id)

    # Attributions for next year
    attributions = attribution.get_attribution_list(
        global_id=tutor.person.global_id, academic_year=application_year)
    volume_total_attributions = attribution.get_volumes_total(attributions)

    # Attribution which will be expire this academic year
    current_academic_year = mdl_base.academic_year.current_academic_year()

    attributions_about_to_expired = attribution.get_attribution_list_about_to_expire(
        global_id=tutor.person.global_id, academic_year=current_academic_year)

    for attrib in attributions:
        attrib['teachers'] = attribution.get_teachers(attrib['acronym'],
                                                      application_year.year)

    for an_attribution in attributions:
        attribution.update_learning_unit_volume(an_attribution,
                                                application_year)
    if attributions_about_to_expired:
        for an_attribution in attributions_about_to_expired:
            attribution.update_learning_unit_volume(an_attribution,
                                                    application_year)
    return layout.render(
        request, "attribution_overview.html", {
            'a_tutor':
            tutor,
            'attributions':
            attributions,
            'current_academic_year':
            current_academic_year,
            'attributions_about_to_expire':
            attributions_about_to_expired,
            'application_year':
            application_year,
            'applications':
            applications,
            'tot_lecturing':
            volume_total_attributions.get(
                learning_component_year_type.LECTURING),
            'tot_practical':
            volume_total_attributions.get(
                learning_component_year_type.PRACTICAL_EXERCISES),
            'application_academic_calendar':
            mdl_base.academic_calendar.get_by_reference_and_academic_year(
                academic_calendar_type.TEACHING_CHARGE_APPLICATION,
                current_academic_year),
            'catalog_url':
            settings.ATTRIBUTION_CONFIG.get('CATALOG_URL')
        })
Beispiel #3
0
    def test_get_2_teachers_in_order(self):
        acronym_LCHM1111 = 'LCHM1111'
        acronym_LDVLP2627 = 'LDVLP2627'
        acronym_LDROI1110 = 'LDROI1110'

        # Create first teacher with one attribution on LCHM1111 and others
        person_first_alphabetical_order = PersonFactory(global_id='12345678',
                                                        last_name='Antonelli')
        attribution_teacher_1_LCHM1111 = {
            'year': 2017,
            'acronym': acronym_LCHM1111
        }
        attributions_teacher1 = [
            attribution_teacher_1_LCHM1111, {
                'year': 2016,
                'acronym': acronym_LDVLP2627
            }, {
                'year': 2017,
                'acronym': acronym_LDVLP2627
            }, {
                'year': 2017,
                'acronym': acronym_LDROI1110
            }
        ]

        AttributionNewFactory(
            global_id=person_first_alphabetical_order.global_id,
            attributions=attributions_teacher1)
        # Create second teacher with one attribution on LCHM1111
        person_second_alphabetical_order = PersonFactory(global_id='987654321',
                                                         last_name='Barnet')
        attribution_teacher_2_LCHM1111 = {
            'year': 2017,
            'acronym': acronym_LCHM1111
        }
        attributions_teacher2 = [attribution_teacher_2_LCHM1111]
        AttributionNewFactory(
            global_id=person_second_alphabetical_order.global_id,
            attributions=attributions_teacher2)
        #
        attributions_result = attribution.get_teachers(acronym_LCHM1111, 2017)
        self.assertEqual(len(attributions_result), 2)
        self.assertEqual(attributions_result[0][attribution.PERSON_KEY],
                         person_first_alphabetical_order)
def _get_attributions_vacant(form, tutor):
    application_academic_year = tutor_application.get_application_year()
    attributions_vacant = attribution.get_attribution_vacant_list(
        acronym_filter=form.cleaned_data['learning_container_acronym'],
        academic_year=application_academic_year,
        faculty=form.cleaned_data['faculty'],
    )
    attributions_vacant = tutor_application.mark_attribution_already_applied(
        attributions_vacant,
        tutor.person.global_id,
        application_academic_year
    )
    if attributions_vacant:
        for an_attribution in attributions_vacant:
            attribution.update_learning_unit_volume(an_attribution, application_academic_year)
    for attrib in attributions_vacant:
        attrib['teachers'] = attribution.get_teachers(attrib['acronym'],
                                                      application_academic_year.year)
    return attributions_vacant
Beispiel #5
0
 def test_get_teachers_no_teacher_found(self):
     self.assertIsNone(attribution.get_teachers('LCHM1111', 2017))
Beispiel #6
0
 def test_get_teachers_parameter_none(self):
     self.assertIsNone(attribution.get_teachers(None, None))
     self.assertIsNone(attribution.get_teachers('LCHM1111', None))
     academic_year = AcademicYearFactory()
     self.assertIsNone(attribution.get_teachers(None, academic_year))