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