示例#1
0
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(
示例#2
0
# **************************************************************************
# 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"))
示例#3
0
# **************************************************************************
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)
示例#4
0
# 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,