Пример #1
0
def delete_confirm(request):
    """
    Delete existing File/Directory.
    """
    query = request.GET
    abs_path = u'%s' % os.path.join(MEDIA_ROOT, DIRECTORY, query.get('dir', ''))
    fileobject = FileObject(os.path.join(abs_path, query.get('filename', '')))
    if fileobject.filetype == "Folder":
        filelisting = FileListing(os.path.join(abs_path, fileobject.filename),
            filter_func=filter_browse,
            sorting_by=query.get('o', 'filename'),
            sorting_order=query.get('ot', DEFAULT_SORTING_ORDER))
        filelisting = filelisting.files_walk_total()
        if len(filelisting) > 100:
            additional_files = len(filelisting) - 100
            filelisting = filelisting[:100]
        else:
            additional_files = None
    else:
        filelisting = None
        additional_files = None
    
    return render_to_response('filebrowser/delete_confirm.html', {
        'fileobject': fileobject,
        'filelisting': filelisting,
        'additional_files': additional_files,
        'query': query,
        'title': _(u'Confirm delete'),
        'settings_var': get_settings_var(),
        'breadcrumbs': get_breadcrumbs(query, query.get('dir', '')),
        'breadcrumbs_title': _(u'Confirm delete')
    }, context_instance=Context(request))
Пример #2
0
    def delete_confirm(self, request):
        if not request.user.has_perm('auth.view_filebrowser'):
            raise PermissionDenied()
        "Delete existing File/Directory."
        query = request.GET
        path = u'%s' % os.path.join(self.directory, query.get('dir', ''))
        fileobject = FileObject(os.path.join(path, query.get('filename', '')), site=self)
        if fileobject.filetype == "Folder":
            filelisting = FileListing(
                os.path.join(path, fileobject.filename),
                sorting_by=query.get('o', 'filename'),
                sorting_order=query.get('ot', DEFAULT_SORTING_ORDER),
                site=self)
            filelisting = filelisting.files_walk_total()
            if len(filelisting) > 100:
                additional_files = len(filelisting) - 100
                filelisting = filelisting[:100]
            else:
                additional_files = None
        else:
            filelisting = None
            additional_files = None

        return render_to_response('filebrowser/delete_confirm.html', {
            'fileobject': fileobject,
            'filelisting': filelisting,
            'additional_files': additional_files,
            'query': query,
            'title': _(u'Confirm delete'),
            'is_popup': "pop" in request.REQUEST,
            'settings_var': get_settings_var(directory=self.directory),
            'breadcrumbs': get_breadcrumbs(query, query.get('dir', '')),
            'breadcrumbs_title': _(u'Confirm delete'),
            'filebrowser_site': self
        }, context_instance=Context(request, current_app=self.name))
 def delete_confirm(self, request):
     """
     Delete existing File/Directory.
     """
     query = request.GET
     path = u'%s' % os.path.join(self.directory, query.get('dir', ''))
     fileobject = FileObject(os.path.join(path, query.get('filename', '')), site=self)
     if fileobject.filetype == "Folder":
         filelisting = FileListing(os.path.join(path, fileobject.filename),
             sorting_by=query.get('o', 'filename'),
             sorting_order=query.get('ot', DEFAULT_SORTING_ORDER),
             site=self)
         filelisting = filelisting.files_walk_total()
         if len(filelisting) > 100:
             additional_files = len(filelisting) - 100
             filelisting = filelisting[:100]
         else:
             additional_files = None
     else:
         filelisting = None
         additional_files = None
     
     return render_to_response('filebrowser/delete_confirm.html', {
         'fileobject': fileobject,
         'filelisting': filelisting,
         'additional_files': additional_files,
         'query': query,
         'title': _(u'Confirm delete'),
         'is_popup': "pop" in request.REQUEST,
         'settings_var': get_settings_var(directory=self.directory),
         'breadcrumbs': get_breadcrumbs(query, query.get('dir', '')),
         'breadcrumbs_title': _(u'Confirm delete'),
         'filebrowser_site': self
     }, context_instance=Context(request, current_app=self.name))
Пример #4
0
def imagesFromSubfolder( subfolder ):

    directory = FB_DIRECTORY

    path = u'%s' % join( directory, 'gallery', subfolder )

    filelisting = FileListing(
        path,
        #filter_func=filter_browse,
        sorting_by='name',
        sorting_order='desc',
        #site=self
        )

    images = []

    for fileObject in filelisting.files_walk_filtered():#files_walk_total():
        image = {}
        if fileObject.width != None:
            thumbnail = getImage( fileObject, 'thumbnail' )
            fileName  = fileObject.url
            #thumbnail = loader.render_to_string( 'simple/subs/image.html', { 'fileObject': fileObject, 'size': 'thumbnail' } )
            #fileName  = loader.render_to_string( 'simple/subs/image.html', { 'fileObject': fileObject } )
            image[ 'url' ] = fileName
            image[ 'thumbnailUrl' ] = thumbnail
            image[ 'title' ] = fileObject.filename_root
            images.append( image )
    return images;
Пример #5
0
def gallery_detail(request, category_slug, slug):
    gallery = get_object_or_404(Gallery, slug=slug)
    filelisting = FileListing(gallery.folder.path)
    photos = filelisting.files_walk_total()
    return render_to_response('gallery/gallery_detail.html',
                              {'gallery': gallery,
                               'photos': photos})
Пример #6
0
def delete_confirm(request):
    """
    Delete existing File/Directory.
    """
    query = request.GET
    abs_path = u'%s' % os.path.join(MEDIA_ROOT, DIRECTORY, query.get('dir', ''))
    fileobject = FileObject(os.path.join(abs_path, query.get('filename', '')))
    if fileobject.filetype == "Folder":
        filelisting = FileListing(os.path.join(abs_path, fileobject.filename),
            filter_func=filter_browse,
            sorting_by=query.get('o', 'filename'),
            sorting_order=query.get('ot', DEFAULT_SORTING_ORDER))
        filelisting = filelisting.files_walk_total()
        if len(filelisting) > 100:
            additional_files = len(filelisting) - 100
            filelisting = filelisting[:100]
        else:
            additional_files = None
    else:
        filelisting = None
        additional_files = None
    
    return render_to_response('filebrowser/delete_confirm.html', {
        'fileobject': fileobject,
        'filelisting': filelisting,
        'additional_files': additional_files,
        'query': query,
        'title': _(u'Confirm delete'),
        'settings_var': get_settings_var(),
        'breadcrumbs': get_breadcrumbs(query, query.get('dir', '')),
        'breadcrumbs_title': _(u'Confirm delete')
    }, context_instance=Context(request))
