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
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
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
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
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