Bubble [main]
Fixed issue number assignment
[1mdiff --git a/50_bubble.py b/50_bubble.py[m
[1mindex 84b55b6..edb8c1f 100644[m
[1m--- a/50_bubble.py[m
[1m+++ b/50_bubble.py[m
[36m@@ -162,7 +162,7 @@[m [mBubble is open source:[m
author_link = sub if sub else '/u/' + post.poster_name[m
[m
if is_issue_tracker:[m
[31m- src = f'=> {post.page_url()} ๐ #{post.issueid} ยท {post.title}{tag}\n'[m
[32m+[m[32m src = f'=> {post.page_url()} ๐ #{post.issueid if post.issueid else 0} ยท {post.title}{tag}\n'[m
src += shorten_text(post.summary, 200) + '\n'[m
src += f'{post.poster_avatar} {post.poster_name}{cmt}{likes} ยท {age}{bell}\n'[m
else:[m
[36m@@ -184,7 +184,7 @@[m [mBubble is open source:[m
vis_title = shorten_text(clean_title(post.summary), 100)[m
[m
if self.is_context_tracker:[m
[31m- vis_title = f'[#{post.issueid}] ' + vis_title[m
[32m+[m[32m vis_title = f'[#{post.issueid if post.issueid else 0}] ' + vis_title[m
[m
if not context or context.id != post.subspace:[m
author = f'{post.poster_name}: '[m
[36m@@ -219,7 +219,8 @@[m [mBubble is open source:[m
"""Render the final full presentation of the post, with all segments included."""[m
src = ''[m
if len(post.title):[m
[31m- src += f'# {post.title}\n\n'[m
[32m+[m[32m title_prefix = f'[#{post.issueid}] ' if post.issueid else ''[m
[32m+[m[32m src += f'# {title_prefix}{post.title}\n\n'[m
[m
last_type = None[m
for segment in self.db.get_segments(post, poll=False):[m
[1mdiff --git a/feeds.py b/feeds.py[m
[1mindex 6a85a0d..5a4f7c6 100644[m
[1m--- a/feeds.py[m
[1m+++ b/feeds.py[m
[36m@@ -102,7 +102,7 @@[m [mdef make_post_page_or_configure_feed(session):[m
if not session.is_context_tracker: # issues use the text as the title[m
db.create_segment(post, Segment.TEXT, content=seg_text)[m
db.update_post_summary(post)[m
[31m- if post.issueid != None:[m
[32m+[m[32m if session.is_context_tracker:[m
# Further content is required.[m
return 30, f'/edit/{post.id}'[m
db.publish_post(post)[m
[1mdiff --git a/model.py b/model.py[m
[1mindex 97a8421..36fcc16 100644[m
[1m--- a/model.py[m
[1m+++ b/model.py[m
[36m@@ -885,16 +885,10 @@[m [mclass Database:[m
flags = flags | Post.OMIT_FROM_FEED_FLAG[m
[m
cur = self.conn.cursor()[m
[31m- if subspace.flags & Subspace.ISSUE_TRACKER:[m
[31m- cur.execute("""[m
[31m- INSERT INTO posts (subspace, parent, user, title, flags, issueid)[m
[31m- VALUES (?, ?, ?, ?, ?, 0)[m
[31m- """, (subspace_id, parent, user.id, title, flags))[m
[31m- else:[m
[31m- cur.execute("""[m
[31m- INSERT INTO posts (subspace, parent, user, title, flags)[m
[31m- VALUES (?, ?, ?, ?, ?)[m
[31m- """, (subspace_id, parent, user.id, title, flags))[m
[32m+[m[32m cur.execute("""[m
[32m+[m[32m INSERT INTO posts (subspace, parent, user, title, flags)[m
[32m+[m[32m VALUES (?, ?, ?, ?, ?)[m
[32m+[m[32m """, (subspace_id, parent, user.id, title, flags))[m
self.commit()[m
post_id = cur.lastrowid[m
[m
[36m@@ -942,6 +936,7 @@[m [mclass Database:[m
self.commit()[m
[m
def update_post_summary(self, post):[m
[32m+[m[32m subspace = self.get_subspace(id=post.subspace)[m
# Render a concise version of the segments to be displayed in feeds,[m
# save in the `render` field.[m
segments = self.get_segments(post)[m
[36m@@ -956,7 +951,7 @@[m [mclass Database:[m
render += f'=> {seg.url} โ {seg_content}\n'[m
break[m
[m
[31m- if len(post.title) and post.issueid is None:[m
[32m+[m[32m if len(post.title) and not (subspace.flags & Subspace.ISSUE_TRACKER):[m
render += post.title[m
with_title = True[m
else:[m
[36m@@ -1010,7 +1005,8 @@[m [mclass Database:[m
self.notify_new_poll(post)[m
[m
if self.get_subspace(post.subspace).flags & Subspace.ISSUE_TRACKER and \[m
[31m- post.issueid == 0:[m
[32m+[m[32m post.issueid is None and \[m
[32m+[m[32m post.parent == 0:[m
# Time to assign a new issue number.[m
cur.execute("""[m
UPDATE posts[m