def run():
    for model in models:
        for obj in model.objects.all():

            for field in image_fields:
                image = getattr(obj, field, None)
                # обрабатываем картинки
                if field != 'gallery' and image:
                    path = models_name_dir_map[obj.__class__.__name__]
                    new_path = os.path.join(
                        path,
                        slugify.slugify_filename(image.filename)
                    )
                    try:
                        site.storage.move(image.path, new_path)
                        image.path = new_path
                        obj.save()
                    except IOError:
                        # файл не существует
                        print "can't find this file - %s" % image.path
                        continue
                    except OSError, e:
                        # директория не создана
                        site.storage.makedirs(path)
                        print '--- create dir - %s' % path
                        site.storage.move(image.path, new_path)
                        image.path = new_path
                        obj.save()
                # обрабатываем папки с галереями
                elif image and image.is_folder:
                    # for galleries
                    path = models_name_dir_map['Gallery'] % {
                        'model': obj.__class__.__name__.lower(),
                        'name': slugify.slugify_filename(obj.name.lower())
                    }
                    gallery = FileListing(image.path)
                    for image_name in gallery.listing():
                        try:
                            new_path = os.path.join(
                                path,
                                slugify.slugify_filename(image_name)
                            )
                            site.storage.move(
                                os.path.join(image.path, image_name), new_path
                            )
                        except IOError, e:
                            # файл не существует
                            print "can't find this file - %s" % image_name
                            continue
                        except OSError, e:
                            # директория не создана
                            site.storage.makedirs(path)
                            print '--- create dir - %s' % path
                            site.storage.move(
                                os.path.join(image.path, image_name), new_path
                            )
                    # save new gallery path
                    print 'save new gallery path'
                    image.path = path
                    obj.save()
    def delete_confirm(self, request):
        "Delete existing File/Directory."
        query = request.GET
        path = u'%s' % os.path.join(self.directory, query.get('dir', ''))
        fileobject = FileObject(os.path.join(path, query.get('filename', '')), site=self)
        if fileobject.filetype == "Folder":
            filelisting = FileListing(
                os.path.join(path, fileobject.filename),
                sorting_by=query.get('o', 'filename'),
                sorting_order=query.get('ot', DEFAULT_SORTING_ORDER),
                site=self)
            filelisting = filelisting.files_walk_total()
            if len(filelisting) > 100:
                additional_files = len(filelisting) - 100
                filelisting = filelisting[:100]
            else:
                additional_files = None
        else:
            filelisting = None
            additional_files = None

        return render(request, 'filebrowser/delete_confirm.html', admin_context({
            'fileobject': fileobject,
            'filelisting': filelisting,
            'additional_files': additional_files,
            'query': query,
            'title': _(u'Confirm delete'),
            'is_popup': "pop" in request.GET,
            'settings_var': get_settings_var(directory=self.directory),
            'breadcrumbs': get_breadcrumbs(query, query.get('dir', '')),
            'breadcrumbs_title': _(u'Confirm delete'),
            'filebrowser_site': self
        }, request))
Пример #9
0
def browse(request):
    """
    Browse Files/Directories.
    """
    
    query = request.GET.copy()
    abs_path = u'%s' % os.path.join(MEDIA_ROOT, DIRECTORY, query.get('dir', ''))

    filelisting = FileListing(abs_path,
        filter_func=filter_browse,
        sorting_by=query.get('o', DEFAULT_SORTING_BY),
        sorting_order=query.get('ot', DEFAULT_SORTING_ORDER))
    
    files = []
    if SEARCH_TRAVERSE and query.get("q"):
        listing = filelisting.files_walk_filtered()
    else:
        listing = filelisting.files_listing_filtered()

    # If we do a search, precompile the search pattern now
    do_search = query.get("q")
    if do_search:
        re_q = re.compile(query.get("q").lower(), re.M)

    filter_type = query.get('filter_type')
    filter_date = query.get('filter_date')
    
    for fileobject in listing:
        # date/type filter
        append = False
        if (not filter_type or fileobject.filetype == filter_type) and (not filter_date or get_filterdate(filter_date, fileobject.date or 0)):
            append = True
        # search
        if do_search and not re_q.search(fileobject.filename.lower()):
            append = False
        # append
        if append:
            files.append(fileobject)

    filelisting.results_total = len(listing)
    filelisting.results_current = len(files)
    
    p = Paginator(files, LIST_PER_PAGE)
    page_nr = request.GET.get('p', '1')
    try:
        page = p.page(page_nr)
    except (EmptyPage, InvalidPage):
        page = p.page(p.num_pages)

    return render_to_response('filebrowser/index.html', {
        'p': p,
        'page': page,
        'filelisting': filelisting,
        'query': query,
        'title': _(u'FileBrowser'),
        'settings_var': get_settings_var(),
        'breadcrumbs': get_breadcrumbs(query, query.get('dir', '')),
        'breadcrumbs_title': ""
    }, context_instance=Context(request))
Пример #10
0
    def setUp(self):
        """
        Save original values/functions so they can be restored in tearDown

        our temporary file structure looks like this:

        /fb_test_directory/
        /fb_test_directory/testimage.jpg
        /fb_test_directory/fb_tmp_dir/
        /fb_test_directory/fb_tmp_dir/fb_tmp_dir_sub/
        /fb_test_directory/fb_tmp_dir/fb_tmp_dir_sub/testimage.jpg
        """
        self.original_path = filebrowser.base.os.path
        self.original_directory = site.directory
        self.original_versions_basedir = filebrowser.base.VERSIONS_BASEDIR
        self.original_versions = filebrowser.base.VERSIONS
        self.original_admin_versions = filebrowser.base.ADMIN_VERSIONS

        # DIRECTORY
        # custom directory because this could be set with sites
        # and we cannot rely on filebrowser.settings
        # FIXME: find better directory name
        self.directory = "fb_test_directory/"
        self.directory_path = os.path.join(site.storage.location,
                                           self.directory)
        if os.path.exists(self.directory_path):
            self.fail("Test directory already exists.")
        else:
            os.makedirs(self.directory_path)
        # set site directory
        site.directory = self.directory

        # create temporary test folder and move testimage
        # FIXME: find better path names
        self.tmpdir_name = os.path.join("fb_tmp_dir", "fb_tmp_dir_sub")
        self.tmpdir_path = os.path.join(site.storage.location, self.directory,
                                        self.tmpdir_name)
        if os.path.exists(self.tmpdir_path):
            self.fail("Temporary testfolder already exists.")
        else:
            os.makedirs(self.tmpdir_path)

        # copy test image to temporary test folder
        self.image_path = os.path.join(FILEBROWSER_PATH, "static",
                                       "filebrowser", "img", "testimage.jpg")
        if not os.path.exists(self.image_path):
            self.fail("Testimage not found.")
        shutil.copy(self.image_path, self.directory_path)
        shutil.copy(self.image_path, self.tmpdir_path)

        # set posixpath
        filebrowser.base.os.path = posixpath

        # filelisting/fileobject
        self.f_listing = FileListing(self.directory,
                                     sorting_by='date',
                                     sorting_order='desc')
        self.f_listing_file = FileListing(
            os.path.join(self.directory, self.tmpdir_name, "testimage.jpg"))
