コード例 #1
0
ファイル: admin.py プロジェクト: rwos/psblog
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")))
コード例 #2
0
ファイル: admin.py プロジェクト: rwos/psblog
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))))
コード例 #3
0
ファイル: admin.py プロジェクト: rwos/psblog
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"))))
コード例 #4
0
ファイル: admin.py プロジェクト: rwos/psblog
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))