def test_if_not_valid_on_reversed_dates(self):
     user = User.objects.create(username='******')
     course = Course.objects.create(name='Example name', owner=user)
     question = Question.objects.create(name='Example name',
         category='Examples', question_text='Example', course=course)
     form_data = {'name': 'Example name', 'description': '',
         'password': '******', 'time_limit': '00:10',
         'active_from': '2016/10/10 10:00', 'active_to': '2016/09/09 22:00',
         'category': '', 'question_count': ''}
     form = ExamForm(data=form_data, course=course)
     self.assertFalse(form.is_valid())
Beispiel #2
0
def create_exam(request, course_id):
    course = Course.objects.get(id=course_id)
    if Question.objects.filter(course=course).exists():
        form = ExamForm(course=course)
        if request.method == "POST":
            form = ExamForm(course=course, data=request.POST)
            if form.is_valid():
                exam = form.save(commit=False)
                exam.course = course
                exam.save()
                add_questions(course, exam)
                messages.success(request, "Exam created successfully!")
                return redirect("/courses/" + course_id + "/exams/")
        return render(request, "create_exam.html", {"form": form, "course": course})
    messages.error(request, "Course has no questions!")
    return redirect("/courses/" + course_id)
Beispiel #3
0
 def test_if_not_valid_on_reversed_dates(self):
     course = Course.objects.create(name="Example name")
     question = Question.objects.create(
         name="Example name", category="Examples", question_text="Example", course=course
     )
     form_data = {
         "name": "Example name",
         "description": "",
         "password": "******",
         "time_limit": "00:10",
         "active_from": "2016/10/10 10:00",
         "active_to": "2016/09/09 22:00",
         "category": "",
         "question_count": "",
     }
     form = ExamForm(data=form_data, course=course)
     self.assertFalse(form.is_valid())
Beispiel #4
0
def edit_exam(request, course_id, exam_id):
    course = Course.objects.get(id=course_id)
    exam = Exam.objects.get(id=exam_id)
    if request.user == course.owner:
        form = ExamForm(instance=exam)
        if request.method == "POST" and "update" in request.POST:
            form = ExamForm(instance=exam, data=request.POST)
            if form.is_valid():
                update(form, exam)
                add_questions(course, exam)
                messages.success(request, "Exam updated successfully!")
                return redirect("/courses/" + course_id + "/exams/")
        if request.method == "POST" and "delete" in request.POST:
            delete(exam)
            messages.success(request, "Exam deleted successfully!")
            return redirect("/courses/" + course_id + "/exams/")
        return render(request, "edit_exam.html", {"form": form, "course": course, "exam": exam})
    return redirect("/courses/" + course_id + "/exams/")
Beispiel #5
0
 def test_if_valid_on_all_fields(self):
     user = User.objects.create(username="******")
     course = Course.objects.create(name="Example name", owner=user)
     question = Question.objects.create(
         name="Example name", category="Examples", question_text="Example", course=course
     )
     form_data = {
         "name": "Example name",
         "description": "Example description",
         "password": "******",
         "time_limit": "00:10",
         "active_from": "2016/09/09 10:00",
         "active_to": "2016/10/10 22:00",
         "category": "Examples",
         "question_count": "2",
     }
     form = ExamForm(data=form_data, course=course)
     self.assertTrue(form.is_valid())
Beispiel #6
0
 def test_if_not_valid_on_empty_limit_and_dates(self):
     user = User.objects.create(username="******")
     course = Course.objects.create(name="Example name", owner=user)
     question = Question.objects.create(
         name="Example name", category="Examples", question_text="Example", course=course
     )
     form_data = {
         "name": "Example name",
         "description": "",
         "password": "******",
         "time_limit": "",
         "active_from": "",
         "active_to": "",
         "category": "Examples",
         "question_count": "2",
     }
     form = ExamForm(data=form_data, course=course)
     self.assertFalse(form.is_valid())
