def __transfer_textversion_to_new_author(statement_uid, old_author_uid, new_author_uid):
"""
Sets a new author for the given textversion and creates a row in RevokedContentHistory
:param statement_uid: Statement.uid
:param old_author_uid: User.uid
:param new_author_uid: User.uid
:return: Boolean
"""
logger('QueryHelper', '__revoke_statement', 'Textversion of {} will change author from {} to {}'.format(statement_uid, old_author_uid, new_author_uid))
db_textversion = DBDiscussionSession.query(TextVersion).filter(and_(TextVersion.statement_uid == statement_uid,
TextVersion.author_uid == old_author_uid)).all() # TODO #432
if not db_textversion:
return False
for textversion in db_textversion:
textversion.author_uid = new_author_uid
DBDiscussionSession.add(textversion)
DBDiscussionSession.add(RevokedContentHistory(old_author_uid, new_author_uid, textversion_uid=textversion.uid))
DBDiscussionSession.flush()
transaction.commit()
return True
评论列表
文章目录