from flask_babelex import lazy_gettext as _ from flask_login import UserMixin, current_user from itsdangerous import BadSignature, SignatureExpired, URLSafeTimedSerializer from pytz import all_timezones from sqlalchemy import event from sqlalchemy.orm import object_session from werkzeug.security import check_password_hash, generate_password_hash from flask_maple.mail import MailMixin from flask_maple.models import ModelMixin from forums.common.records import load_online_sign_users from forums.count import Count from forums.extension import db, mail user_follower = db.Table( 'user_follower', db.Column('user_id', db.Integer, db.ForeignKey('users.id')), db.Column('follower_id', db.Integer, db.ForeignKey('users.id'))) class User(db.Model, UserMixin, ModelMixin, MailMixin): __tablename__ = 'users' id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(81), unique=True, nullable=False) email = db.Column(db.String(81), unique=True, nullable=False) password = db.Column(db.String(256), nullable=False) is_superuser = db.Column(db.Boolean, default=False) is_confirmed = db.Column(db.Boolean, default=False) register_time = db.Column(db.DateTime, default=datetime.now()) last_login = db.Column(db.DateTime, default=datetime.now()) followers = db.relationship(
# ************************************************************************** # Copyright © 2016 jianglin # File Name: models.py # Author: jianglin # Email: [email protected] # Created: 2016-12-15 20:46:13 (CST) # Last Update:星期三 2017-12-13 16:06:36 (CST) # By: # Description: # ************************************************************************** from flask_login import current_user from flask_maple.models import ModelMixin from forums.extension import db tag_follower = db.Table( 'tag_follower', db.Column('tag_id', db.Integer, db.ForeignKey('tags.id')), db.Column('follower_id', db.Integer, db.ForeignKey('user.id'))) tag_topic = db.Table( 'tag_topic', db.Column('tag_id', db.Integer, db.ForeignKey('tags.id')), db.Column('topic_id', db.Integer, db.ForeignKey('topics.id'))) class Tags(db.Model, ModelMixin): __tablename__ = 'tags' id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(64), nullable=False) description = db.Column(db.String(128), nullable=False) parent_id = db.Column( db.Integer, db.ForeignKey( 'tags.id', ondelete="CASCADE"))
# ************************************************************************** from datetime import datetime from flask import current_app from flask_login import current_user from flask_maple.models import ModelMixin, ModelTimeMixin, ModelUserMixin from forums.api.forums.models import Board from forums.api.user.models import User from forums.common.models import CommonUserMixin from forums.extension import db from forums.count import Count from forums.filters import safe_markdown, safe_clean, markdown topic_follower = db.Table( 'topic_follower', db.Column('topic_id', db.Integer, db.ForeignKey('topics.id')), db.Column('follower_id', db.Integer, db.ForeignKey('users.id'))) class Topic(db.Model, ModelMixin): __tablename__ = 'topics' __searchable__ = ['title', 'content'] CONTENT_TYPE_TEXT = '0' CONTENT_TYPE_MARKDOWN = '1' CONTENT_TYPE_ORGMODE = '2' CONTENT_TYPE = (('0', 'text'), ('1', 'markdown'), ('2', 'org-mode')) id = db.Column(db.Integer, primary_key=True) title = db.Column(db.String(81), nullable=False)
# File Name: models.py # Author: jianglin # Email: [email protected] # Created: 2017-03-28 17:58:59 (CST) # Last Update:星期三 2017-3-29 19:10:23 (CST) # By: # Description: # ************************************************************************** from datetime import datetime from flask_maple.models import ModelMixin, ModelTimeMixin, ModelUserMixin from flask_login import current_user from forums.api.user.models import User from forums.extension import db topic_collect = db.Table( 'topic_collect', db.Column('topic_id', db.Integer, db.ForeignKey('topics.id')), db.Column('collect_id', db.Integer, db.ForeignKey('collects.id'))) collect_follower = db.Table( 'collect_follower', db.Column('collect_id', db.Integer, db.ForeignKey('collects.id')), db.Column('follower_id', db.Integer, db.ForeignKey('users.id'))) class Collect(db.Model, ModelMixin): __tablename__ = 'collects' id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(32), nullable=False) description = db.Column(db.String(256), nullable=True) is_hidden = db.Column(db.Boolean, default=False) created_at = db.Column(db.DateTime,