Exemple #1
0
 def save(self, *args, **kw):
     evaluation = super().save(*args, **kw)
     evaluation.general_contribution.questionnaires.set(self.cleaned_data.get('general_questionnaires'))
     if hasattr(self.instance, 'old_course'):
         if self.instance.old_course != evaluation.course:
             update_template_cache_of_published_evaluations_in_course(self.instance.old_course)
             update_template_cache_of_published_evaluations_in_course(evaluation.course)
     return evaluation
Exemple #2
0
 def save(self, *args, **kw):
     evaluation = super().save(*args, **kw)
     evaluation.general_contribution.questionnaires.set(self.cleaned_data.get('general_questionnaires'))
     if hasattr(self.instance, 'old_course'):
         if self.instance.old_course != evaluation.course:
             update_template_cache_of_published_evaluations_in_course(self.instance.old_course)
             update_template_cache_of_published_evaluations_in_course(evaluation.course)
     return evaluation
Exemple #3
0
    def save(self, *args, **kw):
        user = kw.pop("user")
        self.instance.last_modified_user = user
        event_date = self.cleaned_data['event_date']
        self.instance.vote_start_datetime = date_to_datetime(event_date)
        self.instance.vote_end_date = event_date
        self.instance.is_single_result = True
        evaluation = super().save(*args, **kw)

        single_result_questionnaire = Questionnaire.single_result_questionnaire(
        )
        single_result_question = single_result_questionnaire.questions.first()

        contribution, created = Contribution.objects.get_or_create(
            evaluation=evaluation, contributor=None)
        if created:
            contribution.questionnaires.add(single_result_questionnaire)
        contribution.save()

        # set answers
        contribution = Contribution.objects.get(evaluation=evaluation)
        total_votes = 0
        for i in range(1, 6):
            count = self.cleaned_data['answer_' + str(i)]
            total_votes += count
            RatingAnswerCounter.objects.update_or_create(
                contribution=contribution,
                question=single_result_question,
                answer=i,
                defaults={'count': count})
        evaluation._participant_count = total_votes
        evaluation._voter_count = total_votes

        # change state to "reviewed"
        # works only for single_results so the evaluation and its contribution must be saved first
        evaluation.single_result_created()
        evaluation.save()

        if hasattr(self.instance, 'old_course'):
            if self.instance.old_course != evaluation.course:
                update_template_cache_of_published_evaluations_in_course(
                    self.instance.old_course)
                update_template_cache_of_published_evaluations_in_course(
                    evaluation.course)

        return evaluation
Exemple #4
0
 def save(self, *args, **kw):
     evaluation = super().save(*args, **kw)
     selected_questionnaires = self.cleaned_data.get(
         "general_questionnaires")
     removed_questionnaires = set(
         self.instance.general_contribution.questionnaires.all()) - set(
             selected_questionnaires)
     evaluation.general_contribution.remove_answers_to_questionnaires(
         removed_questionnaires)
     evaluation.general_contribution.questionnaires.set(
         selected_questionnaires)
     if hasattr(self.instance, "old_course"):
         if self.instance.old_course != evaluation.course:
             update_template_cache_of_published_evaluations_in_course(
                 self.instance.old_course)
             update_template_cache_of_published_evaluations_in_course(
                 evaluation.course)
     return evaluation
Exemple #5
0
    def save(self, *args, **kw):
        user = kw.pop("user")
        self.instance.last_modified_user = user
        event_date = self.cleaned_data['event_date']
        self.instance.vote_start_datetime = date_to_datetime(event_date)
        self.instance.vote_end_date = event_date
        self.instance.is_single_result = True
        evaluation = super().save(*args, **kw)

        single_result_questionnaire = Questionnaire.single_result_questionnaire()
        single_result_question = single_result_questionnaire.questions.first()

        contribution, created = Contribution.objects.get_or_create(evaluation=evaluation, contributor=None)
        if created:
            contribution.questionnaires.add(single_result_questionnaire)
        contribution.save()

        # set answers
        contribution = Contribution.objects.get(evaluation=evaluation)
        total_votes = 0
        for i in range(1, 6):
            count = self.cleaned_data['answer_' + str(i)]
            total_votes += count
            RatingAnswerCounter.objects.update_or_create(contribution=contribution, question=single_result_question, answer=i, defaults={'count': count})
        evaluation._participant_count = total_votes
        evaluation._voter_count = total_votes

        # change state to "reviewed"
        # works only for single_results so the evaluation and its contribution must be saved first
        evaluation.single_result_created()
        evaluation.save()

        if hasattr(self.instance, 'old_course'):
            if self.instance.old_course != evaluation.course:
                update_template_cache_of_published_evaluations_in_course(self.instance.old_course)
                update_template_cache_of_published_evaluations_in_course(evaluation.course)

        return evaluation