diff --git a/migrations/versions/1266f69d6574_remove_politics_registration.py b/migrations/versions/1266f69d6574_remove_politics_registration.py new file mode 100644 index 00000000..5956a69c --- /dev/null +++ b/migrations/versions/1266f69d6574_remove_politics_registration.py @@ -0,0 +1,29 @@ +""" +Removes politics registration from user model and echo range from settings + +Revision ID: 1266f69d6574 +Revises: 8fe786843072 +Create Date: 2019-04-24 11:12:10.724450 + +""" +from alembic import op +import sqlalchemy as sa +from sqlalchemy.dialects import postgresql + +# revision identifiers, used by Alembic. +revision = '1266f69d6574' +down_revision = '8fe786843072' +branch_labels = None +depends_on = None + + +def upgrade(): + op.drop_column('user_settings', 'echo_range') + op.drop_column('users', 'political_affiliation') + op.drop_column('users', 'completed_registration') + + +def downgrade(): + op.add_column('users', sa.Column('completed_registration', sa.BOOLEAN(), autoincrement=False, nullable=True)) + op.add_column('users', sa.Column('political_affiliation', postgresql.ENUM(u'left', u'center_left', u'center', u'center_right', u'right', name='politicsenum'), autoincrement=False, nullable=True)) + op.add_column('user_settings', sa.Column('echo_range', postgresql.ENUM(u'narrow', u'mid_narrow', u'mid', u'mid_wide', u'wide', name='echorangeenum'), autoincrement=False, nullable=True)) diff --git a/server/enums.py b/server/enums.py index 2517a9b2..d9bea504 100644 --- a/server/enums.py +++ b/server/enums.py @@ -1,11 +1,5 @@ import enum -# class EnumEncoder(json.JSONEncoder): -# def default(self, obj): -# if isinstance(obj, enum.Enum): -# return obj.name -# return json.JSONEncoder.default(self, obj) - class GenderEnum(enum.Enum): female = 1 @@ -27,11 +21,3 @@ class PoliticsEnum(enum.Enum): center = 3 center_right = 4 right = 5 - - -class EchoRangeEnum(enum.Enum): - narrow = 0 - mid_narrow = 1 - mid = 2 - mid_wide = 3 - wide = 4 diff --git a/server/models.py b/server/models.py index 5ab5f8d9..75eb4b56 100644 --- a/server/models.py +++ b/server/models.py @@ -7,7 +7,7 @@ from sqlalchemy.ext.hybrid import hybrid_property from server.core import db, bcrypt -from server.enums import GenderEnum, PoliticsEnum, EchoRangeEnum +from server.enums import GenderEnum, PoliticsEnum post_associations_table = db.Table('posts_associations', db.metadata, db.Column('user_id', db.Integer, db.ForeignKey('users.id')), @@ -23,7 +23,6 @@ class User(db.Model): email = db.Column(db.String(255), unique=True, nullable=False) _password = db.Column('password', db.String(255), nullable=False) registered_on = db.Column(db.DateTime, nullable=False) - completed_registration = db.Column(db.Boolean, default=True) last_login = db.Column(db.DateTime, nullable=True) last_post_fetch = db.Column(db.DateTime, nullable=True) @@ -49,8 +48,6 @@ class User(db.Model): twitter_data = db.Column(db.JSON) facebook_data = db.Column(db.JSON) - political_affiliation = db.Column(db.Enum(PoliticsEnum), default=PoliticsEnum.center) - posts = db.relationship("Post", secondary=post_associations_table, lazy='dynamic') settings = db.relationship("Settings", uselist=False, back_populates="user") rule_associations = db.relationship("UserRule", back_populates="user", cascade="delete, delete-orphan") @@ -95,7 +92,7 @@ def get_last_post_fetch(self): def get_names(self): d = {c.name: getattr(self, c.name) for c in self.__table__.columns if c.name not in [ - 'password', 'id', 'posts', 'settings', 'facebook_data', 'political_affiliation']} + 'password', 'id', 'posts', 'settings', 'facebook_data']} d['mastodon_name'] = '' d['mastodon_domain'] = '' if self.mastodon_auth: @@ -229,7 +226,6 @@ class Settings(db.Model): virality_max = db.Column(db.Float, db.CheckConstraint('virality_max<=1'), default=1) seriousness_min = db.Column(db.Float, db.CheckConstraint('seriousness_min>=0'), default=0) seriousness_max = db.Column(db.Float, db.CheckConstraint('seriousness_max<=1'), default=1) - echo_range = db.Column(db.Enum(EchoRangeEnum), default=EchoRangeEnum.narrow) politics_levels = db.Column(ARRAY(db.Integer)) rudeness_ck = db.CheckConstraint('rudeness_max>rudeness_min') @@ -237,7 +233,7 @@ class Settings(db.Model): seriousness_ck = db.CheckConstraint('seriousness_max>seriousness_min') def as_dict(self): - d = {c.name: getattr(self, c.name) for c in self.__table__.columns if c.name != 'echo_range'} + d = {c.name: getattr(self, c.name) for c in self.__table__.columns} return d def update(self, settings_dict):