fix issue that made it so when u unpin a child comment, if theres another child comment in the same chain, it gets effectively unpinned as well
parent
a7ed2707d0
commit
aeb3f76e7b
|
@ -187,7 +187,7 @@ class Comment(Base):
|
||||||
is_bot = Column(Boolean, default=False)
|
is_bot = Column(Boolean, default=False)
|
||||||
stickied = Column(String)
|
stickied = Column(String)
|
||||||
stickied_utc = Column(Integer)
|
stickied_utc = Column(Integer)
|
||||||
stickied_child_id = Column(Integer)
|
num_of_pinned_children = Column(Integer, default=0)
|
||||||
sentto = Column(Integer, ForeignKey("users.id"))
|
sentto = Column(Integer, ForeignKey("users.id"))
|
||||||
app_id = Column(Integer, ForeignKey("oauth_apps.id"))
|
app_id = Column(Integer, ForeignKey("oauth_apps.id"))
|
||||||
upvotes = Column(Integer, default=1)
|
upvotes = Column(Integer, default=1)
|
||||||
|
@ -279,7 +279,7 @@ class Comment(Base):
|
||||||
if self.replies2 != None:
|
if self.replies2 != None:
|
||||||
return self.replies2
|
return self.replies2
|
||||||
|
|
||||||
replies = g.db.query(Comment).filter_by(parent_comment_id=self.id).order_by(Comment.stickied, Comment.stickied_child_id)
|
replies = g.db.query(Comment).filter_by(parent_comment_id=self.id).order_by(Comment.stickied, Comment.num_of_pinned_children.desc())
|
||||||
if not self.parent_post: sort='old'
|
if not self.parent_post: sort='old'
|
||||||
return sort_objects(sort, replies, Comment).all()
|
return sort_objects(sort, replies, Comment).all()
|
||||||
|
|
||||||
|
@ -520,11 +520,14 @@ class Comment(Base):
|
||||||
c = self
|
c = self
|
||||||
while c.level > 2:
|
while c.level > 2:
|
||||||
c = c.parent_comment
|
c = c.parent_comment
|
||||||
c.stickied_child_id = self.id
|
c.num_of_pinned_children += 1
|
||||||
g.db.add(c)
|
g.db.add(c)
|
||||||
|
|
||||||
def unpin_parents(self):
|
def unpin_parents(self):
|
||||||
cleanup = g.db.query(Comment).filter_by(stickied_child_id=self.id).all()
|
c = self
|
||||||
for c in cleanup:
|
while c.level > 2:
|
||||||
c.stickied_child_id = None
|
c = c.parent_comment
|
||||||
|
c.num_of_pinned_children -= 1
|
||||||
|
if c.num_of_pinned_children < 0:
|
||||||
|
c.num_of_pinned_children = 0
|
||||||
g.db.add(c)
|
g.db.add(c)
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
alter table comments add column num_of_pinned_children int default 0 not null;
|
||||||
|
update comments set num_of_pinned_children=1 where stickied_child_id is not null;
|
||||||
|
|
||||||
|
alter table comments alter column num_of_pinned_children drop default;
|
||||||
|
alter table comments drop column stickied_child_id;
|
Loading…
Reference in New Issue