def add_article_form(self): return form.Form( form.Textbox('name', form.notnull, form.Validator('name already exists.', lambda x: not articles.name_exist_p(x)), description = 'Name:', class_="form-control"), form.Textbox('title',form.notnull,description = 'Title:',class_="form-control"), #form.Textbox('parent',description="Parent Name"), form.Dropdown('parent', ["NEW_TOPIC"]+articles.get_all_first_level(), form.notnull, description="Parent Name:", class_="form-control"), form.Textarea('content',description="Content",class_="form-control",rows="10"), form.Button('submit', type='submit', value='OK Publish this article!!',class_="btn btn-primary"), validators = [ form.Validator("Parent Not Exist. If this is a first level article, use 'NEW_TOPIC", lambda i:(i.parent=="NEW_TOPIC" or articles.parent_sans_p(i.parent))) ] )
def POST(self): ipt = web.input(_unicode=True) if 'article' in ipt and articles.name_exist_p(ipt.article): article_info = articles.get_article_by_name(ipt.article) s = mww.ListGroup(session.get_session().actions).render() l = mww.Panel('Settings',s) aaf = mww.MyForm(self.alter_article_form()(article_info),'/cumt/AlterArticle') asf = mww.MyForm(self.article_select_form(),'/cumt/AlterArticle') asf.form.fill(ipt) r1 = mww.Panel('Article Select',asf.render_css()) r2 = mww.Panel('Alter Article',aaf.render_css()) return render.l3r9(left=l.render(),right=r1.render()+r2.render()) elif 'name' in ipt and 'parent' in ipt and 'has_child_p' in ipt and articles.parent_sans_p(ipt.parent): # TODO result check articles.update(ipt.aid,content = ipt.content,title=ipt.title,parent=ipt.parent,has_child_p=ipt.has_child_p) web.config._title_list = articles.gen_title_list() return "success" else: myf = mww.MyForm(self.article_select_form(),'/cumt/AlterArticle') s = mww.ListGroup(session.get_session().actions).render() l = mww.Panel('Settings',s) r = mww.Panel('Article Select',myf.render_css()) return render.l3r9(left=l.render(),right=r.render())