def copy_object(request): """ Add object uid or file path to sessions clipboard. """ object_uid = request.POST.get('uid', '') project_uid = request.POST.get('project_uid', '') clipboard = request.POST.get('clipboard') project = Project.objects.filter(uid=project_uid).first() if not project: return ajax_error("Project does not exist.") is_readable = auth.is_readable(user=request.user, project=project) if not is_readable: return ajax_error('You do not have access to copy this object.') # Return current clipboard contents copied_uids = auth.copy_uid(request=request, uid=object_uid, board=clipboard) return ajax_success( f"Copied. Clipboard contains :{len(copied_uids)} objects.")
def copy_object(request): """ Add object uid or file path to sessions clipboard. """ # Map the query parameter to a clipboard and database model. mapper = { "data": (Data, COPIED_DATA), "job": (Job, COPIED_RESULTS), "recipe": (Analysis, COPIED_RECIPES) } uid = request.POST.get('uid', '') # Get the clipboard to copy to clipboard = request.POST.get(settings.CLIPBOARD_NAME) klass, board = mapper.get(clipboard, (None, None)) if not (klass and board): return ajax_error("Object or board does not exist.") obj = klass.objects.filter(uid=uid).first() is_readable = auth.is_readable(user=request.user, obj=obj) if not is_readable: return ajax_error('You do not have access to copy this object.') # Return current clipboard contents copied = auth.copy_uid(request=request, uid=uid, board=board) return ajax_success(f"Copied. Clipboard contains :{len(copied)} objects.")
def job_copy(request, uid): job = Job.objects.filter(uid=uid).first() next_url = request.GET.get("next", reverse("job_list", kwargs=dict(uid=job.project.uid))) board_items = auth.copy_uid(request=request, uid=job.uid, board=const.COPIED_RESULTS) messages.success(request, f"Copied item(s), clipboard contains {len(set(board_items))}.") return redirect(next_url)
def recipe_copy(request, uid): recipe = Analysis.objects.filter(uid=uid).first() next_url = request.GET.get("next", reverse("recipe_list", kwargs=dict(uid=recipe.project.uid))) board_items = auth.copy_uid(request=request, uid=recipe.uid, board=const.COPIED_RECIPES) messages.success(request, f"Copied recipe, you currently have {len(set(board_items))} copied.") return redirect(next_url)
def data_copy(request, uid): data = Data.objects.filter(uid=uid).first() next_url = request.GET.get("next", reverse("data_list", kwargs=dict(uid=data.project.uid))) board_items = auth.copy_uid(request=request, uid=data.uid, board=const.COPIED_DATA) messages.success(request, f"Copied item(s), clipboard contains {len(set(board_items))}.") return redirect(next_url)
def recipe_copy(request, uid): recipe = Analysis.objects.filter(uid=uid).first() next_url = request.GET.get( "next", reverse("recipe_list", kwargs=dict(uid=recipe.project.uid))) board_items = auth.copy_uid(request=request, uid=recipe.uid, board=const.COPIED_RECIPES) return redirect(next_url)