def make_new_assessment(request): name = request.POST['Assessment name'] description = request.POST['description'] course_id = request.POST['course id'] start_dt = request.POST['start date'] end_dt = request.POST['end date'] valid = False # Validate Date Format if regex_search(r'[0-9]+\-[0-9]+\-[0-9]+', start_dt) and regex_search(r'[0-9]+\-[0-9]+\-[0-9]+', end_dt): st_dt_list = start_dt.split('-') end_dt_list = end_dt.split('-') valid = True else: messages.error(request, "Error: Incorrect date format. Use yyyy-mm-dd") return make_new_assessment(request) if valid: # -----------if starts here ------------------------- # Create an instance of assessment assessment = Assessment( name = name.title(), description = description, start_date = start_dt, end_date = end_dt, course = Course.objects.get(pk=course_id), ) assessment.save() # Add questions to the assessment idx = 0 more_questions = True # while more_questions: # keeps checking if more questions for idx in range(1000): try: question_text = request.POST['question-{}'.format(idx)] answer_type = request.POST['answer type-{}'.format(idx)] except MultiValueDictKeyError: # this error means no more questions question_text = False answer_type = False if question_text == False: # if no more questions - break more_questions = False # break else: # Check which answer type if answer_type == "Free Response": type_answer = Question.TYPE_TEXT else: type_answer = Question.TYPE_Rating # Create an instance of question new_question = Question( question_text=question_text, type_answer=type_answer, ) new_question.save() # Save this new question into the assessment's ManytoMany field assessment.questions.add(new_question) assessment.save() # # update counter # idx += 1 messages.error(request, 'New assessment created') # ---------------if ends here------------- # messages.error(request, 'New course creation is successful!') return all_assessments(request) # go to all assessment page