예제 #1
0
 def mutate(root, info, input=None):
     ok = True
     course = Course.objects.get(pk=input.course.id)
     assignment_instance = Assignment(
         assignment_name=input.assignment_name,
         assignment_description=input.assignment_description,
         start_date=input.start_date,
         due_date=input.due_date,
         course=course,
     )
     assignment_instance.save()
     return CreateAssignment(ok=ok, assignment=assignment_instance)
예제 #2
0
def join(request, *args, **kwargs):
    if request.method == "POST":
        try:
            classe = Class.objects.get(code=str(request.POST.get('code')))
        except:
            context = {'message': "The class code is invalid!"}

            return render(request, "classes/student/join.html", context)

        try:
            before = class_linker.objects.get(enrolled_class_id=classe.id,
                                              linked_user_id=request.user.id)
        except:
            pass
        else:
            context = {'message': "You cannot join a class twice!"}

            return render(request, "classes/student/join.html", context)

        class_link = class_linker()
        class_link.linked_user_id = request.user.id
        class_link.enrolled_class_id = classe.id
        class_link.save()

        model_assiginments = Model_assignment.objects.filter(
            linked_class_id=classe.id)

        for assignment in model_assiginments:
            new_assign = Assignment()
            new_assign.linked_class_id = classe.id
            new_assign.name = assignment.name
            new_assign.description = assignment.description
            new_assign.linked_class_linker_id = class_link.id
            new_assign.linked_model_assignment_id = assignment.id
            new_assign.user_id = request.user.id
            new_assign.save()

        response = redirect('/class/student/view/' + str(classe.id))
        return response

    print(args, kwargs)
    print(request.user)
    return render(request, "classes/student/join.html", {})
예제 #3
0
def save_quiz(request):
    if request.query_params.get('teacher') is None:
        raise Exception("Query param 'teacher' must be passed")
    if request.query_params.get('students') is None:
        raise Exception("Query param 'students' must be passed")

    # parse data
    teacher_username = request.query_params.get('teacher')
    student_usernames = request.query_params.get('students').split(",")
    request_as_json = json.loads(request.body)
    quiz_name = request_as_json['quizName']
    quiz_data = json.dumps(request_as_json['quizData'])

    # create database entry + add all data
    teacher_user = Profile.objects.get(username=teacher_username)
    assignment = Assignment(teacher=teacher_user,
                            quizName=quiz_name,
                            quizData=quiz_data)
    assignment.save()
    for student_username in student_usernames:
        student = Profile.objects.get(username=student_username)
        assignment.students.add(student)
        assignment.save()

    return Response({"status": "SUCCESS"})
예제 #4
0
파일: views.py 프로젝트: kartikshah1/Test
def createAssignment(request, courseID):
    course = get_object_or_404(Course, pk=courseID)

    is_moderator = isCourseModerator(course, request.user)

    if not is_moderator:
        return HttpResponseForbidden("Forbidden 403")

    if request.method == 'POST':
        form = AssignmentForm(request.POST, request.FILES)
        form.this_course = course
        if form.is_valid():
            newAssignment = Assignment(**form.cleaned_data)
            newAssignment.course = course
            newAssignment.creater = request.user
            newAssignment.serial_number = (Assignment.objects.filter(course=course).aggregate(Max('serial_number'))['serial_number__max'] or 0) + 1
            newAssignment.save()
            link = reverse('assignments_createprogram', kwargs={'assignmentID': newAssignment.id})
            messages.success(request, 'Assignment Created! Now <a href="{0}">ADD</a> programs to assignment.'.format(link),
                             extra_tags='safe'
                             )
            #return HttpResponseRedirect(reverse('assignments_index', kwargs={'courseID':courseID}))
            return HttpResponseRedirect(reverse('assignments_details', kwargs={'assignmentID': newAssignment.id}))
    else:
        form = AssignmentForm()
    return render_to_response(
                'assignments/createAssignment.html',
                {'form':form, 'course': course, 'is_moderator':is_moderator},
                context_instance=RequestContext(request)
            )
예제 #5
0
def new_assignment(request, user, section_id):
    try:
        section = Section.objects.get(id=section_id)
    except Section.DoesNotExist:
        raise Http404("No such section!")
    if section.teacher != user:
        return HttpResponseForbidden("<h1>Not your class!</h1>")

    if request.method == 'POST':
        form = NewAssignmentForm(request.POST)
        if form.is_valid():
            formdata = form.cleaned_data
            try:
                due_date = formdata['due_date']
                due_time = formdata['due_time']
                due_datetime = datetime.datetime.combine(due_date, due_time)
                assignment = Assignment(name=formdata['name'], description=formdata['description'], due_date=due_datetime, section=section)
                assignment.save()
                return HttpResponseRedirect(reverse('assignments:detail', args=(assignment.id,)))
            except (IntegrityError, DataError):
                form.add_error(None, "Sorry, couldn't create that assignment.")
    else:
        form = NewAssignmentForm()
    return render(request, 'section/new_assignment.html', {'form': form, 'section_id': section_id})
예제 #6
0
파일: views.py 프로젝트: kartikshah1/Test
def createAssignment(request, courseID):
    course = get_object_or_404(Course, pk=courseID)

    is_moderator = isCourseModerator(course, request.user)

    if not is_moderator:
        return HttpResponseForbidden("Forbidden 403")

    if request.method == 'POST':
        form = AssignmentForm(request.POST, request.FILES)
        form.this_course = course
        if form.is_valid():
            newAssignment = Assignment(**form.cleaned_data)
            newAssignment.course = course
            newAssignment.creater = request.user
            newAssignment.serial_number = (
                Assignment.objects.filter(course=course).aggregate(
                    Max('serial_number'))['serial_number__max'] or 0) + 1
            newAssignment.save()
            link = reverse('assignments_createprogram',
                           kwargs={'assignmentID': newAssignment.id})
            messages.success(
                request,
                'Assignment Created! Now <a href="{0}">ADD</a> programs to assignment.'
                .format(link),
                extra_tags='safe')
            #return HttpResponseRedirect(reverse('assignments_index', kwargs={'courseID':courseID}))
            return HttpResponseRedirect(
                reverse('assignments_details',
                        kwargs={'assignmentID': newAssignment.id}))
    else:
        form = AssignmentForm()
    return render_to_response('assignments/createAssignment.html', {
        'form': form,
        'course': course,
        'is_moderator': is_moderator
    },
                              context_instance=RequestContext(request))
예제 #7
0
 def setUp(self):
     self.assignment = Assignment(id=1,
                                  title="Tester",
                                  description="A test case for us",
                                  required_media="Video",
                                  deadline="2017-08-23")
예제 #8
0
enrollment.save()

# ANNOUNCEMENT_TEST
announcement = Announcement(
    title='Test Announcement Title',
    body='Announcement Test Body',
    course=course,
)
announcement.save()

# ASSIGNMENT_TEST
assignment = Assignment(
    title='Assignment Test Title',
    description='Assignment Test Description',
    score=100.00,
    deadline=date.today(),
    assignment_file='',
    course=course,
    student=student,
)
assignment.save()

# GROUP_TEST
group = Group(
    name='Group Test',
    course=course,
)
group.save()
group.students.add(student)

# ASSISTANT_TEST