Пример #1
0
def listing(request,
            repository_name,
            path='',
            base_template=FILEBROWSER_BASE_TEMPLATE,
            url_prefix=None,
            errornote=''):
    repository = get_object_or_404(Repository, name=repository_name)
    if path and not repository.check_dir(path):
        raise Http404

    dirs, files, parents, dirname = repository.list_directory(path)

    location = path
    if not location.endswith('/'):
        location += '/'
    documents = Document.objects.filter(repository=repository,
                                        location=location)

    edit_permission = is_owner_or_superuser(request)

    return render_to_response('filebrowser/listing.html', {
        'repository': repository,
        'base_template': base_template,
        'path': path,
        'dirs': dirs,
        'files': files,
        'parents': parents,
        'dirname': dirname,
        'errornote': errornote,
        'documents': documents,
        'url_prefix': url_prefix,
        'edit_permission': edit_permission
    },
                              context_instance=RequestContext(request))
Пример #2
0
def listing(request, repository_name, path='',
            base_template=FILEBROWSER_BASE_TEMPLATE, url_prefix=None, errornote=''):
    repository = get_object_or_404(Repository, name=repository_name)
    if path and not repository.check_dir(path):
        raise Http404

    dirs, files, parents, dirname = repository.list_directory(path)

    location = path
    if not location.endswith('/'):
        location += '/'
    documents = Document.objects.filter(repository=repository,
                                        location=location)

    edit_permission = is_owner_or_superuser(request)

    return render_to_response('filebrowser/listing.html',
                              {'repository': repository,
                               'base_template': base_template,
                               'path': path,
                               'dirs': dirs,
                               'files': files,
                               'parents': parents,
                               'dirname': dirname,
                               'errornote': errornote,
                               'documents': documents,
                               'url_prefix': url_prefix,
                               'edit_permission': edit_permission},
                              context_instance=RequestContext(request))
Пример #3
0
def viewdoc(request, repository_name, doc_slug,
            base_template=FILEBROWSER_BASE_TEMPLATE, url_prefix=None):
    repository = get_object_or_404(Repository, name=repository_name)
    document = get_object_or_404(Document, repository=repository,
                                    slug=doc_slug)
    file_field = None
    edit_permission = is_owner_or_superuser(request)
    if edit_permission and request.method == 'POST':
        if 'addfile' in request.POST:
            file_field = 'file'
            model_class = FileDocument
        elif 'addimage' in request.POST:
            file_field = 'image'
            model_class = ImageDocument

    if edit_permission and file_field and file_field in request.FILES:
        file = request.FILES[file_field]
        instance = model_class()
        instance.document = document
        instance.file.save(file.name, file)

    files = FileDocument.objects.filter(document=document)
    images = ImageDocument.objects.filter(document=document)
    parents = document.get_parents()

    return render_to_response('filebrowser/document.html',
                                {'repository': repository,
                                'base_template': base_template,
                                'parents': parents,
                                'document': document,
                                'doc_files': files,
                                'doc_images': images,
                                'edit_permission': edit_permission,
                                'url_prefix': url_prefix},
                                context_instance=RequestContext(request))
Пример #4
0
def viewdoc(request,
            repository_name,
            doc_slug,
            base_template=FILEBROWSER_BASE_TEMPLATE,
            url_prefix=None):
    repository = get_object_or_404(Repository, name=repository_name)
    document = get_object_or_404(Document,
                                 repository=repository,
                                 slug=doc_slug)
    file_field = None
    edit_permission = is_owner_or_superuser(request)
    if edit_permission and request.method == 'POST':
        if 'addfile' in request.POST:
            file_field = 'file'
            model_class = FileDocument
        elif 'addimage' in request.POST:
            file_field = 'image'
            model_class = ImageDocument

    if edit_permission and file_field and file_field in request.FILES:
        file = request.FILES[file_field]
        instance = model_class()
        instance.document = document
        instance.file.save(file.name, file)

    files = FileDocument.objects.filter(document=document)
    images = ImageDocument.objects.filter(document=document)
    parents = document.get_parents()

    return render_to_response('filebrowser/document.html', {
        'repository': repository,
        'base_template': base_template,
        'parents': parents,
        'document': document,
        'doc_files': files,
        'doc_images': images,
        'edit_permission': edit_permission,
        'url_prefix': url_prefix
    },
                              context_instance=RequestContext(request))
Пример #5
0
def search(request, base_template=FILEBROWSER_BASE_TEMPLATE):
    files, documents = (), ()
    if request.method == 'POST':
        q = request.POST.get('q').encode('utf8')
    else:
        q = ''
    repos = Repository.objects
    documents = Document.objects
    section = getattr(request, 'section', None)
    if section is not None:
        repos = repos.filter(section=section)
        documents = documents.filter(repository__in=repos)
    files = [f for repo in repos.all() for f in repo.search_files(q)]
    documents = documents.filter(Q(title__regex=q) | Q(content__regex=q))
    edit_permission = is_owner_or_superuser(request)
    return render_to_response('filebrowser/search.html',
                            {'base_template': base_template,
                            'query': q,
                            'files': files,
                            'documents': documents,
                            'edit_permission': edit_permission},
                            context_instance=RequestContext(request))
Пример #6
0
def search(request, base_template=FILEBROWSER_BASE_TEMPLATE):
    files, documents = (), ()
    if request.method == 'POST':
        q = request.POST.get('q').encode('utf8')
    else:
        q = ''
    repos = Repository.objects
    documents = Document.objects
    section = getattr(request, 'section', None)
    if section is not None:
        repos = repos.filter(section=section)
        documents = documents.filter(repository__in=repos)
    files = [f for repo in repos.all() for f in repo.search_files(q)]
    documents = documents.filter(Q(title__regex=q) | Q(content__regex=q))
    edit_permission = is_owner_or_superuser(request)
    return render_to_response('filebrowser/search.html', {
        'base_template': base_template,
        'query': q,
        'files': files,
        'documents': documents,
        'edit_permission': edit_permission
    },
                              context_instance=RequestContext(request))