Esempio n. 1
0
def check_academic_calendar() -> dict:
    open_calendar = AcademicCalendar.objects.filter(
        start_date=datetime.now().date()).first()
    if open_calendar and open_calendar.reference == EDUCATION_GROUP_EDITION:
        # Copy the education group data of the open academic year.
        process = ReddotEducationGroupAutomaticPostponement(
            EducationGroupYear.objects.filter(
                academic_year=open_calendar.academic_year))
        process.postpone()
        return {
            "Copy of Reddot data": process.serialize_postponement_results()
        }

    return {}
Esempio n. 2
0
    def copy_reddot_data(self, request, queryset):
        # Potential circular imports
        from base.business.education_groups.automatic_postponement import ReddotEducationGroupAutomaticPostponement
        from base.views.common import display_success_messages, display_error_messages

        result, errors = ReddotEducationGroupAutomaticPostponement(queryset).postpone()
        count = len(result)
        display_success_messages(
            request, ngettext(
                "%(count)d education group has been updated with success.",
                "%(count)d education groups have been updated with success.", count
            ) % {'count': count}
        )
        if errors:
            display_error_messages(request, "{} : {}".format(
                _("The following education groups ended with error"),
                ", ".join([str(error) for error in errors])
            ))
 def test_no_previous_education_group(self):
     postponer = ReddotEducationGroupAutomaticPostponement()
     postponer.postpone()
     self.assertEqual(len(postponer.result), 0)
     self.assertEqual(len(postponer.errors), 0)
    def test_postpone(self):
        self.current_education_group_year = EducationGroupYearFactory(
            academic_year=self.current_year)

        publication_contact_entity = EntityFactory()
        self.previous_education_group_year = EducationGroupYearFactory(
            academic_year=self.previous_year,
            education_group=self.current_education_group_year.education_group,
            publication_contact_entity=publication_contact_entity,
        )

        TranslatedTextFactory(
            entity=OFFER_YEAR,
            reference=str(self.previous_education_group_year.pk),
            text=
            "It is our choices, Harry, that show what we truly are, far more than our abilities."
        )
        EducationGroupPublicationContactFactory(
            education_group_year=self.previous_education_group_year)

        EducationGroupDetailedAchievementFactory(
            education_group_achievement__education_group_year=self.
            previous_education_group_year)
        AdmissionConditionLineFactory(
            admission_condition__education_group_year=self.
            previous_education_group_year,
            section="nothing else matters")

        # this object will be removed during the copy.
        AdmissionConditionLineFactory(
            admission_condition__education_group_year=self.
            current_education_group_year,
            section="the world is dying.")

        postponer = ReddotEducationGroupAutomaticPostponement()
        postponer.postpone()

        self.assertEqual(len(postponer.result), 1)
        self.assertEqual(len(postponer.errors), 0)
        self.assertEqual(
            TranslatedText.objects.get(
                entity=OFFER_YEAR,
                reference=str(self.current_education_group_year.pk)).text,
            "It is our choices, Harry, that show what we truly are, far more than our abilities."
        )
        self.assertTrue(
            EducationGroupPublicationContact.objects.filter(
                education_group_year=self.current_education_group_year).exists(
                ))
        self.current_education_group_year.refresh_from_db()
        self.assertEqual(
            self.current_education_group_year.publication_contact_entity,
            publication_contact_entity)

        self.assertTrue(
            EducationGroupDetailedAchievement.objects.filter(
                education_group_achievement__education_group_year=self.
                current_education_group_year).exists())

        self.assertTrue(
            AdmissionConditionLine.objects.get(
                admission_condition__education_group_year=self.
                current_education_group_year).section, "nothing else matters")