Add an "in_reply_to" column to comments

This will be used to allow comments to be a reply to another
comment, to allow for threaded discussions.

Change-Id: I87d9a59f9dae204029a8c390c4d35628f21fd390
This commit is contained in:
Adam Coldrick 2016-03-06 09:48:52 +00:00
parent 598f965899
commit 99eb2d0190
3 changed files with 46 additions and 0 deletions

View File

@ -42,6 +42,9 @@ class Comment(base.APIBase):
is_active = bool
"""Is this an active comment, or has it been deleted?"""
in_reply_to = int
"""The ID of the parent comment, if any."""
class SystemInfo(base.APIBase):
"""Represents the system information for Storyboard

View File

@ -0,0 +1,40 @@
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
"""Allow comments to be replies to other comments
Revision ID: 055
Revises: 054
Create Date: 2016-03-05 23:35:40.379333
"""
# revision identifiers, used by Alembic.
revision = '055'
down_revision = '054'
from alembic import op
import sqlalchemy as sa
def upgrade(active_plugins=None, options=None):
op.add_column(
'comments', sa.Column('in_reply_to', sa.Integer(), nullable=True))
op.create_foreign_key(
'comments_ibfk_1', 'comments', 'comments', ['in_reply_to'], ['id'])
def downgrade(active_plugins=None, options=None):
op.drop_constraint('comments_ibfk_1', 'comments', type_='foreignkey')
op.drop_column('comments', 'in_reply_to')

View File

@ -490,8 +490,11 @@ class TimeLineEvent(ModelBuilder, Base):
class Comment(FullText, ModelBuilder, Base):
__fulltext_columns__ = ['content']
id = Column(Integer, primary_key=True)
content = Column(MYSQL_MEDIUM_TEXT)
is_active = Column(Boolean, default=True)
in_reply_to = Column(Integer, ForeignKey('comments.id'))
parent = relationship('Comment', remote_side=[id], backref='children')
# Subscription and notifications