Bubble [main]
Fixed counting posts for the feed pager
[1mdiff --git a/model.py b/model.py[m
[1mindex 21d4d4f..b4d83c2 100644[m
[1m--- a/model.py[m
[1m+++ b/model.py[m
[36m@@ -1374,28 +1374,37 @@[m [mclass Database:[m
return self.get_post(id=post_id)[m
return None[m
[m
[31m- def count_posts(self, user=None, subspace=None, draft=False, filter_by_followed=None,[m
[31m- filter_issue_status=None):[m
[31m- cond = ['parent=0'] # no comments[m
[32m+[m[32m def count_posts(self, user=None, subspace=None, draft=False,[m
[32m+[m[32m filter_by_followed=None, filter_issue_status=None):[m
[32m+[m[32m cond = ['p.parent=0'] # no comments[m
values = [][m
filter = ''[m
if filter_by_followed:[m
filter = Database.FOLLOW_FILTER_JOIN[m
values.append(filter_by_followed.id)[m
if user != None:[m
[31m- cond.append('user=?')[m
[32m+[m[32m cond.append('p.user=?')[m
values.append(user.id)[m
if subspace != None:[m
[31m- cond.append('subspace=?')[m
[32m+[m[32m cond.append('p.subspace=?')[m
values.append(subspace.id)[m
[32m+[m[32m else:[m
[32m+[m[32m # Need filter out posts from subspaces that are flagged for omission.[m
[32m+[m[32m cond.append(f'(s.flags & {Subspace.OMIT_FROM_ALL_FLAG})=0')[m
if filter_issue_status != None:[m
cond.append('p.tags NOT LIKE ?' if filter_issue_status else \[m
'p.tags LIKE ?')[m
values.append('%✔︎%')[m
[31m- cond.append('is_draft=?')[m
[32m+[m[32m cond.append('p.is_draft=?')[m
values.append(draft)[m
cur = self.conn.cursor()[m
[31m- cur.execute(f"SELECT COUNT(id) FROM posts AS p {filter} WHERE {' AND '.join(cond)}", values)[m
[32m+[m[32m cur.execute(f"""[m
[32m+[m[32m SELECT COUNT(p.id)[m
[32m+[m[32m FROM posts p[m
[32m+[m[32m JOIN subspaces s ON p.subspace=s.id[m
[32m+[m[32m {filter}[m
[32m+[m[32m WHERE {' AND '.join(cond)}[m
[32m+[m[32m """, values)[m
for (count,) in cur:[m
return count[m
return 0[m