def post(self, request): file_uploaded = request.FILES['file'] project_part_id = request.POST['project_part'] if not WALL_VAL.match(file_uploaded.name): response_data = { 'status': 'ko', 'message': 'The name of the file is not correct' } elif file_uploaded.content_type not in settings.SUPPORTED_FILES: response_data = { 'status': 'ko', 'message': 'You cannot upload this kind of file' } elif file_uploaded.size * 1.0 / 1048576 > settings.FILE_SIZE: response_data = { 'status': 'ko', 'message': 'You cannot upload a file bigger than %d MB' % settings.FILE_SIZE } else: project_part = ProjectPart.objects.get(pk=project_part_id) file_obj = File(created_user=request.user, original_name=file_uploaded.name, system_name=file_uploaded.name, project_part=project_part) if os.path.exists(file_obj.get_file_path(True)): file_obj.set_original_name() with open(file_obj.get_file_path(True), 'wb+') as destination: for chunk in file_uploaded.chunks(): destination.write(chunk) if (file_obj.is_image()): file_obj.generate_thumbnail() file_obj.save() Activity.objects.set_activity('add', file_obj) if request.user.profile.drive_token and project_part.project.drive_id: drive_util = DriveUtil(request.user.profile.drive_token) if not project_part.drive_id: project_part_folder = drive_util.get_project_part_folder( request.user.profile.drive_folder, project_part) else: project_part_folder = project_part.drive_id drive_util.insert_file(file_uploaded.name, 'description', project_part_folder, file_uploaded.content_type, file_obj.get_file_path(True)) response_data = {'status': 'ok'} return HttpResponse(json.dumps(response_data), mimetype='application/json')
def post(self, request): data = json.loads(request.raw_post_data) file_type = data["filetype"] project_part = get_object_or_404(ProjectPart, pk=data["project_part"]) drive_util = DriveUtil(request.user.profile.drive_token) if not project_part.drive_id: project_part_folder = drive_util.get_project_part_folder(request.user.profile.drive_folder, project_part) else: project_part_folder = project_part.drive_id drive_file = drive_util.insert_drive_file("Untitled", file_type, parent_id=project_part_folder) return HttpResponse(json.dumps(drive_file), mimetype="application/json")
def get(self, request): project_part = get_object_or_404(ProjectPart, pk=request.GET.get('project_part')) files = [] project_part_folder = project_part.drive_id or None if request.user.is_authenticated(): try: userproject = request.user.userproject_set.get( project=project_part.project) except UserProject.DoesNotExist: userproject = None if not userproject: drive_token = project_part.created_user.profile.drive_token elif request.user.profile.drive_token and userproject.drive_auth: drive_token = request.user.profile.drive_token elif project_part.drive_id and not request.session.get( 'drive_project_part', None): drive_token = project_part.created_user.profile.drive_token elif request.session.get('drive_project_part', None): drive_token = request.user.profile.drive_token connect_project_to_drive(request, project_part, userproject, drive_token) request.session['drive_project_part'] = None else: response_data = {'status': 'error'} return HttpResponse(json.dumps(response_data), mimetype='application/json') else: drive_token = project_part.created_user.profile.drive_token try: drive_util = DriveUtil(drive_token) except GetCredentialsException: logging.error('Credentials exception for %s in part %s' % (drive_token, project_part.id)) response_data = { 'status': 'error', 'msg': 'Error with drive credentials, contact with the administrator of this project' } return HttpResponse(json.dumps(response_data), mimetype='application/json') if project_part_folder: files = drive_util.get_files("'%s' in parents" % project_part_folder) return HttpResponse(json.dumps(files), mimetype='application/json')
def post(self, request): file_uploaded = request.FILES["file"] project_part_id = request.POST["project_part"] if not WALL_VAL.match(file_uploaded.name): response_data = {"status": "ko", "message": "The name of the file is not correct"} elif file_uploaded.content_type not in settings.SUPPORTED_FILES: response_data = {"status": "ko", "message": "You cannot upload this kind of file"} elif file_uploaded.size * 1.0 / 1048576 > settings.FILE_SIZE: response_data = { "status": "ko", "message": "You cannot upload a file bigger than %d MB" % settings.FILE_SIZE, } else: project_part = ProjectPart.objects.get(pk=project_part_id) file_obj = File( created_user=request.user, original_name=file_uploaded.name, system_name=file_uploaded.name, project_part=project_part, ) if os.path.exists(file_obj.get_file_path(True)): file_obj.set_original_name() with open(file_obj.get_file_path(True), "wb+") as destination: for chunk in file_uploaded.chunks(): destination.write(chunk) if file_obj.is_image(): file_obj.generate_thumbnail() file_obj.save() Activity.objects.set_activity("add", file_obj) if request.user.profile.drive_token and project_part.project.drive_id: drive_util = DriveUtil(request.user.profile.drive_token) if not project_part.drive_id: project_part_folder = drive_util.get_project_part_folder( request.user.profile.drive_folder, project_part ) else: project_part_folder = project_part.drive_id drive_util.insert_file( file_uploaded.name, "description", project_part_folder, file_uploaded.content_type, file_obj.get_file_path(True), ) response_data = {"status": "ok"} return HttpResponse(json.dumps(response_data), mimetype="application/json")
def post(self, request): data = json.loads(request.raw_post_data) file_type = data['filetype'] project_part = get_object_or_404(ProjectPart, pk=data['project_part']) drive_util = DriveUtil(request.user.profile.drive_token) if not project_part.drive_id: project_part_folder = drive_util.get_project_part_folder( request.user.profile.drive_folder, project_part) else: project_part_folder = project_part.drive_id drive_file = drive_util.insert_drive_file( 'Untitled', file_type, parent_id=project_part_folder) return HttpResponse(json.dumps(drive_file), mimetype='application/json')
def get(self, request): error = request.GET.get("error", "") if not error: credentials = get_credentials(request.GET.get("code"), 1, request.user.profile) request.user.profile.drive_token = credentials.to_json() drive_util = DriveUtil(request.user.profile.drive_token) if not request.user.profile.drive_folder: folder = drive_util.insert_folder("Wevolver") request.user.profile.drive_folder = folder.get("id") request.user.profile.save() else: request.session["drive_project_part"] = None request.GET.get("error_description", "") return redirect("/#/profile?error=invalid_user") return redirect("/#/profile")
def get(self, request): error = request.GET.get('error', '') if not error: credentials = get_credentials(request.GET.get('code'), 1, request.user.profile) request.user.profile.drive_token = credentials.to_json() drive_util = DriveUtil(request.user.profile.drive_token) if not request.user.profile.drive_folder: folder = drive_util.insert_folder('Wevolver') request.user.profile.drive_folder = folder.get('id') request.user.profile.save() else: request.session['drive_project_part'] = None request.GET.get('error_description', '') return redirect('/#/profile?error=invalid_user') return redirect('/#/profile')
def dehydrate_has_viewed(self, bundle): if not bundle.request.user.is_authenticated(): return False user_token = bundle.request.user.profile.drive_token if bundle.obj.drive_id and user_token: f = DriveUtil(user_token).get_file(bundle.obj.drive_id) if f: return f['labels']['viewed'] return False
def get(self, request): project_part = get_object_or_404(ProjectPart, pk=request.GET.get("project_part")) files = [] project_part_folder = project_part.drive_id or None if request.user.is_authenticated(): try: userproject = request.user.userproject_set.get(project=project_part.project) except UserProject.DoesNotExist: userproject = None if not userproject: drive_token = project_part.created_user.profile.drive_token elif request.user.profile.drive_token and userproject.drive_auth: drive_token = request.user.profile.drive_token elif project_part.drive_id and not request.session.get("drive_project_part", None): drive_token = project_part.created_user.profile.drive_token elif request.session.get("drive_project_part", None): drive_token = request.user.profile.drive_token connect_project_to_drive(request, project_part, userproject, drive_token) request.session["drive_project_part"] = None else: response_data = {"status": "error"} return HttpResponse(json.dumps(response_data), mimetype="application/json") else: drive_token = project_part.created_user.profile.drive_token try: drive_util = DriveUtil(drive_token) except GetCredentialsException: logging.error("Credentials exception for %s in part %s" % (drive_token, project_part.id)) response_data = { "status": "error", "msg": "Error with drive credentials, contact with the administrator of this project", } return HttpResponse(json.dumps(response_data), mimetype="application/json") if project_part_folder: files = drive_util.get_files("'%s' in parents" % project_part_folder) return HttpResponse(json.dumps(files), mimetype="application/json")
def delete(self, request, id): drive_util = DriveUtil(request.user.profile.drive_token) drive_util.delete_file(id) return HttpResponse(json.dumps({'status': 'ok'}), mimetype='application/json')
def delete(self, request, id): drive_util = DriveUtil(request.user.profile.drive_token) drive_util.delete_file(id) return HttpResponse(json.dumps({"status": "ok"}), mimetype="application/json")