Bubble [main]
User: Viewing post/comment index by date or subspace
[1mdiff --git a/user.py b/user.py[m
[1mindex 76dc465..bb4ac3c 100644[m
[1m--- a/user.py[m
[1m+++ b/user.py[m
[36m@@ -424,8 +424,8 @@[m [mdef make_dashboard_page(session):[m
page += sub.subspace_link()[m
[m
page += '\n## Index\n'[m
[31m- page += f'=> /u/{user.name}/index/posts {plural(db.count_posts(user=user, ignore_omit_flags=True), "post")}\n'[m
[31m- page += f'=> /u/{user.name}/index/comments {plural(db.count_posts(user=user, is_comment=True), "comment")}\n'[m
[32m+[m[32m page += f'=> /u/{user.name}/index/posts?feed {plural(db.count_posts(user=user, ignore_omit_flags=True), "post")}\n'[m
[32m+[m[32m page += f'=> /u/{user.name}/index/comments?feed {plural(db.count_posts(user=user, is_comment=True), "comment")}\n'[m
[m
return page[m
[m
[36m@@ -435,26 +435,31 @@[m [mdef make_user_index_page(session, mode):[m
user = session.c_user[m
page = ''[m
is_posts = not (mode == 'comments')[m
[32m+[m[32m is_feed = clean_query(session.req) == 'feed'[m
[m
page += f'# {user.name}: {"Posts" if is_posts else "Comments"}\n'[m
page += '=> /dashboard Back to Dashboard\n'[m
[32m+[m[32m page += f'=> ? List by subspace\n' if is_feed else f'=> ?feed List by date\n'[m
[32m+[m
[m
if is_posts:[m
[31m- posts = db.get_posts(user=user, draft=False, comment=False, sort_by_subspace=True)[m
[32m+[m[32m posts = db.get_posts(user=user, draft=False, comment=False, sort_by_subspace=not is_feed)[m
cur_sub = None[m
ymd = None[m
for post in posts:[m
[31m- # Headings.[m
[31m- if cur_sub != post.subspace:[m
[31m- cur_sub = post.subspace[m
[31m- ymd = None[m
[31m- page += f"\n## {post.sub_name}\n"[m
[32m+[m[32m if not is_feed:[m
[32m+[m[32m # Headings.[m
[32m+[m[32m if cur_sub != post.subspace:[m
[32m+[m[32m cur_sub = post.subspace[m
[32m+[m[32m ymd = None[m
[32m+[m[32m page += f"\n## {post.sub_name}\n"[m
post_ymd = post.ymd_date(tz=session.tz)[m
if ymd != post_ymd[:7]:[m
ymd = post_ymd[:7][m
page += f"\n### {ymd}\n"[m
[m
# List entry linking to post[m
[32m+[m[32m prefix = f'{"u" if post.sub_owner else "s"}/{post.sub_name}: ' if is_feed else ''[m
title = post.title if post.title else shorten_text(strip_links(clean_title(post.summary)), 120)[m
if post.issueid:[m
title = f'[#{post.issueid}] ' + title[m
[36m@@ -466,33 +471,36 @@[m [mdef make_user_index_page(session, mode):[m
meta.append(f'👍 {post.num_likes}')[m
if post.tags:[m
meta.append(post.tags)[m
[31m- entry = f'=> {post.page_url()} {post_ymd} {title}{SEP + SEP.join(meta) if meta else ""}\n'[m
[32m+[m[32m entry = f'=> {post.page_url()} {post_ymd} {prefix}{title}{SEP + SEP.join(meta) if meta else ""}\n'[m
[m
page += entry[m
[m
else:[m
comments = db.get_posts(user=user, draft=False, comment=True,[m
[31m- sort_by_subspace=True, sort_by_post=True)[m
[32m+[m[32m sort_by_subspace=not is_feed, sort_by_post=not is_feed)[m
cur_parent = None[m
cur_sub = None[m
for cmt in comments:[m
[31m- # Headings.[m
[31m- if cur_sub != cmt.subspace:[m
[31m- cur_sub = cmt.subspace[m
[31m- ymd = None[m
[31m- page += f"\n## {cmt.sub_name}\n"[m
[32m+[m[32m if not is_feed:[m
[32m+[m[32m # Headings.[m
[32m+[m[32m if cur_sub != cmt.subspace:[m
[32m+[m[32m cur_sub = cmt.subspace[m
[32m+[m[32m ymd = None[m
[32m+[m[32m page += f"\n## {cmt.sub_name}\n"[m
if cur_parent != cmt.parent:[m
cur_parent = cmt.parent[m
parent_post = db.get_post(id=cur_parent)[m
if parent_post:[m
[32m+[m[32m prefix = prefix = f'{"u" if cmt.sub_owner else "s"}/{cmt.sub_name}: ' if is_feed else ''[m
parent_title = parent_post.title if parent_post.title else f'"{shorten_text(strip_links(clean_title(parent_post.summary)), 120)}"'[m
if parent_post.issueid:[m
parent_title = f'[#{parent_post.issueid}] ' + parent_title[m
else:[m
if not session.user or session.user.id != cmt.user:[m
continue # Don't show other people's comments on deleted posts.[m
[32m+[m[32m prefix = ''[m
parent_title = f"Deleted post (ID:{cur_parent})"[m
[31m- page += f"\n{parent_title}\n"[m
[32m+[m[32m page += f"\n{prefix}{parent_title}\n"[m
cmt_ymd = cmt.ymd_date(tz=session.tz)[m
title = shorten_text(strip_links(clean_title(cmt.summary)), 120)[m
entry = f'=> {cmt.page_url()} {cmt_ymd} "{title}"\n'[m