|
|
|
@ -25,12 +25,12 @@ def index():
|
|
|
|
|
return redirect(url_for('main.posts'))
|
|
|
|
|
|
|
|
|
|
# @bp.route('/')
|
|
|
|
|
@bp.route('/post', defaults={'page': 1}
|
|
|
|
|
)
|
|
|
|
|
@bp.route('/post', defaults={'page': 1})
|
|
|
|
|
@bp.route('/post/<int:page>')
|
|
|
|
|
def posts(page):
|
|
|
|
|
def tags_prepare(posts):
|
|
|
|
|
tags = db.session.query(Tag, func.array_agg(posts.c.id)).join(posts, Tag.posts).group_by(Tag.id).all()
|
|
|
|
|
# tags = db.session.query(Tag, func.array_agg(posts.c.id)).join(posts, Tag.posts).group_by(Tag.id).all()
|
|
|
|
|
tags = db.session.query(Tag, func.array_agg(Post.id)).join(Tag.posts).filter(Post.id.in_([p.id for p in posts])).group_by(Tag.id).all()
|
|
|
|
|
|
|
|
|
|
# tagset = set()
|
|
|
|
|
# taglist = list()
|
|
|
|
@ -59,22 +59,22 @@ def posts(page):
|
|
|
|
|
# page = int(args.get('page') or 1)
|
|
|
|
|
return (tags, matched_ratings)
|
|
|
|
|
|
|
|
|
|
posts_on_page = 4
|
|
|
|
|
posts_on_page = 1
|
|
|
|
|
|
|
|
|
|
f_tags, f_rating = parse_args()
|
|
|
|
|
posts_query = Post.query
|
|
|
|
|
if len(f_tags)>0:
|
|
|
|
|
posts_query = posts_query.join(Post.tags).group_by(Post.id).filter(Tag.content.in_(f_tags)).having(func.count(Post.id)==len(f_tags))
|
|
|
|
|
posts_query = posts_query.filter(Post.rating.in_(f_rating)).order_by(Post.created).offset((page-1)*posts_on_page).limit(posts_on_page)
|
|
|
|
|
posts_query = posts_query.filter(Post.rating.in_(f_rating)).order_by(Post.created) #.offset((page-1)*posts_on_page).limit(posts_on_page)
|
|
|
|
|
|
|
|
|
|
posts = posts_query.all()
|
|
|
|
|
tags = tags_prepare(posts_query.subquery())
|
|
|
|
|
posts = posts_query.paginate(page, posts_on_page)
|
|
|
|
|
tags = tags_prepare(posts.items)
|
|
|
|
|
|
|
|
|
|
flash(parse_args())
|
|
|
|
|
# flash(posts)
|
|
|
|
|
# flash(posts.items)
|
|
|
|
|
# flash(tags)
|
|
|
|
|
|
|
|
|
|
return render_template('index.html', posts=posts, tags=tags)
|
|
|
|
|
return render_template('index.html', posts=posts.items, tags=tags, pagination=posts, query_replace=query_replace)
|
|
|
|
|
|
|
|
|
|
@bp.route('/post/show/<id>')
|
|
|
|
|
def post_show(id):
|
|
|
|
|