Beispiel #7
0
def edit_exam(request, course_id, exam_id):
    exam = Exam.objects.get(id=exam_id) 
    if request.user.username == exam.owner:
        course = Course.objects.get(id=course_id)
        form = ExamForm(instance=exam)
        if request.method == 'POST' and 'update' in request.POST:
            form = ExamForm(instance=exam, data=request.POST)
            if form.is_valid():
                update(form, exam)
                add_questions(course, exam)
                messages.success(request, 'Exam updated successfully!')
                return redirect('/courses/' + course_id + '/exams/')
        if request.method == 'POST' and 'delete' in request.POST:
            delete(exam)
            messages.success(request, 'Exam deleted successfully!')
            return redirect('/courses/' + course_id + '/exams/')
        return render(request, 'edit_exam.html', {'form': form,
            'course': course, 'exam': exam })
    return redirect('/courses/' + course_id + '/exams/')
Beispiel #8
0
def create_exam(request, course_id):
    course = Course.objects.get(id=course_id)
    if Question.objects.filter(course=course).exists():
        form = ExamForm(course=course)
        if request.method == 'POST':
            form = ExamForm(course=course, data=request.POST)
            if form.is_valid():
                exam = form.save(commit=False)
                exam.owner = request.user
                exam.course = course
                exam.save()
                add_questions(course, exam)
                messages.success(request, 'Exam created successfully!')
                return redirect('/courses/' + course_id + '/exams/')
        return render(request, 'create_exam.html', {'form': form,
            'course': course })
    else:
        messages.error(request, 'Course has no questions!')
        return redirect('/courses/' + course_id)
Beispiel #9
0
def edit_exam(request, course_id, exam_id):
    course = Course.objects.get(id=course_id)
    exam = Exam.objects.get(id=exam_id)
    if request.user == course.owner:
        form = ExamForm(instance=exam)
        if request.method == 'POST' and 'update' in request.POST:
            form = ExamForm(instance=exam, data=request.POST)
            if form.is_valid():
                update(form, exam)
                add_questions(course, exam)
                messages.success(request, 'Exam updated successfully!')
                return redirect('/courses/' + course_id + '/exams/')
        if request.method == 'POST' and 'delete' in request.POST:
            delete(exam)
            messages.success(request, 'Exam deleted successfully!')
            return redirect('/courses/' + course_id + '/exams/')
        return render(request, 'edit_exam.html', {
            'form': form,
            'course': course,
            'exam': exam
        })
    return redirect('/courses/' + course_id + '/exams/')
Beispiel #10
0
def exam_add(request):
    exform = ExamForm()
    subexformset = modelformset_factory(SubExam, form=SubExamForm, extra=1)
    subexformset = subexformset(
        request.POST or None, queryset=SubExam.objects.filter(id__isnull=True))
    if request.method == 'POST':
        exam = exams()
        exform = ExamForm(request.POST, instance=exam)
        if exform.is_valid() and subexformset.is_valid():
            exform.save()
            instances = subexformset.save(commit=False)
            for subexform in instances:
                subexform.parent_exam = exam.id
                subexform.save()
            return redirect('/exams/dashboard/')
        else:
            print('invalid data')

    return render(request, 'exams/exam_create.html', {
        'exform': exform,
        'exformset': subexformset
    })
Beispiel #11
0
def exam_edit(request, pk=None):
    exam = exams.objects.get(id=pk)
    exform = ExamForm(instance=exam)
    subexformmodelset = modelformset_factory(SubExam, form=SubExamForm)
    subexformset = subexformmodelset(
        request.POST or None, queryset=SubExam.objects.filter(parent_exam=pk))
    if request.method == 'POST':
        exform = ExamForm(request.POST, instance=exam)
        if exform.is_valid() and subexformset.is_valid():
            exform.save()
            instances = subexformset.save(commit=False)
            for subexform in instances:
                subexform.parent_exam = exam.id
                subexform.save()
            return redirect('/exams/dashboard/')
        else:
            print(subexformset.errors)

    return render(request, 'exams/exam_create.html', {
        'exform': exform,
        'exformset': subexformset
    })
Beispiel #12
0
def create_exam(request, course_id):
    course = Course.objects.get(id=course_id)
    if Question.objects.filter(course=course).exists():
        form = ExamForm(course=course)
        if request.method == 'POST':
            form = ExamForm(course=course, data=request.POST)
            if form.is_valid():
                exam = form.save(commit=False)
                exam.course = course
                exam.save()
                add_questions(course, exam)
                messages.success(request, 'Exam created successfully!')
                return redirect('/courses/' + course_id + '/exams/')
        return render(request, 'create_exam.html', {
            'form': form,
            'course': course
        })
    messages.error(request, 'Course has no questions!')
    return redirect('/courses/' + course_id)