def update_courses(self): """ Updates courses state, when evaluation time begins/ends.""" today = datetime.date.today() courses_new_in_evaluation = [] for course in Course.objects.all(): try: if course.state == "approved" and course.vote_start_date <= today: course.evaluation_begin() course.save() courses_new_in_evaluation.append(course) elif course.state == "inEvaluation" and course.vote_end_date < today: course.evaluation_end() if course.is_fully_checked(): course.review_finished() course.save() except Exception: pass if courses_new_in_evaluation: EmailTemplate.get_evaluation_started_template().send_to_users_in_courses(courses_new_in_evaluation, ['all_participants'])