Exemplo n.º 1
0
    def test_get_application_list(self):
        global_id = self.tutor.person.global_id
        application_list = tutor_application.get_application_list(global_id, self.academic_year)
        self.assertIsInstance(application_list, list)
        self.assertEqual(len(application_list), 2)

        application_list_in_2016 = tutor_application.get_application_list(global_id, self.academic_year_2016)
        self.assertIsInstance(application_list_in_2016, list)
        self.assertEqual(len(application_list_in_2016), 1)
Exemplo n.º 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')
        })
Exemplo n.º 3
0
 def test_create_or_update_application_creation_on_new_user(self):
     # Create new tutor
     new_tutor = TutorFactory(person=PersonFactory(global_id="59898988"))
     # Submit tutor application
     application_to_create = _get_application_example(self.lbir1250_2017, '30', '20')
     global_id = new_tutor.person.global_id
     tutor_application.create_or_update_application(global_id, application_to_create)
     application_list = tutor_application.get_application_list(global_id, self.academic_year)
     self.assertEqual(len(application_list), 1)  # We should have 1 application
Exemplo n.º 4
0
 def test_create_or_update_application_creation_on_existing_user(self):
     application_to_create = _get_application_example(self.lbir1250_2017, '30', '20')
     global_id = self.tutor.person.global_id
     tutor_application.create_or_update_application(global_id, application_to_create)
     application_list = tutor_application.get_application_list(global_id, self.academic_year)
     self.assertEqual(len(application_list), 3) # We should have 3 applications now
     # We should found the newest created
     self.assertTrue(next(app for app in application_list if
                          app.get('acronym') == self.lbir1250_2017.acronym))
Exemplo n.º 5
0
    def test_get_application_list_with_none_practical_charge(self):
        new_tutor = TutorFactory(person=PersonFactory(global_id="59898988"))
        application_to_create = _get_application_example(self.lbir1200_2017, "15", None)
        global_id = new_tutor.person.global_id
        tutor_application.create_or_update_application(global_id, application_to_create)
        application_list = tutor_application.get_application_list(global_id, self.academic_year)

        application_created = application_list[0]
        self.assertTrue(application_created)
        self.assertEqual(application_created.get('acronym'), self.lbir1200_2017.acronym)
        self.assertEqual(application_created.get('charge_lecturing_asked'), Decimal(15))
        self.assertEqual(application_created.get('charge_practical_asked'), Decimal(0))
Exemplo n.º 6
0
 def test_create_or_update_application_update(self):
     application_to_update = _get_application_example(self.lbir1200_2017, '0', '10')
     global_id = self.tutor.person.global_id
     tutor_application.create_or_update_application(global_id, application_to_update)
     application_list = tutor_application.get_application_list(global_id, self.academic_year)
     self.assertEqual(len(application_list), 2)  # We should have 2 applications
     application_updated = next(app for app in application_list if
                          app.get('acronym') == self.lbir1200_2017.acronym)
     self.assertTrue(application_updated)
     self.assertEqual(application_updated.get('acronym'), self.lbir1200_2017.acronym)
     self.assertEqual(application_updated.get('charge_lecturing_asked'), Decimal(0))
     self.assertEqual(application_updated.get('charge_practical_asked'), Decimal(10))
Exemplo n.º 7
0
 def test_get_application_list_order_by(self):
     self.attribution.applications = [
         _get_application_example(self.lbir1200_2017, '3.5', '35.6'),  # Application 2017
         _get_application_example(self.lbir1250_2017, '5', '7', tutor_application_epc.UPDATE_OPERATION),
         _get_application_example(self.lbir1300_2017, '7.5', '25')  # Application 2017
     ]
     self.attribution.save()
     global_id = self.tutor.person.global_id
     application_list = tutor_application.get_application_list(global_id, self.academic_year)
     self.assertIsInstance(application_list, list)
     self.assertEqual(len(application_list), 3)
     # Check order
     self.assertEqual(application_list[0]['acronym'], self.lbir1200_2017.acronym)
     self.assertEqual(application_list[1]['acronym'], self.lbir1300_2017.acronym)
     self.assertEqual(application_list[2]['acronym'], self.lbir1250_2017.acronym)