Пример #11
0
    def setUp(self):
        super(FileListingTests, self).setUp()

        self.F_LISTING_FOLDER = FileListing(self.DIRECTORY, sorting_by='date', sorting_order='desc')
        self.F_LISTING_IMAGE = FileListing(os.path.join(self.DIRECTORY, 'folder', 'subfolder', "testimage.jpg"))

        shutil.copy(self.STATIC_IMG_PATH, self.SUBFOLDER_PATH)
        shutil.copy(self.STATIC_IMG_PATH, self.DIRECTORY_PATH)
Пример #12
0
def userrepView(request):
    repha = models.repository.objects.filter(usern=request.user)
    filelisting = FileListing('git', sorting_by='date', sorting_order='desc')

    context = {
        'rep': repha,
        'folder': filelisting.listing(),
    }
    template = loader.get_template('myrep.html')
    return HttpResponse(template.render(context, request))
Пример #13
0
    def handle(self, *args, **options):
        media_path = ""

        if len(args):
            media_path = args[0]
            path = media_path
        else:
            path = DIRECTORY

        if not os.path.isdir(os.path.join(settings.MEDIA_ROOT, path)):
            raise CommandError(
                '<media_path> must be a directory in MEDIA_ROOT (If you don\'t add a media_path the default path is DIRECTORY).\n"%s" is no directory.'
                % path)

        # get version name
        while 1:
            self.stdout.write('\nSelect a version you want to generate:\n')
            for version in VERSIONS:
                self.stdout.write(' * %s\n' % version)

            version_name = raw_input(
                '(leave blank to generate all versions): ')

            if version_name == "":
                selected_version = None
                break
            else:
                try:
                    tmp = VERSIONS[version_name]
                    selected_version = version_name
                    break
                except:
                    self.stderr.write('Error: Version "%s" doesn\'t exist.\n' %
                                      version_name)
                    version_name = None
                    continue

        # filelisting
        filelisting = FileListing(
            path, filter_func=self.filter_images
        )  # FIXME filterfunc: no hidden files, exclude list, no versions, just images!
        for fileobject in filelisting.files_walk_filtered():
            if fileobject.filetype == "Image":
                if selected_version:
                    self.stdout.write('generating version "%s" for: %s\n' %
                                      (selected_version, fileobject.path))
                    versionobject = fileobject.version_generate(
                        selected_version)  # FIXME force?
                else:
                    self.stdout.write('generating all versions for: %s\n' %
                                      fileobject.path)
                    for version in VERSIONS:
                        versionobject = fileobject.version_generate(
                            selected_version)  # FIXME force?
Пример #14
0
def treeview_parser(root='', abspath='', relpath='', flag='C'):
    """
	According to the given root, traverse its file tree and return a json object.
	:param root:
	:param abspath:
	:param flag: 'C'-> Complete file tree, 'O'-> file tree used in open project
	:return:
	"""
    dataList = []
    path = os.path.join(DIRECTORY, root)
    filelisting = FileListing(path, sorting_by='date', sorting_order='desc')
    for item in filelisting.listing():
        fileobject = FileObject(os.path.join(path, item))
        newabspath = os.path.join(abspath, item)
        # print(newabspath)
        if flag == 'O':
            dataList.append({
                "text":
                item,
                "icon":
                "glyphicon glyphicon-folder-close",
                # "selectedIcon": "glyphicon glyphicon-folder-open",
                "nodes":
                treeview_parser(fileobject.path_relative_directory,
                                newabspath,
                                flag=flag),
                "href":
                reverse('maintest:index') + "?path=" + newabspath
            })
        elif fileobject.is_folder:  # and not fileobject.is_empty:
            dataList.append({
                "text":
                item,
                "icon":
                "glyphicon glyphicon-folder-close",
                # "selectedIcon": "glyphicon glyphicon-folder-open",
                "nodes":
                treeview_parser(fileobject.path_relative_directory,
                                newabspath,
                                flag=flag)
            })
        elif flag == 'C':
            dataList.append({
                "text":
                item,
                "icon":
                "glyphicon glyphicon-file",
                "href":
                reverse('maintest:index') + "?file=" + newabspath + "&path=" +
                relpath
                # "href": "#edit-text"
            })
    return dataList
Пример #15
0
    def setUp(self):
        """
        Save original values/functions so they can be restored in tearDown

        our temporary file structure looks like this:

        /fb_test_directory/
        /fb_test_directory/testimage.jpg
        /fb_test_directory/fb_tmp_dir/
        /fb_test_directory/fb_tmp_dir/fb_tmp_dir_sub/
        /fb_test_directory/fb_tmp_dir/fb_tmp_dir_sub/testimage.jpg
        """
        self.original_path = filebrowser.base.os.path
        self.original_directory = site.directory
        self.original_versions_basedir = filebrowser.base.VERSIONS_BASEDIR
        self.original_versions = filebrowser.base.VERSIONS
        self.original_admin_versions = filebrowser.base.ADMIN_VERSIONS

        # DIRECTORY
        # custom directory because this could be set with sites
        # and we cannot rely on filebrowser.settings
        # FIXME: find better directory name
        self.directory = "fb_test_directory/"
        self.directory_path = os.path.join(site.storage.location, self.directory)
        if os.path.exists(self.directory_path):
            self.fail("Test directory already exists.")
        else:
            os.makedirs(self.directory_path)
        # set site directory
        site.directory = self.directory

        # create temporary test folder and move testimage
        # FIXME: find better path names
        self.tmpdir_name = os.path.join("fb_tmp_dir", "fb_tmp_dir_sub")
        self.tmpdir_path = os.path.join(site.storage.location, self.directory, self.tmpdir_name)
        if os.path.exists(self.tmpdir_path):
            self.fail("Temporary testfolder already exists.")
        else:
            os.makedirs(self.tmpdir_path)

        # copy test image to temporary test folder
        self.image_path = os.path.join(FILEBROWSER_PATH, "static", "filebrowser", "img", "testimage.jpg")
        if not os.path.exists(self.image_path):
            self.fail("Testimage not found.")
        shutil.copy(self.image_path, self.directory_path)
        shutil.copy(self.image_path, self.tmpdir_path)

        # set posixpath
        filebrowser.base.os.path = posixpath

        # filelisting/fileobject
        self.f_listing = FileListing(self.directory, sorting_by='date', sorting_order='desc')
        self.f_listing_file = FileListing(os.path.join(self.directory, self.tmpdir_name, "testimage.jpg"))
