コード例 #1
0
def move_file_to_clipboard(request):
    if request.method=='POST':
        file_id = request.POST.get("file_id", None)
        clipboard = tools.get_user_clipboard(request.user)
        if file_id:
            file = Image.objects.get(id=file_id)
            tools.move_file_to_clipboard([file], clipboard)
    return HttpResponseRedirect( '%s%s' % (request.POST.get('redirect_to', ''), popup_param(request) ) )
コード例 #2
0
ファイル: views.py プロジェクト: barbarae/kipp
def move_file_to_clipboard(request):
    print "move file"
    if request.method == "POST":
        file_id = request.POST.get("file_id", None)
        clipboard = tools.get_user_clipboard(request.user)
        if file_id:
            file = Image.objects.get(id=file_id)
            if file.has_edit_permission(request):
                tools.move_file_to_clipboard([file], clipboard)
            else:
                raise PermissionDenied
    return HttpResponseRedirect("%s%s" % (request.POST.get("redirect_to", ""), popup_param(request)))
コード例 #3
0
ファイル: views.py プロジェクト: barbarae/kipp
def directory_listing(request, folder_id=None, viewtype=None):
    clipboard = tools.get_user_clipboard(request.user)
    if viewtype == "images_with_missing_data":
        folder = ImagesWithMissingData()
    elif viewtype == "unfiled_images":
        folder = UnfiledImages()
    elif folder_id == None:
        folder = FolderRoot()
    else:
        folder = Folder.objects.get(id=folder_id)

    # search
    def filter_folder(qs, terms=[]):
        for term in terms:
            qs = qs.filter(
                Q(name__icontains=term)
                | Q(owner__username__icontains=term)
                | Q(owner__first_name__icontains=term)
                | Q(owner__last_name__icontains=term)
            )
        return qs

    def filter_image(qs, terms=[]):
        for term in terms:
            qs = qs.filter(
                Q(name__icontains=term)
                | Q(original_filename__icontains=term)
                | Q(owner__username__icontains=term)
                | Q(owner__first_name__icontains=term)
                | Q(owner__last_name__icontains=term)
            )
        return qs

    q = request.GET.get("q", None)
    if q:
        search_terms = q.split(" ")
    else:
        search_terms = []
    limit_search_to_folder = request.GET.get("limit_search_to_folder", False) in (True, "on")

    if len(search_terms) > 0:
        if folder and limit_search_to_folder and not folder.is_root:
            folder_qs = folder.get_descendants()
            # TODO: check how folder__in=folder.get_descendats() performs in large trees
            image_qs = Image.objects.filter(folder__in=folder.get_descendants())
        else:
            folder_qs = Folder.objects.all()
            image_qs = Image.objects.all()
        folder_qs = filter_folder(folder_qs, search_terms)
        image_qs = filter_image(image_qs, search_terms)

        show_result_count = True
    else:
        folder_qs = folder.children.all()
        image_qs = folder.image_files.all()
        show_result_count = False

    folder_qs = folder_qs.order_by("name")
    image_qs = image_qs.order_by("name")

    folder_children = []
    folder_files = []
    for f in folder_qs:
        f.perms = _userperms(f, request)
        if hasattr(f, "has_read_permission"):
            if f.has_read_permission(request):
                # print "%s has read permission for %s" % (request.user, f)
                folder_children.append(f)
            else:
                pass  # print "%s has NO read permission for %s" % (request.user, f)
        else:
            folder_children.append(f)
    for f in image_qs:
        f.perms = _userperms(f, request)
        if hasattr(f, "has_read_permission"):
            if f.has_read_permission(request):
                # print "%s has read permission for %s" % (request.user, f)
                folder_files.append(f)
            else:
                pass  # print "%s has NO read permission for %s" % (request.user, f)
        else:
            folder_files.append(f)
    try:
        permissions = {
            "has_edit_permission": folder.has_edit_permission(request),
            "has_read_permission": folder.has_read_permission(request),
            "has_add_children_permission": folder.has_add_children_permission(request),
        }
    except:
        permissions = {}
    # print admin.site.root_path
    return render_to_response(
        "image_filer/directory_listing.html",
        {
            "folder": folder,
            "folder_children": folder_children,
            "folder_files": folder_files,
            "permissions": permissions,
            "permstest": _userperms(folder, request),
            "current_url": request.path,
            "title": u"Directory listing for %s" % folder.name,
            "search_string": " ".join(search_terms),
            "show_result_count": show_result_count,
            "limit_search_to_folder": limit_search_to_folder,
            "is_popup": popup_status(request),
            "select_folder": selectfolder_status(request),
            "root_path": "/%s"
            % admin.site.root_path,  # needed in the admin/base.html template for logout links and stuff
        },
        context_instance=RequestContext(request),
    )
