def get_assignment_submission_resources(request,class_id,assignment_id): user = AuthService.get_current_user(request) token = token_service.get_access_token(constant.Resources.MSGraph, user.o365_user_id) education_service = EducationService(user.tenant_id, token) assignemtnResources = education_service.get_Assignment_Resources(class_id,assignment_id) submissionResources = education_service.get_Assignment_Submissions_By_User(class_id,assignment_id,user.o365_user_id) result={} resourceArray=[] submissionResourcesArray=[] for resource in assignemtnResources: obj={} obj["id"]=resource.id obj["resource"]=resource.resource["displayName"] resourceArray.append(obj) result["resources"]=resourceArray; result["submissionId"]=submissionResources[0].id for resource in submissionResources: for item in resource.resources: obj={} obj["id"]=item["id"] obj["resource"]=item["resource"]["displayName"] submissionResourcesArray.append(obj) result["submissionResources"]=submissionResourcesArray; return JsonResponse(result, safe=False)
def newAssignmentSubmissionResource(request): if request.method == 'POST': files= request.FILES.getlist("newResource") if len(files)!=0: post=request.POST user = AuthService.get_current_user(request) token = token_service.get_access_token(constant.Resources.MSGraph, user.o365_user_id) education_service = EducationService(user.tenant_id, token) submissions = education_service.get_Assignment_Submissions_By_User(post["classId"],post["assignmentId"],user.o365_user_id) if len(submissions)!=0: resourceFolderURL = submissions[0].resourcesFolderUrl ids = getIds(resourceFolderURL) for file in files: driveFile = uploadFileToOneDrive(resourceFolderURL,file,education_service) resourceUrl = "https://graph.microsoft.com/v1.0/drives/" + ids[0] + "/items/" + driveFile["id"] education_service.add_Submission_Resource(post["classId"],post["assignmentId"],driveFile["name"],resourceUrl,post["submissionId"]) referer = request.META.get('HTTP_REFERER') if referer.find("?")==-1: referer +="?tab=assignments" return HttpResponseRedirect(referer)