Пример #16
0
def browse(request):
    """
    Browse Files/Directories.
    """
    
    query = request.GET.copy()
    user = request.user.username
    abs_path = u'%s' % os.path.join(MEDIA_ROOT, DIRECTORY, user, query.get('dir', ''))
    if not abs_path.startswith(request.user.get_profile().media_path) and \
            not request.user.is_superuser:
        raise Http403("You may not access this directory")
    filelisting = FileListing(abs_path,
        filter_func=filter_browse,
        sorting_by=query.get('o', DEFAULT_SORTING_BY),
        sorting_order=query.get('ot', DEFAULT_SORTING_ORDER))
    
    files = []
    if SEARCH_TRAVERSE and query.get("q"):
        listing = filelisting.files_walk_filtered()
    else:
        listing = filelisting.files_listing_filtered()
    for fileobject in listing:
        # date/type filter
        append = False
        if fileobject.filetype == query.get('filter_type', fileobject.filetype) and get_filterdate(query.get('filter_date', ''), fileobject.date or 0):
            append = True
        # search
        if query.get("q") and not re.compile(query.get("q").lower(), re.M).search(fileobject.filename.lower()):
            append = False
        # append
        if append:
            files.append(fileobject)
    filelisting.results_total = filelisting.results_listing_filtered
    filelisting.results_current = len(files)
    
    p = Paginator(files, LIST_PER_PAGE)
    page_nr = request.GET.get('p', '1')
    try:
        page = p.page(page_nr)
    except (EmptyPage, InvalidPage):
        page = p.page(p.num_pages)
    
    return render_to_response('filebrowser/index.html', {
        'p': p,
        'page': page,
        'filelisting': filelisting,
        'query': query,
        'title': _(u'FileBrowser'),
        'settings_var': get_settings_var(),
        'breadcrumbs': get_breadcrumbs(query, query.get('dir', '')),
        'breadcrumbs_title': ""
    }, context_instance=Context(request))
Пример #17
0
def listfile(request):
	filelist ={} 
	if request.method == 'GET':
		filelisting = FileListing(settings.MEDIA_ROOT ,filter_func = filter_filelisting)
		for file in filelisting.files_walk_filtered():
			rel_file_path = file.url[len(settings.MEDIA_ROOT):]
			filelist[rel_file_path]= file.filename
			print file.url.find(settings.MEDIA_ROOT) + len(settings.MEDIA_ROOT)
	else : 
		delfile= request.POST.get('Delete')
		os.remove(delfile)
		filelisting = FileListing(settings.MEDIA_ROOT ,filter_func = filter_filelisting)
		for file in filelisting.files_walk_filtered():
			filelist[file.url]= file.filename
	return render_to_response('listfiles.html', { 'filelist' : filelist },  context_instance = RequestContext(request))
Пример #18
0
def repview(request, id):
    obj = get_object_or_404(models.repository, pk=id)
    rep = models.repository.objects.get(id=id)
    pathh = rep.name
    filelisting = FileListing('repository/' + pathh,
                              sorting_by=None,
                              sorting_order=None)

    template = loader.get_template('repview.html')
    context = {
        'obj': obj,
        'rep': rep,
        'folder': filelisting.listing(),
    }
    return HttpResponse(template.render(context, request))
Пример #19
0
 def get(self, request):
     query = request.GET.copy()
     path = u'%s' % os.path.join(
         site.storage.location, 'uploads/', query.get('dir', ''))
     filelisting = FileListing(
         path, sorting_by='date', sorting_order='desc')
     listing = filelisting.files_listing_filtered()
     files = []
     for fileobject in listing:
         files.append({
             'name': fileobject.filename,
             'is_folder': fileobject.is_folder,
             'filetype': fileobject.filetype
         })
     return render(self.request, 'home.html', {'files': files, 'query': query.get('dir', '')})
Пример #20
0
    def get_context_data(self, **kwargs):
        context = super(LessonSectionUpdateView,
                        self).get_context_data(**kwargs)
        context['object_type'] = self.get_object().content_type
        context['filelisting'] = FileListing('uploads',
                                             sorting_by='date',
                                             sorting_order='desc').listing

        return context
    def handle(self, *args, **options):
        media_path = ""

        if len(args):
            media_path = args[0]
            path = media_path
        else:
            path = DIRECTORY

        if not os.path.isdir(os.path.join(settings.MEDIA_ROOT, path)):
            raise CommandError('<media_path> must be a directory in MEDIA_ROOT (If you don\'t add a media_path the default path is DIRECTORY).\n"%s" is no directory.' % path)

        # get version name
        while 1:
            self.stdout.write('\nSelect a version you want to generate:\n')
            for version in VERSIONS:
                self.stdout.write(' * %s\n' % version)

            version_name = input('(leave blank to generate all versions): ')

            if version_name == "":
                selected_version = None
                break
            else:
                try:
                    tmp = VERSIONS[version_name]
                    selected_version = version_name
                    break
                except:
                    self.stderr.write('Error: Version "%s" doesn\'t exist.\n' % version_name)
                    version_name = None
                    continue

        # filelisting
        filelisting = FileListing(path, filter_func=self.filter_images)  # FIXME filterfunc: no hidden files, exclude list, no versions, just images!
        for fileobject in filelisting.files_walk_filtered():
            if fileobject.filetype == "Image":
                if selected_version:
                    self.stdout.write('generating version "%s" for: %s\n' % (selected_version, fileobject.path))
                    versionobject = fileobject.version_generate(selected_version)  # FIXME force?
                else:
                    self.stdout.write('generating all versions for: %s\n' % fileobject.path)
                    for version in VERSIONS:
                        versionobject = fileobject.version_generate(version)  # FIXME force?
