Browse Source

Hideable migration

Alec Nikolas Reiter 7 years ago
parent
commit
f639ff7763

+ 7 - 6
flaskbb/forum/models.py

@@ -10,13 +10,14 @@
 """
 from datetime import timedelta
 
-from flask import url_for, abort
+from flask import abort, url_for
 from sqlalchemy.orm import aliased
 
 from flaskbb.extensions import db
-from flaskbb.utils.helpers import (slugify, get_categories_and_forums,
-                                   get_forums, time_utcnow, topic_is_unread)
-from flaskbb.utils.database import CRUDMixin, UTCDateTime, make_comparable
+from flaskbb.utils.database import (CRUDMixin, HideableCRUDMixin, UTCDateTime,
+                                    make_comparable)
+from flaskbb.utils.helpers import (get_categories_and_forums, get_forums,
+                                   slugify, time_utcnow, topic_is_unread)
 from flaskbb.utils.settings import flaskbb_config
 
 
@@ -137,7 +138,7 @@ class Report(db.Model, CRUDMixin):
 
 
 @make_comparable
-class Post(db.Model, CRUDMixin):
+class Post(HideableCRUDMixin, db.Model):
     __tablename__ = "posts"
 
     id = db.Column(db.Integer, primary_key=True)
@@ -282,7 +283,7 @@ class Post(db.Model, CRUDMixin):
 
 
 @make_comparable
-class Topic(db.Model, CRUDMixin):
+class Topic(HideableCRUDMixin, db.Model):
     __tablename__ = "topics"
 
     id = db.Column(db.Integer, primary_key=True)

+ 43 - 0
migrations/331500ad355b_make_post_and_topic_hideable_models.py

@@ -0,0 +1,43 @@
+"""Make post and topic hideable models
+
+Revision ID: 331500ad355b
+Revises:
+Create Date: 2017-09-03 17:03:06.460391
+
+"""
+from alembic import op
+import sqlalchemy as sa
+from flaskbb.utils.database import UTCDateTime
+
+
+# revision identifiers, used by Alembic.
+revision = '331500ad355b'
+down_revision = None
+branch_labels = ('default',)
+depends_on = None
+
+
+def upgrade():
+    # ### commands auto generated by Alembic - please adjust! ###
+    with op.batch_alter_table('posts', schema=None) as batch_op:
+        batch_op.add_column(sa.Column('hidden', sa.Boolean(), nullable=True))
+        batch_op.add_column(sa.Column('hidden_at', UTCDateTime(timezone=True), nullable=True))
+
+    with op.batch_alter_table('topics', schema=None) as batch_op:
+        batch_op.add_column(sa.Column('hidden', sa.Boolean(), nullable=True))
+        batch_op.add_column(sa.Column('hidden_at', UTCDateTime(timezone=True), nullable=True))
+
+    # ### end Alembic commands ###
+
+
+def downgrade():
+    # ### commands auto generated by Alembic - please adjust! ###
+    with op.batch_alter_table('topics', schema=None) as batch_op:
+        batch_op.drop_column('hidden_at')
+        batch_op.drop_column('hidden')
+
+    with op.batch_alter_table('posts', schema=None) as batch_op:
+        batch_op.drop_column('hidden_at')
+        batch_op.drop_column('hidden')
+
+    # ### end Alembic commands ###