Ejemplo n.º 1
0
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.")
Ejemplo n.º 2
0
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.")
Ejemplo n.º 3
0
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)
Ejemplo n.º 4
0
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)
Ejemplo n.º 5
0
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)
Ejemplo n.º 6
0
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)