Пример #22
0
    def delete_confirm(self, request):
        """
        Delete existing File/Directory.
        """
        query = request.GET
        abs_path = u"%s" % os.path.join(self.media_root, query.get("dir", ""))
        fileobject = FileObject(
            os.path.join(abs_path, query.get("filename", "")), media_root=self.media_root, media_url=self.media_url
        )
        if fileobject.filetype == "Folder":
            filelisting = FileListing(
                os.path.join(abs_path, fileobject.filename),
                sorting_by=query.get("o", "filename"),
                sorting_order=query.get("ot", DEFAULT_SORTING_ORDER),
                media_root=self.media_root,
                media_url=self.media_url,
            )
            filelisting = filelisting.files_walk_total()
            if len(filelisting) > 100:
                additional_files = len(filelisting) - 100
                filelisting = filelisting[:100]
            else:
                additional_files = None
        else:
            filelisting = None
            additional_files = None

        return render_to_response(
            "filebrowser/delete_confirm.html",
            {
                "fileobject": fileobject,
                "filelisting": filelisting,
                "additional_files": additional_files,
                "query": query,
                "title": _(u"Confirm delete"),
                "settings_var": get_settings_var(media_root=self.media_root, media_url=self.media_url),
                "breadcrumbs": get_breadcrumbs(query, query.get("dir", "")),
                "breadcrumbs_title": _(u"Confirm delete"),
                "media_root": self.media_root,
                "media_url": self.media_url,
            },
            context_instance=Context(request, current_app=self.name),
        )
Пример #23
0
	def file_browse(self, request):
		query = request.GET
		query_dir = query.get('dir', '')
		path = u'%s' % os.path.join(site.directory, query_dir)
		# print(site.directory)

		# Return a file list:hehe
		filelisting = FileListing(path, sorting_by='date', sorting_order='desc')
		fileobjects = []
		for filepath in filelisting.listing():
			fileobject = FileObject(os.path.join(site.directory, query_dir, filepath))
			# print(fileobject.path_relative_directory)
			fileobjects.append(fileobject)
		return render(request, 'files/index.html', {
			'query': query,
			'query_dir': query_dir,
			'filelisting': filelisting,
			'breadcrumbs': get_Breadcrumbs(query_dir),
			'fileobjects': fileobjects
			})
Пример #24
0
def treeview_parser(root=''):
    """
	According to the given root, traverse its file tree and return a json object.
	:param root:
	:return dict:
	"""
    dataList = []
    path = os.path.join(DIRECTORY, root)
    filelisting = FileListing(path, sorting_by='date', sorting_order='desc')
    for item in filelisting.listing():
        fileobject = FileObject(os.path.join(path, item))
        if fileobject.is_folder and not fileobject.is_empty:
            dataList.append({
                "text":
                item,
                "nodes":
                treeview_parser(fileobject.path_relative_directory)
            })
        else:
            dataList.append({"text": item})
    return dataList
Пример #25
0
    def get_context_data(self, **kwargs):
        context = super(TextQuestionUpdateView,
                        self).get_context_data(**kwargs)
        lesson_filter = forms.ModelChoiceField(
            queryset=QuestionSet.objects.filter(
                lesson=self.get_object().question_set.lesson))
        context['form'].fields['question_set'] = lesson_filter
        context['filelisting'] = FileListing(
            'img',
            filter_func=filter_filelisting_images,
            sorting_by='date',
            sorting_order='desc').files_listing_filtered()

        return context
def browse(request):
    """
    Browse Files/Directories.
    """

    query = request.GET.copy()
    abs_path = u'%s' % os.path.join(MEDIA_ROOT, DIRECTORY, query.get(
        'dir', ''))
    filelisting = FileListing(abs_path,
                              filter_func=filter_browse,
                              sorting_by=query.get('o', DEFAULT_SORTING_BY),
                              sorting_order=query.get('ot',
                                                      DEFAULT_SORTING_ORDER))

    files = []
    if SEARCH_TRAVERSE and query.get("q"):
        listing = filelisting.files_walk_filtered()
    else:
        listing = filelisting.files_listing_filtered()
    for fileobject in listing:
        # date/type filter
        append = False
        if fileobject.filetype == query.get(
                'filter_type', fileobject.filetype) and get_filterdate(
                    query.get('filter_date', ''), fileobject.date or 0):
            append = True
        # search
        if query.get("q") and not re.compile(query.get("q").lower(),
                                             re.M).search(
                                                 fileobject.filename.lower()):
            append = False
        # append
        if append:
            files.append(fileobject)
    filelisting.results_total = filelisting.results_listing_filtered
    filelisting.results_current = len(files)

    p = Paginator(files, LIST_PER_PAGE)
    page_nr = request.GET.get('p', '1')
    try:
        page = p.page(page_nr)
    except (EmptyPage, InvalidPage):
        page = p.page(p.num_pages)

    return render_to_response(
        'filebrowser/index.html', {
            'p': p,
            'page': page,
            'filelisting': filelisting,
            'query': query,
            'title': _(u'FileBrowser'),
            'settings_var': get_settings_var(),
            'breadcrumbs': get_breadcrumbs(query, query.get('dir', '')),
            'breadcrumbs_title': ""
        },
        context_instance=Context(request))
