Editierbare Sidebar
This commit is contained in:
parent
20a7202005
commit
ca02abf1d3
5 changed files with 100 additions and 14 deletions
63
tycker.py
63
tycker.py
|
@ -52,7 +52,9 @@ class Entry(sqlobject.SQLObject):
|
|||
title = sqlobject.UnicodeCol()
|
||||
content = sqlobject.UnicodeCol()
|
||||
|
||||
|
||||
class Sidebar(sqlobject.SQLObject):
|
||||
sidebar = sqlobject.UnicodeCol()
|
||||
|
||||
def render(filename, **values):
|
||||
stream = loader.load(filename).generate(**values)
|
||||
return stream.render("html", doctype="html")
|
||||
|
@ -65,27 +67,36 @@ def get_link(index):
|
|||
|
||||
def update_static_html():
|
||||
entries = list(Entry.select().orderBy("-timestamp"))
|
||||
sidebar = Sidebar.select()[0]
|
||||
try:
|
||||
sidebar_text = Sidebar.select()[0].sidebar
|
||||
except (AttriubuteError, IndexError) as exc:
|
||||
sidebar_text = ""
|
||||
file_index = 1
|
||||
while entries:
|
||||
current = entries[:PAGE_SIZE]
|
||||
entries = entries[PAGE_SIZE:]
|
||||
remaining_entries = entries
|
||||
while remaining_entries:
|
||||
current = remaining_entries[:PAGE_SIZE]
|
||||
remaining_entries = remaining_entries[PAGE_SIZE:]
|
||||
current_filename = get_filename(file_index)
|
||||
if file_index > 1:
|
||||
previous_link = get_link(file_index - 1)
|
||||
else:
|
||||
previous_link = None
|
||||
if entries:
|
||||
if remaining_entries:
|
||||
next_link = get_link(file_index + 1)
|
||||
else:
|
||||
next_link = None
|
||||
values = { "entries": current,
|
||||
"prev_link": previous_link,
|
||||
"next_link": next_link,
|
||||
values = {"entries": current,
|
||||
"prev_link": previous_link,
|
||||
"next_link": next_link,
|
||||
"sidebar_text": sidebar_text,
|
||||
}
|
||||
# WAP unterstuetzt wohl nur Latin-1
|
||||
rendered = render("display.html", **values).encode("latin-1")
|
||||
open(current_filename, "w").write(rendered)
|
||||
subprocess.call(["html2wml", "-n", current_filename, "-o", "ticker%d.wml" % file_index], cwd=OUTPUT_DIR)
|
||||
file_index += 1
|
||||
subprocess.call(["html2wml", "-n", "ticker1.html", "-o", "ticker1.wml"], cwd=OUTPUT_DIR)
|
||||
|
||||
|
||||
@bobo.query('/submit')
|
||||
def submit_entry(entry_id=None, title=None, content=None, date=None):
|
||||
|
@ -109,6 +120,17 @@ def submit_entry(entry_id=None, title=None, content=None, date=None):
|
|||
entry.date = date
|
||||
update_static_html()
|
||||
return bobo.redirect(BASE_URL)
|
||||
|
||||
@bobo.query('/submit_sidebar')
|
||||
def submit_sb(sidebar=None):
|
||||
sidebar = sidebar.strip()
|
||||
try:
|
||||
entry = Sidebar.select()[0]
|
||||
entry.sidebar = sidebar
|
||||
except IndexError:
|
||||
Sidebar(sidebar=sidebar)
|
||||
update_static_html()
|
||||
return bobo.redirect(BASE_URL)
|
||||
|
||||
@bobo.query('/delete')
|
||||
def delete_entry(entry_id):
|
||||
|
@ -129,7 +151,7 @@ def create_entry():
|
|||
values = {}
|
||||
values["date_format"] = DATE_FORMAT_FULL
|
||||
values["static_url"] = get_link(1)
|
||||
return render("admin_create.html", **values)
|
||||
return render("create.html", **values)
|
||||
|
||||
@bobo.query('/edit')
|
||||
def edit_entries():
|
||||
|
@ -137,7 +159,19 @@ def edit_entries():
|
|||
values["entries"] = Entry.select().orderBy("-timestamp")
|
||||
values["date_format"] = DATE_FORMAT_FULL
|
||||
values["static_url"] = get_link(1)
|
||||
return render("admin_edit.html", **values)
|
||||
return render("edit.html", **values)
|
||||
|
||||
@bobo.query('/sidebar')
|
||||
def edit_sidebar():
|
||||
entries_sb = list(Sidebar.select())
|
||||
if len(entries_sb) == 0:
|
||||
sidebar = Sidebar(sidebar="")
|
||||
else:
|
||||
sidebar = entries_sb[0]
|
||||
values = {}
|
||||
values["sidebar"] = sidebar
|
||||
values["static_url"] = get_link(1)
|
||||
return render("sidebar.html", **values)
|
||||
|
||||
@bobo.query('')
|
||||
def redirect_base():
|
||||
|
@ -149,5 +183,12 @@ for table in (Entry, ):
|
|||
if not table.tableExists():
|
||||
table.createTable()
|
||||
|
||||
for table in (Sidebar, ):
|
||||
#table.dropTable()
|
||||
if not table.tableExists():
|
||||
table.createTable()
|
||||
#Sidebar(sidebar='Test')
|
||||
|
||||
application = bobo.Application(bobo_resources=__name__)
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue