def POST(self,slug='post'): action=self.param("action") title=self.param("post_title") content=self.param('content') tags=self.param("tags") cats=self.request.get_all('cats') key=self.param('key') if self.param('publish')!='': published=True elif self.param('unpublish')!='': published=False else: published=self.param('published')=='True' allow_comment=self.parambool('allow_comment') allow_trackback=self.parambool('allow_trackback') entry_slug=self.param('slug') entry_parent=self.paramint('entry_parent') menu_order=self.paramint('menu_order') entry_excerpt=self.param('excerpt').replace('\n','<br />') password=self.param('password') sticky=self.parambool('sticky') is_external_page=self.parambool('is_external_page') target=self.param('target') external_page_address=self.param('external_page_address') def mapit(cat): return {'name':cat.name,'slug':cat.slug,'select':cat.slug in cats} vals={'action':action,'postback':True,'cats':Category.all(),'entrytype':slug, 'cats':map(mapit,Category.all()), 'entry':{ 'title':title,'content':content,'strtags':tags,'key':key,'published':published, 'allow_comment':allow_comment, 'allow_trackback':allow_trackback, 'slug':entry_slug, 'entry_parent':entry_parent, 'excerpt':entry_excerpt, 'menu_order':menu_order, 'is_external_page':is_external_page, 'target':target, 'external_page_address':external_page_address, 'password':password, 'sticky':sticky} } if not (title and (content or (is_external_page and external_page_address))): vals.update({'result':False, 'msg':_('Please input title and content.')}) self.render2('views/admin/entry.html',vals) else: if action=='add': entry= Entry(title=title,content=content) entry.settags(tags) entry.entrytype=slug entry.slug=entry_slug.replace(" ","-") entry.entry_parent=entry_parent entry.menu_order=menu_order entry.excerpt=entry_excerpt entry.is_external_page=is_external_page entry.target=target entry.external_page_address=external_page_address newcates=[] entry.allow_comment=allow_comment entry.allow_trackback=allow_trackback entry.author=self.author.user entry.author_name=self.author.dispname entry.password=password entry.sticky=sticky if cats: for cate in cats: c=Category.all().filter('slug =',cate) if c: newcates.append(c[0].key()) entry.categorie_keys=newcates; entry.save(published) if published: smsg=_('Saved ok. <a href="/blog/%(link)s" target="_blank">View it now!</a>') else: smsg=_('Saved ok.') vals.update({'action':'edit','result':True,'msg':smsg%{'link':str(entry.link)},'entry':entry}) self.render2('views/admin/entry.html',vals) if published and entry.allow_trackback and self.blog.allow_pingback: try: autoPingback(str(entry.fullurl),HTML=content) except: pass elif action=='edit': #try: if 1: entry=Entry.get(key) entry.title=title entry.content=content entry.slug=entry_slug.replace(' ','-') entry.entry_parent=entry_parent entry.menu_order=menu_order entry.excerpt=entry_excerpt entry.is_external_page=is_external_page entry.target=target entry.external_page_address=external_page_address entry.settags(tags) entry.author=self.author.user entry.author_name=self.author.dispname entry.password=password entry.sticky=sticky newcates=[] if cats: for cate in cats: c=Category.all().filter('slug =',cate) if c: newcates.append(c[0].key()) entry.categorie_keys=newcates; entry.allow_comment=allow_comment entry.allow_trackback=allow_trackback entry.save(published) if published: smsg=_('Saved ok. <a href="/blog/%(link)s" target="_blank">View it now!</a>') else: smsg=_('Saved ok.') vals.update({'result':True,'msg':smsg%{'link':str(entry.link)},'entry':entry}) self.render2('views/admin/entry.html',vals) #except: if 0: vals.update({'result':False,'msg':_('Error:Entry can''t been saved.')}) self.render2('views/admin/entry.html',vals)
def submit_post(request): published=False if request.method == 'POST': title = request.POST['title'] content=request.POST.get('content','') excerpt = request.POST.get('excerpt','') category_id = request.POST.get("category",1) tags = request.POST.get('tags','') slug=request.POST.get('slug','') allow_comment = request.POST.get('allow_comment',False) allow_pingback = request.POST.get('allow_pingback',False) action=request.POST.get('action','') posttype=request.POST.get('posttype','post') sticky=request.POST.get('sticky',False) sticky= True and sticky=='sticky' allow_comment= True and allow_comment == 'open' allow_pingback= True and allow_pingback == 'open' if request.POST.get('publish'): published = True elif request.POST.get('unpublish'): published = False else: published = request.POST.get('published')=='True' category=Category.objects.get(id=int(category_id)) ctx={'action':action} if not (title and content): ctx.update({'msg':'Please input title and content.'}) return render_response(request,"admin/post.html",ctx) if action== 'add': entry = Entry(title=title,content=content,excerpt=excerpt,\ category=category,slug=slug.replace(" ","-")) entry.tags=tags entry.allow_comment=allow_comment entry.allow_pingback=allow_pingback entry.entrytype=posttype entry.sticky=sticky entry.author=request.user if posttype and posttype =='page': menu_order=request.POST.get('order',0) if menu_order: entry.menu_order=menu_order entry.date=datetime.now() entry.save(published) def mapcategoy(cat): return {"id":cat.id,"name":cat.name,\ "slug":cat.slug,"select":cat.id == int(category_id)} ctx.update({'action':'edit','entry':entry,\ 'entrytype':posttype,'cats':map(mapcategoy,Category.objects.all())}) elif action== 'edit': postid = request.POST.get('postid','') if postid: entry = Entry.objects.get(id=postid) entry.tags=tags entry.title=title entry.content=content entry.excerpt=excerpt entry.slug=slug.replace(" ","-") entry.entrytype=posttype entry.sticky=sticky entry.category=category entry.allow_pingback=allow_pingback if posttype and posttype =='page': menu_order=request.POST.get('order',0) entry.menu_order=menu_order entry.allow_comment=allow_comment entry.save(published) def mapcategoy(cat): return {"id":cat.id,"name":cat.name,"slug":cat.slug,"select":cat.id == entry.category.id} ctx.update({'action':'edit','entry':entry,\ 'entrytype':posttype,'cats':map(mapcategoy,Category.objects.all())}) else: pass return render_response(request,"admin/post.html",ctx)