Пример #27
0
    def browse(self, request):
        """
        Browse Files/Directories.
        """

        filter_re = []
        for exp in EXCLUDE:
            filter_re.append(re.compile(exp))
        for k, v in VERSIONS.iteritems():
            exp = (r"_%s(%s)") % (k, "|".join(EXTENSION_LIST))
            filter_re.append(re.compile(exp))

        def filter_browse(item):
            filtered = item.filename.startswith(".")
            for re_prefix in filter_re:
                if re_prefix.search(item.filename):
                    filtered = True
            if filtered:
                return False
            return True

        query = request.GET.copy()
        path = u"%s" % os.path.join(self.directory, query.get("dir", ""))

        filelisting = FileListing(
            path,
            filter_func=filter_browse,
            sorting_by=query.get("o", DEFAULT_SORTING_BY),
            sorting_order=query.get("ot", DEFAULT_SORTING_ORDER),
            site=self,
        )

        files = []
        if SEARCH_TRAVERSE and query.get("q"):
            listing = filelisting.files_walk_filtered()
        else:
            listing = filelisting.files_listing_filtered()

        # If we do a search, precompile the search pattern now
        do_search = query.get("q")
        if do_search:
            re_q = re.compile(query.get("q").lower(), re.M)

        filter_type = query.get("filter_type")
        filter_date = query.get("filter_date")

        for fileobject in listing:
            # date/type filter
            append = False
            if (not filter_type or fileobject.filetype == filter_type) and (
                not filter_date or get_filterdate(filter_date, fileobject.date or 0)
            ):
                append = True
            # search
            if do_search and not re_q.search(fileobject.filename.lower()):
                append = False
            # append
            if append:
                files.append(fileobject)

        filelisting.results_total = len(listing)
        filelisting.results_current = len(files)

        p = Paginator(files, LIST_PER_PAGE)
        page_nr = request.GET.get("p", "1")
        try:
            page = p.page(page_nr)
        except (EmptyPage, InvalidPage):
            page = p.page(p.num_pages)

        return render_to_response(
            "filebrowser/index.html",
            {
                "p": p,
                "page": page,
                "filelisting": filelisting,
                "query": query,
                "title": _(u"FileBrowser"),
                "settings_var": get_settings_var(directory=self.directory),
                "breadcrumbs": get_breadcrumbs(query, query.get("dir", "")),
                "breadcrumbs_title": "",
                "site": self,
            },
            context_instance=Context(request, current_app=self.name),
        )
    def browse(self, request):
        "Browse Files/Directories."
        filter_re = []
        for exp in EXCLUDE:
            filter_re.append(re.compile(exp))

        # do not filter if VERSIONS_BASEDIR is being used
        if not VERSIONS_BASEDIR:
            for k, v in VERSIONS.items():
                exp = (r'_%s(%s)$') % (k, '|'.join(EXTENSION_LIST))
                filter_re.append(re.compile(exp, re.IGNORECASE))

        def filter_browse(item):
            "Defining a browse filter"
            filtered = item.filename.startswith('.')
            for re_prefix in filter_re:
                if re_prefix.search(item.filename):
                    filtered = True
            if filtered:
                return False
            return True

        query = request.GET.copy()
        path = u'%s' % os.path.join(self.directory, query.get('dir', ''))

        filelisting = FileListing(
            path,
            filter_func=filter_browse,
            sorting_by=query.get('o', DEFAULT_SORTING_BY),
            sorting_order=query.get('ot', DEFAULT_SORTING_ORDER),
            site=self)

        files = []
        if SEARCH_TRAVERSE and query.get("q"):
            listing = filelisting.files_walk_filtered()
        else:
            listing = filelisting.files_listing_filtered()

        # If we do a search, precompile the search pattern now
        do_search = query.get("q")
        if do_search:
            re_q = re.compile(query.get("q").lower(), re.M)

        filter_type = query.get('filter_type')
        filter_date = query.get('filter_date')

        for fileobject in listing:
            # date/type filter
            append = False
            if (not filter_type or fileobject.filetype == filter_type) and (not filter_date or get_filterdate(filter_date, fileobject.date or 0)):
                append = True
            # search
            if do_search and not re_q.search(fileobject.filename.lower()):
                append = False
            # append
            if append:
                files.append(fileobject)

        filelisting.results_total = len(listing)
        filelisting.results_current = len(files)

        p = Paginator(files, LIST_PER_PAGE)
        page_nr = request.GET.get('p', '1')
        try:
            page = p.page(page_nr)
        except (EmptyPage, InvalidPage):
            page = p.page(p.num_pages)

        return render(request, 'filebrowser/index.html', admin_context({
            'p': p,
            'page': page,
            'filelisting': filelisting,
            'query': query,
            'title': _(u'FileBrowser'),
            'is_popup': "pop" in request.GET,   # ChangeList uses "pop"
            'settings_var': get_settings_var(directory=self.directory),
            'breadcrumbs': get_breadcrumbs(query, query.get('dir', '')),
            'breadcrumbs_title': "",
            'filebrowser_site': self
        }, request))
Пример #29
0
def home_view(request):
    filelisting = FileListing(settings.MEDIA_ROOT,
                              sorting_by='date',
                              sorting_order='desc')
    files = filelisting.listing()
    return render(request, 'index.html', {'files': files})
