def get(self,entrytype,blogId): blog = Weblog.get_by_id(int(blogId)) template_values = { 'blog': blog, 'action': "deleteBlog", } self.generate('blog_delete.html',template_values)
def get(self): pages = Weblog.all().filter('entrytype','page').order('-date') #menus = Menu.all().order('order') template_values = { 'pages':pages, # 'menus':menus, } self.generate('admin/admin_pages.html',template_values)
def get(self,tags=None): blogs = Weblog.all().filter('entrytype =','post').order('-date').fetch(10) last_updated = datetime.datetime.now() if blogs and blogs[0]: last_updated = blogs[0].date last_updated = last_updated.strftime("%Y-%m-%dT%H:%M:%SZ") for blog in blogs: blog.formatted_date = blog.date.strftime("%Y-%m-%dT%H:%M:%SZ") self.response.headers['Content-Type'] = 'application/atom+xml' self.generate('atom.xml',{'blogs':blogs,'last_updated':last_updated})
def post(self,entrytype,blogId): blog= Weblog.get_by_id(int(blogId)) if(blog is not None): blogReactions = blog.weblogreactions_set for reaction in blogReactions: reaction.delete() blog.delete() util.flushBlogMonthCache(blog) util.flushBlogPagesCache() self.redirect('/')
def post(self): blogId_ = self.request.get('blogId') blog= Weblog.get_by_id(int(blogId_)) if(blog is None): self.redirect('/') return blogReaction = WeblogReactions() blogReaction.weblog = blog blogReaction.content = self.request.get('text_input') blogReaction.authorWebsite = self.request.get('website') blogReaction.authorEmail = self.request.get('mail') blogReaction.user = self.request.get('name_input') cpedialog = util.getCPedialog() clientIp = self.request.remote_addr if(cpedialog.recaptcha_enable): challenge = self.request.get('recaptcha_challenge_field') response = self.request.get('recaptcha_response_field') cResponse = captcha.submit( challenge, response, cpedialog.recaptcha_private_key, clientIp) if not cResponse.is_valid: captchahtml = None captchahtml = captcha.displayhtml( public_key = cpedialog.recaptcha_public_key, use_ssl = False, error = cResponse.error_code) reactions = db.GqlQuery("select * from WeblogReactions where weblog =:1 order by date", blog) template_values = { 'blog': blog, 'reactions': reactions, 'blogReaction': blogReaction, 'captchahtml': captchahtml, } self.generate('blog_view.html',template_values) return True user = users.get_current_user() # [Add] not login is no add reaction if not user: self.redirect('/'+blog.relative_permalink()) return if user is not None: blogReaction.author = user blogReaction.authorEmail = str(user.email()) blogReaction.user = str(user.nickname()) blogReaction.userIp = clientIp blogReaction.save() util.flushRecentReactions() self.redirect('/'+blog.relative_permalink()) return
def get(self, encoded_tag): #tag = re.sub('(%25|%)(\d\d)', lambda cmatch: chr(string.atoi(cmatch.group(2), 16)), encoded_tag) # No urllib.unquote in AppEngine? #tag = urllib.unquote(encoded_tag.encode('utf8')) tag = encoded_tag blogs = Weblog.all().filter('tags', tag).order('-date') recentReactions = util.getRecentReactions() template_values = { 'blogs':blogs, 'tag':tag, 'recentReactions':recentReactions, } self.generate('tag.html',template_values)
def RefreshTag(self,request): tag = Tag.get_by_id(int(request.get("id"))) query_weblog = Weblog.all().filter('tags', tag.tag) if query_weblog: tag.entrycount = query_weblog.count() tag.put() tagJson = {} tagJson["id"] = str(tag.key().id()) tagJson["key"] = str(tag.key()) tagJson["tag"] = str(tag.tag) tagJson["entrycount"] = tag.entrycount tagJson["valid"] = tag.valid return tagJson
def getRecentFeatured(): key_ = "blog_recentFeatured_key" try: recentFeatured = memcache.get(key_) except Exception: recentFeatured = None if recentFeatured is None: recentFeatured = Weblog.all().filter('tags', "featured").order('-date').fetch(10) memcache.add(key=key_, value=recentFeatured, time=3600) else: getLogger(__name__).debug("getRecentFeatured from cache. ") return recentFeatured
def post(self,entrytype,blogId): blog= Weblog.get_by_id(int(blogId)) if(blog is None): self.redirect('/') if blog.entrytype == 'page': blog.permalink = self.request.get('permalink') blog.title = self.request.get('title_input') blog.content = self.request.get('text_input') blog.tags_commas = self.request.get('tags') user = users.get_current_user() blog.lastModifiedDate = datetime.datetime.now() blog.lastModifiedBy = user blog.update() util.flushBlogMonthCache(blog) util.flushBlogPagesCache() self.redirect('/'+blog.relative_permalink())
def getBlogPagination(page): key_ = "blog_pages_key" try: obj_pages = memcache.get(key_) except Exception: obj_pages = None if obj_pages is None or page not in obj_pages: blogs_query = Weblog.gql('WHERE entrytype=:1 ORDER BY date desc','post') try: cpedialog = getCPedialog() obj_page = GqlQueryPaginator(blogs_query,page,cpedialog.num_post_per_page).page() if obj_pages is None: obj_pages = {} obj_pages[page] = obj_page memcache.add(key=key_, value=obj_pages, time=3600) except InvalidPage: return None else: logging.debug("getBlogPagination from cache. ") return obj_pages[page]
def getBlogPagination(page): key_ = "blog_pages_key" try: obj_pages = memcache.get(key_) except Exception: obj_pages = None if obj_pages is None or page not in obj_pages: blogs_query = Weblog.gql('WHERE entrytype=:1 ORDER BY date desc','post') try: cpedialog = getCPedialog() #todo:get blog count from the Counter object obj_page = YUIPaginator(blogs_query,page,cpedialog.num_post_per_page) if obj_pages is None: obj_pages = {} obj_pages[page] = obj_page memcache.add(key=key_, value=obj_pages, time=3600) except InvalidPage: return None else: getLogger(__name__).debug("getBlogPagination from cache. ") return obj_pages[page]
def get(self): blogs = Weblog.all().order('-date') template_values = { 'allblogs': blogs, } self.generate('site_map.html',template_values)
def post(self,entrytype): preview = self.request.get('preview') submitted = self.request.get('submitted') user = users.get_current_user() blog = Weblog() blog.title = self.request.get('title_input') blog.content = self.request.get('text_input') blog.author = user blog.authorEmail = user.email() blog.tags_commas = self.request.get('tags') if entrytype == 'page': blog.entrytype = entrytype template_values = { 'entrytype': entrytype, 'blog': blog, 'preview': preview, 'submitted': submitted, 'action': "addBlog", 'tags': self.request.get('tags'), } if preview == '1' and submitted !='1': self.generate('blog_add.html',template_values) else: if submitted =='1': try: permalink = util.get_permalink(blog.date,translate.translate(util.u(blog.title,'utf-8'))) if not permalink: raise Exception except Exception: template_values.update({'error':'Generate permanent link for blog error, please retry it.'}) self.generate('blog_add.html',template_values) return #check the permalink duplication problem. maxpermalinkBlog = db.GqlQuery("select * from Weblog where permalink >= :1 and permalink < :2 order by permalink desc",permalink, permalink+u"\xEF\xBF\xBD").get() if maxpermalinkBlog is not None: permalink = maxpermalinkBlog.permalink+"1" blog.permalink = permalink blog.save() util.flushBlogMonthCache(blog) util.flushBlogPagesCache() util.flushTagList() util.flushRecentFeatured() self.redirect('/'+blog.relative_permalink()) return
def get(self): pages = Weblog.all().filter("entrytype", "page").order("-date") menus = Menu.all().order("order") template_values = {"pages": pages, "menus": menus} self.generate("admin/admin_pages.html", template_values)