added topic listing

This commit is contained in:
2022-05-01 09:51:03 +02:00
parent 3b7b3b4483
commit 0a307fc953
27 changed files with 386 additions and 175 deletions

View File

@@ -3,16 +3,18 @@ import datetime #<- will be used to set default dates on models
from sqlalchemy import or_
from paginate_sqlalchemy import SqlalchemyOrmPage #<- provides pagination
from ..models.blog_record import BlogRecord
from ..models.blog_record import BlogRecord, Topics, Tags
from markdown2 import Markdown
class BlogRecordService(object):
@classmethod
def all(cls, request):
query = request.dbsession.query(BlogRecord)
return query.order_by(sa.desc(BlogRecord.created))
def by_topic(cls, request, topic):
query = request.dbsession.query(BlogRecord).join(Tags, Tags.topic == BlogRecord.topic, Tags.tag == BlogRecord.tag)
query = query.filter(BlogRecord.topic == topic)
query = query.order_by(BlogRecord.tag, BlogRecord.title).all()
return query
@classmethod
def by_criteria(cls, request, criteria):
@@ -27,18 +29,18 @@ class BlogRecordService(object):
return query.get(_id)
@classmethod
def get_paginator(cls, request, page=1):
def get_last_five(cls, request):
# gest the last 5 items modified
query = request.dbsession.query(BlogRecord)
query = query.order_by(sa.desc(BlogRecord.created))
query_params = request.GET.mixed()
query = query.order_by(sa.desc(BlogRecord.edited)).limit(5).all()
return query
def url_maker(link_page):
# replace page param with values generated by paginator
query_params['page'] = link_page
return request.current_route_url(_query=query_params)
return SqlalchemyOrmPage(query, page, items_per_page=5,
url_maker=url_maker)
@classmethod
def get_tags_byTopic(cls, request, topic):
# gest the last 5 items modified
query = request.dbsession.query(Tags).filter(Tags.topic == topic)
query = query.order_by(Tags.tag).all()
return query
@classmethod
def proc_after_create(cls, request, _id):