Пример #30
0
class FileListingTests(TestCase):
    """
    /_test/uploads/testimage.jpg
    /_test/uploads/folder/
    /_test/uploads/folder/subfolder/
    /_test/uploads/folder/subfolder/testimage.jpg
    """

    def setUp(self):
        super(FileListingTests, self).setUp()

        self.F_LISTING_FOLDER = FileListing(self.DIRECTORY, sorting_by='date', sorting_order='desc')
        self.F_LISTING_IMAGE = FileListing(os.path.join(self.DIRECTORY, 'folder', 'subfolder', "testimage.jpg"))

        shutil.copy(self.STATIC_IMG_PATH, self.SUBFOLDER_PATH)
        shutil.copy(self.STATIC_IMG_PATH, self.DIRECTORY_PATH)

    def test_init_attributes(self):

        """
        FileListing init attributes

        # path
        # filter_func
        # sorting_by
        # sorting_order
        """
        self.assertEqual(self.F_LISTING_FOLDER.path, '_test/uploads/')
        self.assertEqual(self.F_LISTING_FOLDER.filter_func, None)
        self.assertEqual(self.F_LISTING_FOLDER.sorting_by, 'date')
        self.assertEqual(self.F_LISTING_FOLDER.sorting_order, 'desc')

    def test_listing(self):
        """
        FileObject listing

        # listing
        # files_listing_total
        # files_listing_filtered
        # results_listing_total
        # results_listing_filtered
        """

        self.assertEqual(self.F_LISTING_IMAGE.listing(), [])
        self.assertEqual(list(self.F_LISTING_FOLDER.listing()), [u'folder', u'testimage.jpg'])
        self.assertEqual(list(f.path for f in self.F_LISTING_FOLDER.files_listing_total()), [u'_test/uploads/testimage.jpg', u'_test/uploads/folder'])
        self.assertEqual(list(f.path for f in self.F_LISTING_FOLDER.files_listing_filtered()), [u'_test/uploads/testimage.jpg', u'_test/uploads/folder'])
        self.assertEqual(self.F_LISTING_FOLDER.results_listing_total(), 2)
        self.assertEqual(self.F_LISTING_FOLDER.results_listing_filtered(), 2)

    def test_listing_filtered(self):
        """
        FileObject listing

        # listing
        # files_listing_total
        # files_listing_filtered
        # results_listing_total
        # results_listing_filtered
        """

        self.assertEqual(self.F_LISTING_IMAGE.listing(), [])
        self.assertEqual(list(self.F_LISTING_FOLDER.listing()), [u'folder', u'testimage.jpg'])
        self.assertEqual(list(f.path for f in self.F_LISTING_FOLDER.files_listing_total()), [u'_test/uploads/testimage.jpg', u'_test/uploads/folder'])
        self.assertEqual(list(f.path for f in self.F_LISTING_FOLDER.files_listing_filtered()), [u'_test/uploads/testimage.jpg', u'_test/uploads/folder'])
        self.assertEqual(self.F_LISTING_FOLDER.results_listing_total(), 2)
        self.assertEqual(self.F_LISTING_FOLDER.results_listing_filtered(), 2)

    def test_walk(self):
        """
        FileObject walk

        # walk
        # files_walk_total
        # files_walk_filtered
        # results_walk_total
        # results_walk_filtered
        """

        self.assertEqual(self.F_LISTING_IMAGE.walk(), [])
        self.assertEqual(list(self.F_LISTING_FOLDER.walk()), [u'folder/subfolder/testimage.jpg', u'folder/subfolder', u'folder', u'testimage.jpg'])
        self.assertEqual(list(f.path for f in self.F_LISTING_FOLDER.files_walk_total()), [u'_test/uploads/testimage.jpg', u'_test/uploads/folder', u'_test/uploads/folder/subfolder', u'_test/uploads/folder/subfolder/testimage.jpg'])
        self.assertEqual(list(f.path for f in self.F_LISTING_FOLDER.files_walk_filtered()), [u'_test/uploads/testimage.jpg', u'_test/uploads/folder', u'_test/uploads/folder/subfolder', u'_test/uploads/folder/subfolder/testimage.jpg'])
        self.assertEqual(self.F_LISTING_FOLDER.results_walk_total(), 4)
        self.assertEqual(self.F_LISTING_FOLDER.results_walk_filtered(), 4)
    def browse(self, request):
        """
        Browse Files/Directories.
        """

        filter_re = []
        for exp in EXCLUDE:
           filter_re.append(re.compile(exp))
        for k,v in VERSIONS.iteritems():
            exp = (r'_%s(%s)') % (k, '|'.join(EXTENSION_LIST))
            filter_re.append(re.compile(exp))

        def filter_browse(item):
            filtered = item.filename.startswith('.')
            for re_prefix in filter_re:
                if re_prefix.search(item.filename):
                    filtered = True
            if filtered:
                return False
            return True
        
        query = request.GET.copy()
        path = u'%s' % os.path.join(self.directory, query.get('dir', ''))
        
        filelisting = FileListing(path,
            filter_func=filter_browse,
            sorting_by=query.get('o', DEFAULT_SORTING_BY),
            sorting_order=query.get('ot', DEFAULT_SORTING_ORDER),
            site=self)
        
        files = []
        if SEARCH_TRAVERSE and query.get("q"):
            listing = filelisting.files_walk_filtered()
        else:
            listing = filelisting.files_listing_filtered()
        
        # If we do a search, precompile the search pattern now
        do_search = query.get("q")
        if do_search:
            re_q = re.compile(query.get("q").lower(), re.M)
        
        filter_type = query.get('filter_type')
        filter_date = query.get('filter_date')
        
        for fileobject in listing:
            # date/type filter
            append = False
            if (not filter_type or fileobject.filetype == filter_type) and (not filter_date or get_filterdate(filter_date, fileobject.date or 0)):
                append = True
            # search
            if do_search and not re_q.search(fileobject.filename.lower()):
                append = False
            # append
            if append:
                files.append(fileobject)
        
        filelisting.results_total = len(listing)
        filelisting.results_current = len(files)
        
        p = Paginator(files, LIST_PER_PAGE)
        page_nr = request.GET.get('p', '1')
        try:
            page = p.page(page_nr)
        except (EmptyPage, InvalidPage):
            page = p.page(p.num_pages)
        
        return render_to_response('filebrowser/index.html', {
            'p': p,
            'page': page,
            'filelisting': filelisting,
            'query': query,
            'title': _(u'FileBrowser'),
            'is_popup': "pop" in request.REQUEST,   # ChangeList uses "pop"
            'settings_var': get_settings_var(directory=self.directory),
            'breadcrumbs': get_breadcrumbs(query, query.get('dir', '')),
            'breadcrumbs_title': "",
            'filebrowser_site': self
        }, context_instance=Context(request, current_app=self.name))
Пример #32
0
    def save(self, *args, **kwargs):
        logger = logging.getLogger("undefcms")
        
        isFileNew = False
        
        if self.file:
            #get the mime
            mime = mimetypes.guess_type(self.file.path)[0]
            if self.extra is None:
                self.extra = {}
            self.extra["mime"] = mime
            if not "md5" in self.extra:
                self.extra["md5"] = ""
            
            #get the md5 hash
            oldMd5 = self.extra["md5"]
            self.extra["md5"] = getHash(settings.MEDIA_ROOT+self.file.path)
            
            if oldMd5 != self.extra["md5"]:
                isFileNew = True
            
            #isFileNew = True
            
            if self.type == "auto": #We don't know the mime type yet. try to guess it
                if mime == "image/jpeg" or mime == "image/png" or mime == "image/gif":
                    self.type = filetypes["image"]
                elif mime == "video/mp4":
                    self.type = filetypes["video"]
                elif mime == "video/ogg":
                    self.type = filetypes["video"]
                elif mime == "video/avi":
                    self.type = filetypes["video"]
                elif mime == 'audio/mpeg':
                    self.type = filetypes["audio"]
                else:
                    self.type = mime
            
            if self.type == "img":
                if isFileNew:
                    self.extra["width"] = self.file.width
                    self.extra["height"] = self.file.height
            
            if self.type == "listfolder":
                logger.debug("LOOKING THRU "+MEDIA_ROOT+self.file.path)
                
                def filter(item):
                    return item.is_version != True
                
                filelisting = FileListing(MEDIA_ROOT+self.file.path,  sorting_by='name', sorting_order='desc', filter_func=filter)
                for item in filelisting.files_walk_filtered():
                    #logger.debug(type(self) == type(PostFile))
                    #logger.debug(isinstance(self, PageFile))
                    newFile = None
                    if isinstance(self, PageFile):
                        newFile = PageFile(page=self.page)
                    if isinstance(self, PostFile):
                        newFile = PostFile(post = self.post)
                    if newFile is not None:
                        newFile.index = self.index
                        newFile.file = FileObject(os.path.join(self.file.path, item.filename))
                        newFile.save()
                if self.id > 0:
                    self.delete()
                return
            
            if self.type == "video":
                if isFileNew:
                    #get width and height of video
                    res = commands.getoutput("ffmpeg -i \""+settings.MEDIA_ROOT+self.file.path+"\"")
                    dimFind = re.findall(r'( \d+x\d+ )', res)
                    if len(dimFind) is 0:
                        dimFind = re.findall(r'(\d+x\d+)', res)
                    width = 0
                    height = 0
                    self.extra["width"] = 0
                    self.extra["height"] = 0
                    if len(dimFind) is not 0:
                        dim = dimFind[0].split("x")
                        width = dim[0]
                        height = dim[1]
                        self.extra["width"] = width
                        self.extra["height"] = height
                    #and now convert it to use for web
                    #from utils import convertVideo
                    #if width != 0 and height != 0:
                    #    self.extra["msg"] = convertVideo(self.file.path, width, height)

            self.extra["lastFile"] = self.file.filename
        super(File, self).save(*args, **kwargs)
