diff options
author | Martin Green <martin.speleo@gmail.com> | 2011-08-08 09:51:47 +0100 |
---|---|---|
committer | Martin Green <martin.speleo@gmail.com> | 2011-08-08 09:51:47 +0100 |
commit | 13fe89af9fe03382b25079f159c2bff27df32c0d (patch) | |
tree | b3ed54488c31935674c506fbedeb5fa1f75d5770 /flatpages/views.py | |
parent | d8fe39ae86989d99da3e66ef88dc754e56139d2d (diff) | |
download | troggle-13fe89af9fe03382b25079f159c2bff27df32c0d.tar.gz troggle-13fe89af9fe03382b25079f159c2bff27df32c0d.tar.bz2 troggle-13fe89af9fe03382b25079f159c2bff27df32c0d.zip |
Allow for editing flatpage titles, and made a common uneditable list of links.
Diffstat (limited to 'flatpages/views.py')
-rw-r--r-- | flatpages/views.py | 32 |
1 files changed, 24 insertions, 8 deletions
diff --git a/flatpages/views.py b/flatpages/views.py index f411bfa..1a445ea 100644 --- a/flatpages/views.py +++ b/flatpages/views.py @@ -35,6 +35,7 @@ def flatpage(request, path): if path.startswith("noinfo") and settings.PUBLIC_SITE and not request.user.is_authenticated(): + print "flat path noinfo", path return HttpResponseRedirect(reverse("auth_login") + '?next=%s' % request.path) if path.endswith("/") or path == "": @@ -56,17 +57,22 @@ def flatpage(request, path): html = o.read() m = re.search(r"<head>(.*)</head>.*<body>(.*)</body>", html, re.DOTALL) - mwithid = re.search(r'<head>(.*)</head>.*<body id="([^"]*)">(.*)</body>', html, re.DOTALL) if m: head, body = m.groups() - bodyid = None - elif mwithid: - head, bodyid, body = mwithid.groups() else: return HttpResponse(html + "Page could not be split into header and body") + m = re.search(r"<title>(.*)</title>", head, re.DOTALL) + if m: + title, = m.groups() + else: + title = "" + linksmatch = re.match('(.*)<ul id="links">', body, re.DOTALL) + if linksmatch: + body, = linksmatch.groups() if re.search(r"iso-8859-1", html): body = unicode(body, "iso-8859-1") - return render_with_context(request, 'flatpage.html', {'editable': True, 'path': path, 'head': head, 'body': body, "bodyid": bodyid}) + body.strip + return render_with_context(request, 'flatpage.html', {'editable': True, 'path': path, 'head': head, 'body': body, 'homepage': (path == "index.htm")}) else: return HttpResponse(o.read(), mimetype=getmimetype(path)) @@ -106,6 +112,9 @@ def editflatpage(request, path): if m: head, body = m.groups() if re.search(r"iso-8859-1", html): + linksmatch = re.match('(.*)<ul id="links">', body, re.DOTALL) + if linksmatch: + body, = linksmatch.groups() body = unicode(body, "iso-8859-1") else: return HttpResponse("Page could not be split into header and body") @@ -114,13 +123,20 @@ def editflatpage(request, path): 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, 'head': head}) + context = Context({'form': flatpageForm.cleaned_data}) f.write(template.render(context)) f.close() return HttpResponseRedirect(reverse('flatpage', args=[path])) # Redirect after POST else: - flatpageForm = FlatPageForm({"html": body}) + m = re.search(r"<title>(.*)</title>", head, re.DOTALL) + if m: + title, = m.groups() + else: + title = "" + flatpageForm = FlatPageForm({"html": body, "title": title}) return render_with_context(request, 'editflatpage.html', {'path': path, 'form': flatpageForm, }) class FlatPageForm(forms.Form): - html = forms.CharField(widget=TinyMCE(attrs={'cols': 80, 'rows': 30})) + title = forms.CharField(widget=forms.TextInput(attrs={'size':'60'})) + + html = forms.CharField(widget=TinyMCE(attrs={'cols': 80, 'rows': 30})) |