Пример #1
0
 def _get_file_type(self):
     "Get file type as defined in EXTENSIONS."
     file_type = ''
     for k, v in EXTENSIONS.iteritems():
         for extension in v:
             if self.extension.lower() == extension.lower():
                 file_type = k
     return file_type
Пример #2
0
Файл: base.py Проект: nuaays/Lib
 def _get_file_type(self):
     "Get file type as defined in EXTENSIONS."
     file_type = ''
     for k, v in EXTENSIONS.items():
         for extension in v:
             if self.extension.lower() == extension.lower():
                 file_type = k
     return file_type
Пример #3
0
 def __init__(self, max_length=None, min_length=None, site=None, directory=None, extensions=None, format=None, *args, **kwargs):
     self.max_length, self.min_length = max_length, min_length
     self.site = kwargs.pop('filebrowser_site', site)
     self.directory = directory
     self.extensions = extensions
     if format:
         self.format = format or ''
         self.extensions = extensions or EXTENSIONS.get(format)
     super(FileBrowseFormField, self).__init__(*args, **kwargs)
Пример #4
0
 def __init__(self, max_length=None, min_length=None, site=None, directory=None, extensions=None, format=None, *args, **kwargs):
     self.max_length, self.min_length = max_length, min_length
     self.site = kwargs.pop('filebrowser_site', site)
     self.directory = directory
     self.extensions = extensions
     if format:
         self.format = format or ''
         self.extensions = extensions or EXTENSIONS.get(format)
     super(FileBrowseFormField, self).__init__(*args, **kwargs)
 def __init__(self, max_length=None, min_length=None, site=None, directory=None, extensions=None, format=None, upload_to=None, temp_upload_dir=None, *args, **kwargs):
     self.max_length, self.min_length = max_length, min_length
     self.site = kwargs.pop('filebrowser_site', site)
     self.directory = directory
     self.format = format or ''
     self.extensions = extensions or EXTENSIONS.get(format.title())
     self.upload_to = upload_to
     self.temp_upload_dir = temp_upload_dir
     super(FileBrowseAndUploadFormField, self).__init__(*args, **kwargs)
Пример #6
0
 def _get_format_type(self):
     "Get format type as defined in SELECT_FORMATS."
     format_type = []
     for k, v in SELECT_FORMATS.items():
         for item in v:
             for extension in EXTENSIONS.get(item, None):
                 if self.extension.lower() == extension.lower():
                     format_type.append(k)
     return format_type
Пример #7
0
def get_file_extensions(qs):
    extensions = []
    if "type" in qs and qs.get("type") in SELECT_FORMATS:
        for format in SELECT_FORMATS.get(qs.get("type"), []):
            extensions.extend(EXTENSIONS[format])
    else:
        for k, v in EXTENSIONS.items():
            for item in v:
                if item: extensions.append(item)
    return extensions
Пример #8
0
def get_file_extensions(qs):
    extensions = []
    if "type" in qs and qs.get("type") in SELECT_FORMATS:
        for format in SELECT_FORMATS.get(qs.get("type"), []):
            extensions.extend(EXTENSIONS[format])
    else:
        for k, v in EXTENSIONS.items():
            for item in v:
                if item: extensions.append(item)
    return extensions
Пример #9
0
 def __init__(self, max_length=None, min_length=None, site=None, directory=None, extensions=None, format=None, upload_to=None, temp_upload_dir=None, *args, **kwargs):
     self.max_length, self.min_length = max_length, min_length
     self.site = site
     self.directory = directory
     self.extensions = extensions
     if format:
         self.format = format or ''
         self.extensions = extensions or EXTENSIONS.get(format)
     self.upload_to = upload_to
     self.temp_upload_dir = temp_upload_dir
     super(FileBrowseUploadFormField, self).__init__(*args, **kwargs)
Пример #10
0
def get_file_type(filename):
    """
    Get file type as defined in EXTENSIONS.
    """

    file_extension = os.path.splitext(filename)[1].lower()
    file_type = ''
    for k, v in EXTENSIONS.items():
        for extension in v:
            if file_extension == extension.lower():
                file_type = k
    return file_type
Пример #11
0
def get_file_type(filename):
    """
    Get file type as defined in EXTENSIONS.
    """

    file_extension = os.path.splitext(filename)[1].lower()
    file_type = ''
    for k, v in EXTENSIONS.items():
        for extension in v:
            if file_extension == extension.lower():
                file_type = k
    return file_type
Пример #12
0
def get_file_extensions(qs):
    extensions = []
    if "type" in qs and qs.get("type") in SELECT_FORMATS:
        for format in SELECT_FORMATS.get(qs.get("type"), []):
            extensions.extend(EXTENSIONS[format])
    else:
        for k, v in EXTENSIONS.items():
            for item in v:
                if item:
                    extensions.append(item)
    extensions = '","'.join(extensions)
    extensions = '["%s"]' % extensions
    return mark_safe(extensions)
Пример #13
0
def get_file_extensions(qs):
    extensions = []
    if "type" in qs and qs.get("type") in SELECT_FORMATS:
        for format in SELECT_FORMATS.get(qs.get("type"), []):
            extensions.extend(EXTENSIONS[format])
    else:
        for k, v in EXTENSIONS.items():
            for item in v:
                if item:
                    extensions.append(item)
    extensions = '","'.join(extensions)
    extensions = '["%s"]' % extensions
    return mark_safe(extensions)
