def get(self, tag_name): page = int(self.request.get('page', 1)) offset = (page - 1) * self.LIST_PER_PAGE tag = Tag.get_by_name(tag_name) self.list = Tag.get_article_list(tag=tag, limit=self.LIST_PER_PAGE, offset=offset) if tag else None self.count = tag.count if tag else 0 return Action.Result.DEFAULT
def tag_index(tag_name, post_per_page=10): current_page = 1 if 'page' in request.args.keys(): current_page = int(request.args.get('page')) try: tag = Tag.get_by_name(tag_name) posts = Page(post_per_page, current_page, tag).posts() more = len(posts) - post_per_page == 1 except LeanCloudError as e: if e.code == 101: tag, posts, more = None, None, False else: raise e return render_template('index.html', tag=tag, posts=posts, more=more, page=current_page)
def new_post(): author = User.get_current() title, content = request.form['title'], request.form['content'] tag_names = parse_tag_names(request.form['tags']) f = request.files['featuredImage'] if f.filename == '': featuredImage = None else: featuredImage = Attachment(f.filename, data=f.stream) if featuredImage and not allowed_file(featuredImage.extension): flash('warning', 'Upload a proper image.') return redirect(url_for('post_form')) post = Post() post.title = title post.content = content post.markedContent = markdown(content) post.author = author if featuredImage: post.featuredImage = featuredImage acl = ACL() acl.set_public_read_access(True) acl.set_write_access(author.id, True) post.set_acl(acl) post.save() tags = [] for name in tag_names: tag = Tag.get_by_name(name) if not tag: tag = Tag() tag.name = name tags.append(tag) for tag in tags: m = TagPostMap() m.set({'tag': tag, 'post': post}) m.save() tag.increment('post_count') Tag.save_all(tags) return redirect(url_for('show_post', post_id=post.id))
def get(self, tag_name): t = Tag.get_by_name(tag_name) if t == None: # TODO: error page? return # Gather all the recipes for all the QIs for this ingredient recipes = uniq([Recipe.get(key) for key in t.tagged], lambda x: x.title) buckets,keys = bucketize(recipes, lambda x: x.title) templatevalues = RequestContext(self.request, { 'tag' : t, 'recipes' : recipes, 'buckets' : buckets, 'keys' : keys }) path = os.path.join(os.path.dirname(__file__), 'recipes_by_tag.html') self.response.out.write(template.render(path, templatevalues))
def get_item_from_rank(): resp = Resp() rank_id = request.args.get("rank_id", None) tag_name = request.args.get("tag_name", None) item_ids_from_rank = ItemRank.query.with_entities("item_id").filter_by( rank_id=rank_id ).all() if tag_name: tag = Tag.get_by_name(tag_name).first() if tag: item_ids_from_tag = ItemTag.query.with_entities("item_id").filter_by( tag_id=tag.id ).all() else: item_ids_from_tag = [] item_ids = list(set(item_ids_from_rank) & set(item_ids_from_tag)) result = [] for item_id in item_ids: item = Item.get_by_id(item_id) result.append(item) resp.data = result return resp