コード例 #4
0
def directory_listing(request, folder_id=None, viewtype=None):
    clipboard = tools.get_user_clipboard(request.user)
    if viewtype=='images_with_missing_data':
        folder = ImagesWithMissingData()
    elif viewtype=='unfiled_images':
        folder = UnfiledImages()
    elif folder_id == None:
        folder = FolderRoot()
    else:
        folder = Folder.objects.get(id=folder_id)
        
    # search
    def filter_folder(qs, terms=[]):
        for term in terms:
            qs = qs.filter(Q(name__icontains=term) | Q(owner__username__icontains=term) | Q(owner__first_name__icontains=term) | Q(owner__last_name__icontains=term)  )  
        return qs
    def filter_image(qs, terms=[]):
        for term in terms:
            qs = qs.filter( Q(name__icontains=term) | Q(original_filename__icontains=term ) | Q(owner__username__icontains=term) | Q(owner__first_name__icontains=term) | Q(owner__last_name__icontains=term) )
        return qs
    q = request.GET.get('q', None)
    if q:
        search_terms = q.split(" ")
    else:
        search_terms = []
    limit_search_to_folder = request.GET.get('limit_search_to_folder', False) in (True, 'on')

    if len(search_terms)>0:
        if folder and limit_search_to_folder and not folder.is_root:
            folder_qs = folder.get_descendants()
            # TODO: check how folder__in=folder.get_descendats() performs in large trees
            image_qs = Image.objects.filter(folder__in=folder.get_descendants())
        else:
            folder_qs = Folder.objects.all()
            image_qs = Image.objects.all()
        folder_qs = filter_folder(folder_qs, search_terms)
        image_qs = filter_image(image_qs, search_terms)
            
        show_result_count = True
    else:
        folder_qs = folder.children.all()
        image_qs = folder.image_files.all()
        show_result_count = False
    
    folder_qs = folder_qs.order_by('name')
    image_qs = image_qs.order_by('name')
    
    folder_children = []
    folder_files = []
    for f in folder_qs:
        f.perms = _userperms(f, request)
        if hasattr(f, 'has_read_permission'):
            if f.has_read_permission(request):
                folder_children.append(f)
        else:
            folder_children.append(f) 
    for f in image_qs:
        f.perms = _userperms(f, request)
        if hasattr(f, 'has_read_permission'):
            if f.has_read_permission(request):
                folder_files.append(f)
        else:
            folder_files.append(f)
    try:
        permissions = {
            'has_edit_permission': folder.has_edit_permission(request),
            'has_read_permission': folder.has_read_permission(request),
            'has_add_children_permission': folder.has_add_children_permission(request),
        }
    except:
        permissions = {}
    return render_to_response('image_filer/directory_listing.html', {
            'folder':folder,
            'folder_children':folder_children,
            'folder_files':folder_files,
            'permissions': permissions,
            'permstest': _userperms(folder, request),
            'current_url': request.path,
            'title': u'Directory listing for %s' % folder.name,
            'search_string': ' '.join(search_terms),
            'show_result_count': show_result_count,
            'limit_search_to_folder': limit_search_to_folder,
            'is_popup': popup_status(request),
        }, context_instance=RequestContext(request))