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.")])
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), )
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.')])
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): """