Пример #14
0
    def __init__(self, max_length=None, min_length=None,
                  extensions=None, format=None, *args, **kwargs):
        self.max_length, self.min_length = max_length, min_length
        self.directory = kwargs.pop('directory', '')
        self.extensions = extensions
        self.format = format or ''
        self.extensions = extensions or EXTENSIONS.get(format)

        attrs = {
            "directory": self.directory,
            "extensions": self.extensions,
            "format": self.format
        }
        self.widget = FileBrowseWidget(attrs)
        super(FileBrowseFormField, self).__init__(*args, **kwargs)
Пример #15
0
 def clean(self, value):
     value = super(FileBrowseFormField, self).clean(value)
     if value == '':
         return value
     file_extension = os.path.splitext(value)[1].lower()
     if isinstance(self.extensions, basestring):
         extensions_list = EXTENSIONS.get(self.extensions)
     else:
         extensions_list = self.extensions
     if self.extensions and file_extension not in extensions_list:
         raise forms.ValidationError(self.error_messages['extension'] % {
             'ext': file_extension,
             'allowed': ", ".join(self.extensions)
         })
     return value
Пример #16
0
    def __init__(self, max_length=None, min_length=None,
                  extensions=None, format=None, *args, **kwargs):
        self.max_length, self.min_length = max_length, min_length
        self.directory = kwargs.pop('directory', '')
        self.extensions = extensions
        self.format = format or ''
        self.extensions = extensions or EXTENSIONS.get(format)

        attrs = {
            "directory": self.directory,
            "extensions": self.extensions,
            "format": self.format
        }
        self.widget = FileBrowseWidget(attrs)
        super(FileBrowseFormField, self).__init__(*args, **kwargs)
Пример #17
0
def browse(request):
    """
    Browse Files/Directories.
    """
    # QUERY / PATH CHECK
    query = request.GET.copy()
    path = get_path(query.get('dir', ''))
    directory = get_path('')

    if 'pop' in query:
        is_popup = True
    else:
        is_popup = False

    if path is not None:
        abs_path = _check_access(request, path)

    if path is None:
        msg = _('The requested Folder does not exist.')
        messages.warning(request, message=msg)
        if directory is None:
            # The DIRECTORY does not exist,
            # raise an error to prevent eternal redirecting.
            raise ImproperlyConfigured(
                _("Error finding Upload-Folder. Maybe it does not exist?"))
        redirect_url = reverse("fb_browse") + query_helper(query, "", "dir")
        return HttpResponseRedirect(redirect_url)

    # INITIAL VARIABLES
    results_var = {
        'results_total': 0,
        'results_current': 0,
        'delete_total': 0,
        'images_total': 0,
        'select_total': 0
    }
    counter = {}
    for k, v in EXTENSIONS.items():
        counter[k] = 0

    dir_list = os.listdir(abs_path)
    files = []
    for file in dir_list:

        # EXCLUDE FILES MATCHING VERSIONS_PREFIX OR ANY OF THE EXCLUDE PATTERNS
        filtered = file.startswith('.')
        for re_prefix in filter_re:
            if re_prefix.search(file):
                filtered = True
        if filtered:
            continue
        results_var['results_total'] += 1

        # CREATE FILEOBJECT
        fileobject = FileObject(os.path.join(fb_settings.DIRECTORY, path,
                                             file))

        # FILTER / SEARCH
        append = False
        if fileobject.filetype == request.GET.get('filter_type', fileobject.filetype) and \
                get_filterdate(request.GET.get('filter_date', ''), fileobject.date):
            append = True
        if request.GET.get('q') and not re.compile(
                request.GET.get('q').lower(), re.M).search(file.lower()):
            append = False

        # APPEND FILE_LIST
        if append:
            _type = query.get('type')
            try:
                # COUNTER/RESULTS
                if fileobject.filetype == 'Image':
                    results_var['images_total'] += 1
                if fileobject.filetype != 'Folder':
                    results_var['delete_total'] += 1
                elif fileobject.filetype == 'Folder' and fileobject.is_empty:
                    results_var['delete_total'] += 1
                if _type and _type in SELECT_FORMATS and \
                        fileobject.filetype in SELECT_FORMATS[_type]:
                    results_var['select_total'] += 1
                elif not _type:
                    results_var['select_total'] += 1
            except OSError:
                # Ignore items that have problems
                continue
            else:
                files.append(fileobject)
                results_var['results_current'] += 1

        # COUNTER/RESULTS
        if fileobject.filetype:
            counter[fileobject.filetype] += 1

    # SORTING
    query['o'] = request.GET.get('o', DEFAULT_SORTING_BY)
    query['ot'] = request.GET.get('ot', DEFAULT_SORTING_ORDER)
    files = sort_by_attr(files, request.GET.get('o', DEFAULT_SORTING_BY))
    if not request.GET.get(
            'ot') and DEFAULT_SORTING_ORDER == "desc" or request.GET.get(
                'ot') == "desc":
        files.reverse()

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

    return render(
        request,
        _template() + 'index.html', {
            'dir': path,
            'p': p,
            'page': page,
            'results_var': results_var,
            'counter': counter,
            'query': query,
            'title': _(u'FileBrowser'),
            'settings_var': get_settings_var(),
            'breadcrumbs': get_breadcrumbs(query, path),
            'breadcrumbs_title': "",
            'is_popup': is_popup
        })