Files
myapp-full/myapp/ns_user/views_guest.py

83 lines
2.0 KiB
Python
Raw Normal View History

__author__ = 'RemiZOffAlex'
__copyright__ = '(c) RemiZOffAlex'
__email__ = 'remizoffalex@mail.ru'
2020-08-17 19:57:37 +03:00
from flask import abort, render_template
2024-03-03 20:46:52 +03:00
from .. import app, lib, models
2020-02-08 20:36:12 +03:00
def user_id(id):
"""Пользователь
"""
pagedata = {}
user = models.db_session.query(
models.User
).filter(
2020-08-17 19:57:37 +03:00
models.User.id == id
2020-02-08 20:36:12 +03:00
).first()
if user is None:
abort(404)
2024-03-03 20:46:52 +03:00
pagedata['user'] = user
2020-02-08 20:36:12 +03:00
pagedata['title'] = '{} - {}'.format(user.name, app.config['TITLE'])
2022-05-03 22:34:52 +03:00
body = render_template('/guest/user.html', pagedata=pagedata)
2020-02-08 20:36:12 +03:00
return body
2024-03-03 20:46:52 +03:00
def user_pages(id: int, page: int = 1):
2020-02-17 01:05:56 +03:00
"""Список статей пользователя
"""
user = models.db_session.query(
models.User
).filter(
2020-08-17 19:57:37 +03:00
models.User.id == id
2020-02-17 01:05:56 +03:00
).first()
if user is None:
abort(404)
2024-03-03 20:46:52 +03:00
pagedata = {}
2020-02-17 01:05:56 +03:00
pagedata['user'] = user.as_dict()
pagedata['title'] = '{} - {}'.format(user.name, app.config['TITLE'])
2024-03-03 20:46:52 +03:00
pages = models.db_session.query(
models.Page
).filter(
models.Page.user_id == id
).order_by(
models.Page.title.asc()
)
pagedata['pagination'] = lib.Pagination(
page,
app.config['ITEMS_ON_PAGE'],
pages.count()
)
pagedata['pagination'].url = '/user/{}/pages'.format(user_id)
pagedata['pages'] = pages.all()
2020-02-17 01:05:56 +03:00
2022-05-03 22:34:52 +03:00
body = render_template('/guest/user_pages.html', pagedata=pagedata)
2020-02-17 01:05:56 +03:00
return body
2024-03-03 20:46:52 +03:00
def users_list(page: int = 1):
2022-05-03 22:34:52 +03:00
"""Список пользователей
"""
pagedata = {}
pagedata['title'] = 'Список пользователей - ' + app.config['TITLE']
2020-02-17 01:05:56 +03:00
2024-03-03 20:46:52 +03:00
users = models.db_session.query(
models.User
).order_by(
models.User.name.asc()
)
pagedata['pagination'] = lib.Pagination(
page,
app.config['ITEMS_ON_PAGE'],
users.count()
)
pagedata['pagination'].url = '/users'
pagedata['users'] = users.all()
2020-02-17 01:05:56 +03:00
2022-05-03 22:34:52 +03:00
body = render_template('/guest/users.html', pagedata=pagedata)
return body