Пример #33
0
class FileListingTests(TestCase):
    
    def setUp(self):
        """
        Save original values/functions so they can be restored in tearDown

        our temporary file structure looks like this:

        /fb_test_directory/
        /fb_test_directory/testimage.jpg
        /fb_test_directory/fb_tmp_dir/
        /fb_test_directory/fb_tmp_dir/fb_tmp_dir_sub/
        /fb_test_directory/fb_tmp_dir/fb_tmp_dir_sub/testimage.jpg
        """
        self.original_path = filebrowser.base.os.path
        self.original_directory = site.directory
        self.original_versions_basedir = filebrowser.base.VERSIONS_BASEDIR
        self.original_versions = filebrowser.base.VERSIONS
        self.original_admin_versions = filebrowser.base.ADMIN_VERSIONS

        # DIRECTORY
        # custom directory because this could be set with sites
        # and we cannot rely on filebrowser.settings
        # FIXME: find better directory name
        self.directory = "fb_test_directory/"
        self.directory_path = os.path.join(site.storage.location, self.directory)
        if os.path.exists(self.directory_path):
            self.fail("Test directory already exists.")
        else:
            os.makedirs(self.directory_path)
        # set site directory
        site.directory = self.directory

        # create temporary test folder and move testimage
        # FIXME: find better path names
        self.tmpdir_name = os.path.join("fb_tmp_dir", "fb_tmp_dir_sub")
        self.tmpdir_path = os.path.join(site.storage.location, self.directory, self.tmpdir_name)
        if os.path.exists(self.tmpdir_path):
            self.fail("Temporary testfolder already exists.")
        else:
            os.makedirs(self.tmpdir_path)

        # copy test image to temporary test folder
        self.image_path = os.path.join(FILEBROWSER_PATH, "static", "filebrowser", "img", "testimage.jpg")
        if not os.path.exists(self.image_path):
            self.fail("Testimage not found.")
        shutil.copy(self.image_path, self.directory_path)
        shutil.copy(self.image_path, self.tmpdir_path)

        # set posixpath
        filebrowser.base.os.path = posixpath

        # filelisting/fileobject
        self.f_listing = FileListing(self.directory, sorting_by='date', sorting_order='desc')
        self.f_listing_file = FileListing(os.path.join(self.directory, self.tmpdir_name, "testimage.jpg"))

    def test_init_attributes(self):
        """
        FileListing init attributes

        # path
        # filter_func
        # sorting_by
        # sorting_order
        """
        self.assertEqual(self.f_listing.path, 'fb_test_directory/')
        self.assertEqual(self.f_listing.filter_func, None)
        self.assertEqual(self.f_listing.sorting_by, 'date')
        self.assertEqual(self.f_listing.sorting_order, 'desc')

    def test_listing(self):
        """
        FileObject listing

        # listing
        # files_listing_total
        # files_listing_filtered
        # results_listing_total
        # results_listing_filtered
        """
        self.assertEqual(self.f_listing_file.listing(), [])
        self.assertEqual(list(self.f_listing.listing()), [u'fb_tmp_dir', u'testimage.jpg'])
        self.assertEqual(list(f.path for f in self.f_listing.files_listing_total()), [u'fb_test_directory/testimage.jpg', u'fb_test_directory/fb_tmp_dir'])
        self.assertEqual(list(f.path for f in self.f_listing.files_listing_filtered()), [u'fb_test_directory/testimage.jpg', u'fb_test_directory/fb_tmp_dir'])
        self.assertEqual(self.f_listing.results_listing_total(), 2)
        self.assertEqual(self.f_listing.results_listing_filtered(), 2)

    def test_listing_filtered(self):
        """
        FileObject listing

        # listing
        # files_listing_total
        # files_listing_filtered
        # results_listing_total
        # results_listing_filtered
        """
        self.assertEqual(self.f_listing_file.listing(), [])
        self.assertEqual(list(self.f_listing.listing()), [u'fb_tmp_dir', u'testimage.jpg'])
        self.assertEqual(list(f.path for f in self.f_listing.files_listing_total()), [u'fb_test_directory/testimage.jpg', u'fb_test_directory/fb_tmp_dir'])
        self.assertEqual(list(f.path for f in self.f_listing.files_listing_filtered()), [u'fb_test_directory/testimage.jpg', u'fb_test_directory/fb_tmp_dir'])
        self.assertEqual(self.f_listing.results_listing_total(), 2)
        self.assertEqual(self.f_listing.results_listing_filtered(), 2)

    def test_walk(self):
        """
        FileObject walk

        # walk
        # files_walk_total
        # files_walk_filtered
        # results_walk_total
        # results_walk_filtered
        """
        self.assertEqual(self.f_listing_file.walk(), [])
        self.assertEqual(list(self.f_listing.walk()), [u'fb_tmp_dir/fb_tmp_dir_sub/testimage.jpg', u'fb_tmp_dir/fb_tmp_dir_sub', u'fb_tmp_dir', u'testimage.jpg'])
        self.assertEqual(list(f.path for f in self.f_listing.files_walk_total()),  [u'fb_test_directory/testimage.jpg', u'fb_test_directory/fb_tmp_dir', u'fb_test_directory/fb_tmp_dir/fb_tmp_dir_sub', u'fb_test_directory/fb_tmp_dir/fb_tmp_dir_sub/testimage.jpg'])
        self.assertEqual(list(f.path for f in self.f_listing.files_walk_filtered()),  [u'fb_test_directory/testimage.jpg', u'fb_test_directory/fb_tmp_dir', u'fb_test_directory/fb_tmp_dir/fb_tmp_dir_sub', u'fb_test_directory/fb_tmp_dir/fb_tmp_dir_sub/testimage.jpg'])
        self.assertEqual(self.f_listing.results_walk_total(), 4)
        self.assertEqual(self.f_listing.results_walk_filtered(), 4)

    def tearDown(self):
        """
        Restore original values/functions
        """
        filebrowser.base.os.path = self.original_path
        site.directory = self.original_directory
        filebrowser.base.VERSIONS_BASEDIR = self.original_versions_basedir
        filebrowser.base.VERSIONS = self.original_versions
        filebrowser.base.ADMIN_VERSIONS = self.original_admin_versions

        # remove temporary directory and test folder
        shutil.rmtree(self.directory_path)