示例#1
0
	def post(self):
		def check(cate):
			parent=cate.parent_cat
			skey=cate.key()
			while parent:
				if parent.key()==skey:
					return False
				parent=parent.parent_cat
			return True

		action=self.param("action")
		name=self.param("name")
		slug=self.param("slug")
		parentkey=self.param('parentkey')
		key=self.param('key')
		
		ObjCache.flush_multi(is_htmlpage=True)

		vals={'action':action,'postback':True}

		try:

				if action=='add':
					cat= Category(name=name,slug=slug)
					if not (name and slug):
						raise Exception(_('Please input name and slug.'))
					if parentkey:
						cat.parent_cat=Category.get(parentkey)

					cat.put()
					self.redirect('/admin/categories')

					#vals.update({'result':True,'msg':_('Saved ok')})
					#self.render2('views/admin/category.html',vals)
				elif action=='edit':

						cat=Category.get(key)
						cat.name=name
						cat.slug=slug
						if not (name and slug):
							raise Exception(_('Please input name and slug.'))
						if parentkey:
							cat.parent_cat=Category.get(parentkey)
							if not check(cat):
								raise Exception(_('A circle declaration found.'))
						else:
							cat.parent_cat=None
						cat.put()
						self.redirect('/admin/categories')

		except Exception ,e :
			if cat.is_saved():
				cates=[c for c in Category.all() if c.key()!=cat.key()]
			else:
				cates= Category.all()

			vals.update({'result':False,'msg':e.message,'category':cat,'key':key,'categories':cates})
			self.render2('views/admin/category.html',vals)
示例#2
0
	def post(self,slug=None):
		try:
			linkcheck= self.request.get_all('checks')
			ObjCache.flush_multi(is_htmlpage=True)
			for key in linkcheck:
				cat=Category.get(key)
				if cat:
					cat.delete()
		finally:
			self.redirect('/admin/categories')
示例#3
0
	def post(self):
		old_theme=g_blog.theme_name
		str_options= self.param('str_options').split(',')
		for name in str_options:
			value=self.param(name)
			setattr(g_blog,name,value)

		bool_options= self.param('bool_options').split(',')
		for name in bool_options:
			value=self.param(name)=='on'
			setattr(g_blog,name,value)

		int_options= self.param('int_options').split(',')
		for name in int_options:
			try:
				value=int( self.param(name))
				setattr(g_blog,name,value)
			except:
				pass
		float_options= self.param('float_options').split(',')
		for name in float_options:
			try:
				value=float( self.param(name))
				setattr(g_blog,name,value)
			except:
				pass


		if old_theme !=g_blog.theme_name:
			g_blog.get_theme()


		g_blog.owner=self.login_user
		g_blog.author=g_blog.owner.nickname()
		g_blog.save()
		gblog_init()
		vals={'themes':ThemeIterator()}
		ObjCache.flush_multi(is_htmlpage=True)
		self.render2('views/admin/setup.html',vals)
示例#4
0
	def post(self,slug='post'):
		try:
			linkcheck= self.request.get_all('checks')
			for id in linkcheck:
				kid=int(id)

				entry=Entry.get_by_id(kid)
				if entry.entrytype=='PAGE':
					ObjCache.flush_multi(is_htmlpage=True)
				else:
					ObjCache.flush_multi(is_htmlpage=True, entry_id=entry.post_id)
					ObjCache.flush_multi(is_htmlpage=True, is_aggregation=True)
				entry.delete()
				g_blog.entrycount-=1
		finally:
			ObjCache.update_basic_info(update_pages=True)
			self.redirect('/admin/entries/'+slug)