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) ) )
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)))
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), )
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))