Ejemplo n.º 1
0
 def store_in_database(self, vote_start_datetime, vote_end_date, semester):
     course_type = CourseType.objects.get(name_de=self.type_name)
     # This is safe because the user's email address is checked before in the importer (see #953)
     responsible_dbobj = UserProfile.objects.get(
         email=self.responsible_email)
     course = Course(
         name_de=self.name_de,
         name_en=self.name_en,
         type=course_type,
         is_graded=self.is_graded,
         semester=semester,
     )
     course.save()
     course.responsibles.set([responsible_dbobj])
     for degree_name in self.degree_names:
         course.degrees.add(Degree.objects.get(name_de=degree_name))
     evaluation = Evaluation(
         vote_start_datetime=vote_start_datetime,
         vote_end_date=vote_end_date,
         course=course,
     )
     evaluation.save()
     evaluation.contributions.create(
         contributor=responsible_dbobj,
         evaluation=evaluation,
         can_edit=True,
         textanswer_visibility=Contribution.TextAnswerVisibility.
         GENERAL_TEXTANSWERS)
Ejemplo n.º 2
0
 def store_in_database(self, vote_start_datetime, vote_end_date, semester):
     assert not self.errors
     # This is safe because the user's email address is checked before in the importer (see #953)
     responsible_dbobj = UserProfile.objects.get(
         email=self.responsible_email)
     course = Course(
         name_de=self.name_de,
         name_en=self.name_en,
         type=self.course_type,
         semester=semester,
     )
     course.save()
     course.responsibles.set([responsible_dbobj])
     course.degrees.set(self.degrees)
     evaluation = Evaluation(
         vote_start_datetime=vote_start_datetime,
         vote_end_date=vote_end_date,
         course=course,
         wait_for_grade_upload_before_publishing=self.is_graded,
     )
     evaluation.save()
     evaluation.contributions.create(
         evaluation=evaluation,
         contributor=responsible_dbobj,
         role=Contribution.Role.EDITOR,
         textanswer_visibility=Contribution.TextAnswerVisibility.
         GENERAL_TEXTANSWERS,
     )
Ejemplo n.º 3
0
    def save(self, commit=True):
        new_course: Course = super().save()
        # we need to create copies of evaluations and their participation as well
        for old_evaluation in self.old_course.evaluations.exclude(
                is_single_result=True):
            new_evaluation = Evaluation(
                **{
                    field: getattr(old_evaluation, field)
                    for field in self.EVALUATION_COPIED_FIELDS
                },
                can_publish_text_results=False,
                course=new_course,
                vote_start_datetime=self.cleaned_data["vote_start_datetime"],
                vote_end_date=self.cleaned_data["vote_end_date"],
            )
            new_evaluation.save()

            new_evaluation.contributions.all().delete(
            )  # delete default general contribution
            for old_contribution in old_evaluation.contributions.all():
                new_contribution = Contribution(
                    **{
                        field: getattr(old_contribution, field)
                        for field in self.CONTRIBUTION_COPIED_FIELDS
                    },
                    evaluation=new_evaluation,
                )
                new_contribution.save()
                new_contribution.questionnaires.set(
                    old_contribution.questionnaires.all())

        return new_course
Ejemplo n.º 4
0
 def store_in_database(self, vote_start_datetime, vote_end_date, semester):
     course_type = CourseType.objects.get(name_de=self.type_name)
     # This is safe because the user's email address is checked before in the importer (see #953)
     responsible_dbobj = UserProfile.objects.get(email=self.responsible_email)
     course = Course(
         name_de=self.name_de,
         name_en=self.name_en,
         type=course_type,
         is_graded=self.is_graded,
         semester=semester,
     )
     course.save()
     course.responsibles.set([responsible_dbobj])
     for degree_name in self.degree_names:
         course.degrees.add(Degree.objects.get(name_de=degree_name))
     evaluation = Evaluation(
         vote_start_datetime=vote_start_datetime,
         vote_end_date=vote_end_date,
         course=course,
     )
     evaluation.save()
     evaluation.contributions.create(contributor=responsible_dbobj, evaluation=evaluation, can_edit=True, textanswer_visibility=Contribution.GENERAL_TEXTANSWERS)