From 44eb3c0caffc1fbe52d647f1344487d9776b3455 Mon Sep 17 00:00:00 2001 From: expo Date: Mon, 6 Aug 2012 12:19:48 +0200 Subject: Editing no longer changes files more than nesecary. Removed TinyMCE editing. /Sumbit/Submit --- flatpages/views.py | 33 +++++++++++++++++++++++---------- 1 file changed, 23 insertions(+), 10 deletions(-) (limited to 'flatpages/views.py') diff --git a/flatpages/views.py b/flatpages/views.py index 0999d31..6fb68bb 100644 --- a/flatpages/views.py +++ b/flatpages/views.py @@ -57,9 +57,9 @@ def flatpage(request, path): if path.endswith(".htm") or path.endswith(".html"): html = o.read() - m = re.search(r"(.*).*]*>(.*)", html, re.DOTALL + re.IGNORECASE) + m = re.search(r"(.*)<\s*head([^>]*)>(.*)<\s*/head\s*>(.*)<\s*body([^>]*)>(.*)<\s*/body\s*>(.*)", html, re.DOTALL + re.IGNORECASE) if m: - head, body = m.groups() + preheader, headerattrs, head, postheader, bodyattrs, body, postbody = m.groups() else: return HttpResponse(html + "Page could not be split into header and body") m = re.search(r"(.*)", head, re.DOTALL + re.IGNORECASE) @@ -107,13 +107,13 @@ def editflatpage(request, path): filepath = os.path.normpath(settings.EXPOWEB + path) o = open(filepath, "r") html = o.read() - m = re.search(r"(.*).*]*>(.*)", html, re.DOTALL + re.IGNORECASE) + m = re.search(r"(.*)]*)>(.*)(.*)]*)>(.*)(.*)", html, re.DOTALL + re.IGNORECASE) if m: filefound = True - head, body = m.groups() - linksmatch = re.match('(.*)', body, re.DOTALL + re.IGNORECASE) + preheader, headerargs, head, postheader, bodyargs, body, postbody = m.groups() + linksmatch = re.match('(.*)(.*)', body, re.DOTALL + re.IGNORECASE) if linksmatch: - body, = linksmatch.groups() + body, links = linksmatch.groups() if re.search(r"iso-8859-1", html): body = unicode(body, "iso-8859-1") else: @@ -126,9 +126,22 @@ def editflatpage(request, path): flatpageForm = FlatPageForm(request.POST) # A form bound to the POST data if flatpageForm.is_valid():# Form valid therefore write file f = open(filepath, "w") - template = loader.get_template('dataformat/flatfile.html') - context = Context({'form': flatpageForm.cleaned_data}) - f.write(template.render(context)) + if filefound: + headmatch = re.match(r"(.*).*(.*)", head, re.DOTALL + re.IGNORECASE) + if headmatch: + head = headmatch.group(1) + "" + flatpageForm.cleaned_data["title"] + "" + headmatch.group(2) + else: + head = "" + flatpageForm.cleaned_data["title"] + "" + else: + head = "" + flatpageForm.cleaned_data["title"] + "" + preheader = "" + headerargs = "" + postheader = "" + bodyargs = "" + postbody = "" + body = flatpageForm.cleaned_data["html"] + body = body.replace("\r", "") + f.write("%s%s%s\n%s%s" % (preheader, headerargs, head, postheader, bodyargs, body, postbody)) f.close() return HttpResponseRedirect(reverse('flatpage', args=[path])) # Redirect after POST else: @@ -146,4 +159,4 @@ def editflatpage(request, path): class FlatPageForm(forms.Form): title = forms.CharField(widget=forms.TextInput(attrs={'size':'60'})) - html = forms.CharField(widget=TinyMCE(attrs={'cols': 80, 'rows': 20})) + html = forms.CharField(widget=forms.Textarea()) -- cgit v1.2.3