예제 #1
0
파일: users.py 프로젝트: alexbelich/PromTal
def get_user_comments_in_news(id):
    page = request.args.get('page', 1, type=int)
    per_page = min(request.args.get('per_page', current_app.config['PROFILE_COMMENTS_PER_PAGE'],
                                    type=int), current_app.config['PROFILE_COMMENTS_PER_PAGE'])
    user = User.query.get_or_404(id)
    user_comments_in_news = (
        db.session.query(News.id,
                         News.title,
                         func.count(Comment.id),
                         func.max(Comment.modify_datetime).label('last_modified'))
        .join(Comment, News.id == Comment.entity_id)
        .filter(Comment.author == user)
        .group_by(News.id)
        .order_by(desc('last_modified'))
    )
    p = BaseQuery.paginate(user_comments_in_news, page, per_page)

    return {
        'paginator': {
            'page': page,
            'pages': p.pages,
        },
        'objects': [
            dict(zip(['news_id', 'news_title', 'comments_amount', 'last_modified_date'], map(str, x)))
            for x in p.items
        ],
    }
예제 #2
0
파일: users.py 프로젝트: cpwr/PromTal
def get_user_comments_in_news(id):
    page = request.args.get('page', 1, type=int)
    per_page = min(
        request.args.get('per_page',
                         current_app.config['PROFILE_COMMENTS_PER_PAGE'],
                         type=int),
        current_app.config['PROFILE_COMMENTS_PER_PAGE'])
    user = User.query.get_or_404(id)
    user_comments_in_news = (db.session.query(
        News.id, News.title, func.count(Comment.id),
        func.max(Comment.modify_datetime).label('last_modified')).join(
            Comment, News.id == Comment.entity_id).filter(
                Comment.author == user).group_by(News.id).order_by(
                    desc('last_modified')))
    p = BaseQuery.paginate(user_comments_in_news, page, per_page)

    return {
        'paginator': {
            'page': page,
            'pages': p.pages,
        },
        'objects': [
            dict(
                zip([
                    'news_id', 'news_title', 'comments_amount',
                    'last_modified_date'
                ], map(str, x))) for x in p.items
        ],
    }
예제 #3
0
파일: users.py 프로젝트: alexbelich/PromTal
def get_user_news(id):
    page = request.args.get('page', 1, type=int)
    per_page = min(request.args.get('per_page', current_app.config['PROFILE_NEWS_PER_PAGE'],
                                    type=int), current_app.config['PROFILE_NEWS_PER_PAGE'])
    user = User.query.get_or_404(id)
    user_news = (
        db.session.query(News.id, News.title, News.datetime)
        .filter(News.author == user)
        .order_by(News.datetime.desc())
    )
    p = BaseQuery.paginate(user_news, page, per_page)

    return {
        'paginator': {
            'page': page,
            'pages': p.pages,
        },
        'objects': [dict(zip(['news_id', 'news_title', 'created_date'], map(str, x))) for x in p.items],
    }
예제 #4
0
파일: users.py 프로젝트: cpwr/PromTal
def get_user_news(id):
    page = request.args.get('page', 1, type=int)
    per_page = min(
        request.args.get('per_page',
                         current_app.config['PROFILE_NEWS_PER_PAGE'],
                         type=int),
        current_app.config['PROFILE_NEWS_PER_PAGE'])
    user = User.query.get_or_404(id)
    user_news = (db.session.query(News.id, News.title, News.datetime).filter(
        News.author == user).order_by(News.datetime.desc()))
    p = BaseQuery.paginate(user_news, page, per_page)

    return {
        'paginator': {
            'page': page,
            'pages': p.pages,
        },
        'objects': [
            dict(zip(['news_id', 'news_title', 'created_date'], map(str, x)))
            for x in p.items
        ],
    }