示例#1
0
def view_signup(request):
    if checkRole(request, "admin"):
        if request.method == "GET":
            return render(request, 'signup.html')

        if request.method == "POST":
            if User.objects.filter(username=request.POST['username']):
                messages.error(request, "Username already defined")
                return redirect("/signup")

            user = User.objects.create_user(
                first_name=request.POST['first_name'],
                last_name=request.POST['last_name'],
                username=request.POST['username'],
                email=request.POST['email'],
                password=request.POST['password'])
            if request.POST['role'] == 'admin':
                user.is_superuser = user.is_staff = 1

            userRole = UserRole(user=user, role=request.POST['role'])
            user.save()
            userRole.save()
            login(request, user)
            messages.success(request, f"Signed up Successfully")
    else:
        messages.success(request, "Only admins can create user")
    return redirect("/")
示例#2
0
def delete_file(request, id):
    if checkRole(request,
                 'student') and request.user == get_post_to_delete.author:
        s = StudentsFile.objects.get(id=id)
        id = s.assignment.id
        s.delete()
    return redirect('/assignments/' + str(id))
示例#3
0
def view_update_post(request, id):
    get_post_to_update = Post.objects.get(id=id)
    if checkRole(request,
                 'admin') or request.user == get_post_to_update.author:
        context_variable = {'post': get_post_to_update}
        return render(request, 'updatePost.html', context_variable)
    messages.error(
        request,
        f"Only Admins and {get_post_to_update.author} able to edit this post")
    return redirect('/posts/')
示例#4
0
def delete_assignment(request, id):
    get_assignment_to_delete = Assignment.objects.get(id=id)
    if checkRole(request,
                 'admin') or request.user == get_assignment_to_update.author:
        get_assignment_to_delete.delete()
    else:
        messages.error(
            request,
            f"Only Admins and {get_post_to_update.author} able to delete this post"
        )
    return redirect('/assignments/')
示例#5
0
def upload_file(request, id):
    if request.method == 'POST' and checkRole(request, 'student'):
        uploaded_file = request.FILES.get('studentsFile')
        if uploaded_file:
            fs = FileSystemStorage()
            uploaded_file = fs.save(uploaded_file.name, uploaded_file)
            studentFile = StudentsFile(
                student=request.user,
                assignment=Assignment.objects.get(id=id),
                Studentsfile=uploaded_file)
            studentFile.save()
        else:
            messages.error(request, "No file attached!!")
    return redirect('/assignments/' + str(id))
示例#6
0
def create_assignment(request):
    if checkRole(request, STAFF_ROLES):
        get_author = request.user
        get_assignmentTitle = request.POST['assignmentTitle']
        get_assignmentContent = request.POST['content']
        get_moduleID = request.POST['module']
        uploaded_file = request.FILES.get('assignmentQuestionPapers')
        assignmentObj = Assignment(author=get_author,
                                   assignmentTitle=get_assignmentTitle,
                                   content=get_assignmentContent,
                                   module=Module.objects.get(pk=get_moduleID))
        if uploaded_file:
            fs = FileSystemStorage()
            get_assignmentImage = fs.save(uploaded_file.name, uploaded_file)
            assignmentObj.assignmentQuestionPapers = get_assignmentImage
        assignmentObj.save()
    return redirect('/assignments/')
示例#7
0
def update_assignment(request, id):
    get_assignment_to_update = Assignment.objects.get(id=id)
    if checkRole(request,
                 'admin') or request.user == get_assignment_to_update.author:
        get_author = request.user
        get_assignment_to_update.assignmentTitle = request.POST[
            'assignmentTitle']
        get_assignment_to_update.content = request.POST['content']
        uploaded_file = request.FILES.get('assignmentQuestionPapers')
        if uploaded_file:
            fs = FileSystemStorage()
            get_assignmentImage = fs.save(uploaded_file.name, uploaded_file)
            get_assignment_to_update.assignmentQuestionPapers = get_assignmentImage
        get_assignment_to_update.save()
    else:
        messages.error(
            request,
            f"Only Admins and {get_assignment_to_update.author} able to edit this post"
        )
    return redirect('/assignments/' + str(id))
示例#8
0
def view_modules(request):
    if request.user.is_authenticated:
        if request.method == 'POST' and checkRole(request, 'admin'):
            moduleObj = Module(moduleCode=request.POST['moduleCode'],
                               moduleName=request.POST['moduleName'])
            moduleObj.save()

        modules = Module.objects.all()

        # getting all modules enrolled by "request.user"
        # from module model
        enrolledModules = request.user.student.all()

        context_variable = {
            'modules': modules,
            'enrolledModules': enrolledModules,
            'staff_roles': STAFF_ROLES
        }
        return render(request, 'modules.html', context_variable)
    messages.error(request, "Login to view modules")
    return redirect('/')
示例#9
0
def update_post(request, id):
    get_post_to_update = Post.objects.get(id=id)
    if checkRole(request,
                 'admin') or request.user == get_post_to_update.author:
        get_author = request.user
        get_post_to_update.postTitle = request.POST['postTitle']
        get_post_to_update.postContent = request.POST['postContent']
        get_post_to_update.save()
        uploaded_files = request.FILES.getlist('postFile')
        if uploaded_files:
            fs = FileSystemStorage()
            for uploaded_file in uploaded_files:
                get_postImage = fs.save(uploaded_file.name, uploaded_file)
                postImg = PostFiles(post=get_post_to_update,
                                    file=get_postImage,
                                    originalFileName=uploaded_file)
                postImg.save()
        return redirect('/posts/' + str(id))
    messages.error(
        request,
        f"Only Admins and {get_post_to_update.author} able to edit this post")
    return redirect('/posts/')
示例#10
0
def create_post(request):
    if checkRole(request, STAFF_ROLES):
        get_author = request.user
        get_postTitle = request.POST['postTitle']
        get_postContent = request.POST['postContent']
        get_moduleID = request.POST['module']
        postObj = Post(author=get_author,
                       postTitle=get_postTitle,
                       postContent=get_postContent)
        if request.POST['module']:
            postObj.module = Module.objects.get(pk=get_moduleID)
        postObj.save()

        uploaded_files = request.FILES.getlist('postFile')
        if uploaded_files:
            fs = FileSystemStorage()
            for uploaded_file in uploaded_files:
                get_postImage = fs.save(uploaded_file.name, uploaded_file)
                postImg = PostFiles(post=postObj,
                                    file=get_postImage,
                                    originalFileName=uploaded_file)
                postImg.save()
    return redirect('/posts/')
示例#11
0
def view_create_assignment(request):
    if checkRole(request, STAFF_ROLES):
        context_variable = {'modules': Module.objects.all()}
        return render(request, 'createAssignment.html', context_variable)
    return redirect('/assignments/')
示例#12
0
def add_student_in_module(request, id):
    if checkRole(request, 'student'):
        moduleToEnroll = Module.objects.get(id=id)
        moduleToEnroll.studentsEnrolled.add(request.user)
    return redirect('/modules/')