def show_single(post_id): """ Show/edit a single post. """ p = psblog.get_post(post_id) # TODO: proper form handling for html module o="" o+="<form action=\"?page=save\" method=\"POST\">" o+="<input type=\"text\" name=\"heading\" value=\""+p["meta"]["heading"]+"\"><br>" o+="<input type=\"text\" name=\"category\" value=\""+p["meta"]["category"]+"\"><br>" o+="<input type=\"hidden\" name=\"id\" value=\""+post_id+"\"><br>" o+="<input type=\"hidden\" name=\"save\" value=\"save\"><br>" o+="<textarea style='width:100%;height:40em;' name=\"text\">"+p["text"].decode("utf8")+"</textarea><br>" o+="<input type=\"submit\"><br>" o+="</form>" i = 0 for c in p["comments"]: # TODO: make delete link a POSTing form o2=html.a("?page=del_comment&id="+post_id+"&cid="+str(i), "delete") o2+="<br>" for key,item in c.items(): # XXX HACK try: o2+=key+" - "+item.decode("utf8")+"<br>" except UnicodeEncodeError: o2+=key+" - "+item+"<br>" o += html.block(o2) i += 1 o+=html.block(p["html"]) print(html.render_admin(o.encode("utf8")))
def show_list(): """ Show a list of all posts. """ posts = psblog.get_all_posts() ls_data = [] for p in posts: ls_data.append("".join([ p["meta"]["datetime"].strftime("%x")," - ", html.a("?page=single&id="+psblog.post_id(p["meta"]), p["meta"]["heading"]), " - ", str(len(p["comments"])), " comment(s)"])) print(html.render_admin(html.block(html.ul(ls_data))))
def add_new(params): """ Add a new post to the blog. """ if "save" in params: add_post( params["heading"].value, params["category"].value, params["text"].value) else: # TODO: form handling, form handling, form handling!!! o="" o+="<form action='?page=add_new&save=save' method=\"POST\">" o+="Heading: <input type=\"text\" name=\"heading\"><br>" o+="Category: <input type=\"text\" name=\"category\"><br>" o+="<input type=\"hidden\" name=\"save\" value=\"save\"><br>" o+="<textarea style='width:100%;height:40em;' name=\"text\"></textarea><br>" o+="<input type=\"submit\"><br>" o+="</form>" print(html.render_admin(html.block(o.encode("utf8"))))
def show_overview(): """ Show an overview over the blog. """ posts = psblog.get_all_posts() comments_num = 0 for p in posts: comments_num += len(p["comments"]) o = [html.h(2, "Overview"), html.p(html.a("?page=list", str(len(posts))+" Posts")), html.p(html.a("#TODO", str(comments_num)+" Comments")), html.p(html.a("?page=add_new", "Add New Post")), html.p(html.a("?page=compile", "Re-Compile"))] o = html.block("".join(o)) o += html.block(html.p("last compile log:"+html.pre( psblog.readfile(config.log_dir+"compile.log")))) log_ls = psblog.readfile(config.log_dir+"psblog.log").splitlines() log_ls.reverse() o += html.block(html.p("blog log:"+html.pre("\n".join(log_ls)))) print(html.render_admin(o))