Skip to content

Commit

Permalink
add page to personal page
Browse files Browse the repository at this point in the history
  • Loading branch information
trim21 committed Aug 25, 2024
1 parent e4dfe8e commit c062487
Showing 1 changed file with 39 additions and 17 deletions.
56 changes: 39 additions & 17 deletions server/index.py
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ async def index(
rows = []
else:
rows = await pg.fetch(
f"select * from {table} where {where} order by {order_by} limit $2 offset $3 ",
f"select * from {table} where {where} order by {order_by} limit $2 offset $3",
PatchState.Pending,
_page_size,
(page - 1) * _page_size,
Expand Down Expand Up @@ -112,20 +112,29 @@ async def show_user_contrib(
user_id: int,
request: Request,
patch_type: Annotated[PatchType, params.Parameter(query="type")] = PatchType.Subject,
page: Annotated[int, params.Parameter(query="page", ge=1)] = 1,
) -> Template:
if patch_type == PatchType.Subject:
rows = await pg.fetch(
"select * from view_subject_patch where from_user_id = $1 order by created_at desc",
user_id,
)
table = "view_subject_patch"
elif patch_type == PatchType.Episode:
rows = await pg.fetch(
"select * from view_episode_patch where from_user_id = $1 order by created_at desc",
user_id,
)
table = "view_episode_patch"
else:
raise BadRequestException(f"invalid type {patch_type}")

total = await pg.fetchval(f"select count(1) from {table} where from_user_id = $1", user_id)

if total == 0:
total_page = 1
else:
total_page = (total + _page_size - 1) // _page_size

rows = await pg.fetch(
f"select * from {table} where from_user_id = $1 order by created_at desc limit $2 offset $3",
user_id,
_page_size,
(page - 1) * _page_size,
)

nickname = await pg.fetchval("select nickname from patch_users where user_id = $1", user_id)
if not nickname:
raise NotFoundException()
Expand All @@ -136,6 +145,8 @@ async def show_user_contrib(
"list.html.jinja2",
context={
"rows": rows,
"total_page": total_page,
"current_page": page,
"users": users,
"auth": request.auth,
"user_id": user_id,
Expand All @@ -150,21 +161,30 @@ async def show_user_contrib(
async def show_user_review(
user_id: int,
request: Request,
page: Annotated[int, params.Parameter(query="page", ge=1)] = 1,
patch_type: Annotated[PatchType, params.Parameter(query="type")] = PatchType.Subject,
) -> Template:
if patch_type == PatchType.Subject:
rows = await pg.fetch(
"select * from view_subject_patch where wiki_user_id = $1 order by created_at desc",
user_id,
)
table = "view_subject_patch"
elif patch_type == PatchType.Episode:
rows = await pg.fetch(
"select * from view_episode_patch where wiki_user_id = $1 order by created_at desc",
user_id,
)
table = "view_episode_patch"
else:
raise BadRequestException(f"invalid type {patch_type}")

total = await pg.fetchval(f"select count(1) from {table} where wiki_user_id = $1", user_id)

if total == 0:
total_page = 1
else:
total_page = (total + _page_size - 1) // _page_size

rows = await pg.fetch(
f"select * from {table} where wiki_user_id = $1 order by created_at desc limit $2 offset $3",
user_id,
_page_size,
(page - 1) * _page_size,
)

nickname = await pg.fetchval("select nickname from patch_users where user_id = $1", user_id)
if not nickname:
raise NotFoundException()
Expand All @@ -176,6 +196,8 @@ async def show_user_review(
context={
"rows": rows,
"users": users,
"total_page": total_page,
"current_page": page,
"auth": request.auth,
"user_id": user_id,
"title": f"{nickname} 的历史审核",
Expand Down

0 comments on commit c062487

Please sign in to comment.