def edit(request):
    """
    Edit existing File.
    """

    from filebrowser.forms import EditForm

    # QUERY / PATH CHECK
    query = request.GET
    path = get_path(query.get("dir", ""))
    filename = get_file(query.get("dir", ""), query.get("filename", ""))
    if path is None or filename is None:
        if path is None:
            msg = _("The requested Folder does not exist.")
        else:
            msg = _("The requested File does not exist.")
        messages.error(request, msg)
        return HttpResponseRedirect(reverse("fb_browse"))
    abs_path = os.path.join(MEDIA_ROOT, DIRECTORY, path)
    file_extension = os.path.splitext(filename)[1].lower()

    if request.method == "POST":
        form = EditForm(abs_path, filename, file_extension, request.POST)
        if form.is_valid():
            try:
                form.save()
                # MESSAGE & REDIRECT
                msg = _("Edit action was successful.")
                messages.success(request, msg)
                redirect_url = reverse("fb_browse") + query_helper(query, "", "filename")
                return HttpResponseRedirect(redirect_url)
            except OSError, (errno, strerror):
                form.errors["name"] = forms.util.ErrorList([_("Error.")])
Ejemplo n.º 2
0
def edit(request):
    """
    simple edit a file content.
    TODO:
        - Ask the user for file encoding?
        - catch read/write errors
        - merge coded parts and template parts
    """
    # QUERY / PATH CHECK
    result = _get_path_and_filename(request)
    if isinstance(result, HttpResponse):
        # path or filename doesn't exist
        return result
    path, filename, abs_path = result

    relative_server_path = os.path.join(DIRECTORY, path, filename)
    abs_filepath = os.path.join(MEDIA_ROOT, relative_server_path)

    if request.method == 'POST':
        encoding_form = SelectEncodingForm(request.POST)
        edit_form = EditForm(request.POST)
        if "reopen" in request.POST:
            # Reopen the file with other encoding
            if encoding_form.is_valid():
                encoding = encoding_form.cleaned_data["encoding"]
                edit_form = _get_editfile_forms(request, abs_filepath, encoding)
                msg = _("File was reopend with '%s' encoding." % encoding)
                request.user.message_set.create(message=msg)
        else:
            if edit_form.is_valid() and encoding_form.is_valid():
                new_content = edit_form.cleaned_data["content"]
                encoding = encoding_form.cleaned_data["encoding"]

                f = codecs.open(abs_filepath, "w", encoding)
                f.write(new_content)
                f.close()

                msg = _(
                    "Editing was successful."
                    " (Content was written with '%s' encoding.)"
                ) % (encoding)
                request.user.message_set.create(message=msg)
                redirect_url = reverse("fb_browse") + query_helper(request.GET, "", "filename")
                return HttpResponseRedirect(redirect_url)
    else:
        default_encoding = CodecChoiceField().choices[0][0] #FIXME
        encoding_form = SelectEncodingForm()
        edit_form = _get_editfile_forms(request, abs_filepath, default_encoding)


    return render_to_response('filebrowser/edit.html', {
        'encoding_form': encoding_form,
        'edit_form': edit_form,
        'query': request.GET,
        'title': _(u'edit "%s"') % filename,
        'settings_var': get_settings_var(),
        'breadcrumbs': get_breadcrumbs(request.GET, path),
        'breadcrumbs_title': _(u'edit')
    }, context_instance=Context(request))
def edit(request, root_directory=DIRECTORY):
    """
    simple edit a file content.
    TODO:
        - Ask the user for file encoding?
        - catch read/write errors
        - merge coded parts and template parts
    """
    # QUERY / PATH CHECK
    result = _get_path_and_filename(request, root_directory)
    if isinstance(result, HttpResponse):
        # path or filename doesn't exist
        return result
    path, filename, abs_path = result

    relative_server_path = os.path.join(root_directory, path, filename)
    abs_filepath = os.path.join(MEDIA_ROOT, relative_server_path)

    if request.method == "POST":
        form = EditForm(request.POST)
        if form.is_valid():
            new_content = form.cleaned_data["content"]
            f = codecs.open(abs_filepath, "w", encoding="UTF-8")
            f.write(new_content)
            f.close()
            msg = _("Editing was successful.")
            _message(request, msg)
            redirect_url = reverse("fb_browse") + query_helper(request.GET, "", "filename")
            return HttpResponseRedirect(redirect_url)
    else:
        f = file(abs_filepath, "r")
        file_content = f.read()
        f.close()

        form = EditForm(initial={"content": file_content})

    return render_to_response(
        "filebrowser/edit.html",
        {
            "form": form,
            "query": request.GET,
            "title": _(u'edit "%s"') % filename,
            "settings_var": get_settings_var(),
            "breadcrumbs": get_breadcrumbs(request.GET, path),
            "breadcrumbs_title": _(u"edit"),
        },
        context_instance=Context(request),
    )
Ejemplo n.º 4
0
def edit(request):
    """
    Edit existing File.
    """

    from filebrowser.forms import EditForm
    # QUERY / PATH CHECK
    query = request.GET
    path = get_path(query.get('dir', ''))
    filename = get_file(query.get('dir', ''), query.get('filename', ''))
    if path is None or filename is None:
        if path is None:
            msg = _('The requested Folder does not exist.')
        else:
            msg = _('The requested File does not exist.')
        request.user.message_set.create(message=msg)
        return HttpResponseRedirect(reverse("fb_browse"))
    abs_path = os.path.join(MEDIA_ROOT, DIRECTORY, path)
    file_extension = os.path.splitext(filename)[1].lower()

    if request.method == 'POST':
        form = EditForm(abs_path, filename, file_extension, request.POST)
        if form.is_valid():
            try:
                form.save()
                # MESSAGE & REDIRECT
                msg = _('Edit action was successful.')
                request.user.message_set.create(message=msg)
                redirect_url = reverse("fb_browse") + query_helper(query, "", "filename")
                return HttpResponseRedirect(redirect_url)
            except OSError, (errno, strerror):
                form.errors['name'] = forms.util.ErrorList([_('Error.')])
Ejemplo n.º 5
0
    file_extension = os.path.splitext(filename)[1].lower()

    if request.method == 'POST':
        form = EditForm(abs_path, filename, file_extension, request.POST)
        if form.is_valid():
            try:
                form.save()
                # MESSAGE & REDIRECT
                msg = _('Edit action was successful.')
                request.user.message_set.create(message=msg)
                redirect_url = reverse("fb_browse") + query_helper(query, "", "filename")
                return HttpResponseRedirect(redirect_url)
            except OSError, (errno, strerror):
                form.errors['name'] = forms.util.ErrorList([_('Error.')])
    else:
        form = EditForm(abs_path, filename, file_extension)

    return render_to_response('filebrowser/edit.html', {
        'form': form,
        'query': query,
        'file_extension': file_extension,
        'title': _(u'Edit "%s"') % filename,
        'settings_var': get_settings_var(),
        'breadcrumbs': get_breadcrumbs(query, path),
        'breadcrumbs_title': _(u'Edit')
    }, context_instance=Context(request))
rename = staff_member_required(never_cache(rename))


def versions(request):
    """