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("/")
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))
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/')
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/')
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))
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/')
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))
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('/')
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/')
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/')
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/')
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/')