예제 #1
0
from datetime import timedelta

from flask import url_for, abort
from sqlalchemy.orm import aliased

from flaskbb.extensions import db
from flaskbb.utils.helpers import (slugify, get_categories_and_forums,
                                   get_forums, time_utcnow)
from flaskbb.utils.database import CRUDMixin, UTCDateTime
from flaskbb.utils.settings import flaskbb_config

moderators = db.Table(
    'moderators',
    db.Column('user_id',
              db.Integer(),
              db.ForeignKey('users.id'),
              nullable=False),
    db.Column('forum_id',
              db.Integer(),
              db.ForeignKey('forums.id', use_alter=True, name="fk_forum_id"),
              nullable=False))

topictracker = db.Table(
    'topictracker',
    db.Column('user_id',
              db.Integer(),
              db.ForeignKey('users.id'),
              nullable=False),
    db.Column('topic_id',
              db.Integer(),
              db.ForeignKey('topics.id',
                            use_alter=True,
예제 #2
0
파일: models.py 프로젝트: jslink/flaskbb
from werkzeug.security import generate_password_hash, check_password_hash
from flask import url_for
from flask_login import UserMixin, AnonymousUserMixin

from flaskbb._compat import max_integer
from flaskbb.extensions import db, cache
from flaskbb.exceptions import AuthenticationError
from flaskbb.utils.settings import flaskbb_config
from flaskbb.utils.database import CRUDMixin
from flaskbb.forum.models import (Post, Topic, topictracker, TopicsRead,
                                  ForumsRead)
from flaskbb.message.models import Conversation

groups_users = db.Table(
    'groups_users',
    db.Column('user_id', db.Integer(), db.ForeignKey('users.id')),
    db.Column('group_id', db.Integer(), db.ForeignKey('groups.id')))


class Group(db.Model, CRUDMixin):
    __tablename__ = "groups"

    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(255), unique=True, nullable=False)
    description = db.Column(db.Text)

    # Group types
    admin = db.Column(db.Boolean, default=False, nullable=False)
    super_mod = db.Column(db.Boolean, default=False, nullable=False)
    mod = db.Column(db.Boolean, default=False, nullable=False)
    guest = db.Column(db.Boolean, default=False, nullable=False)
예제 #3
0
from sqlalchemy.orm import aliased

from flaskbb.extensions import db
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

logger = logging.getLogger(__name__)

moderators = db.Table(
    'moderators',
    db.Column('user_id',
              db.Integer(),
              db.ForeignKey('users.id', ondelete="CASCADE"),
              nullable=False),
    db.Column('forum_id',
              db.Integer(),
              db.ForeignKey('forums.id', ondelete="CASCADE"),
              nullable=False))

topictracker = db.Table(
    'topictracker',
    db.Column('user_id',
              db.Integer(),
              db.ForeignKey('users.id', ondelete="CASCADE"),
              nullable=False),
    db.Column('topic_id',
              db.Integer(),
              db.ForeignKey('topics.id', ondelete="CASCADE"),
              nullable=False))
예제 #4
0
파일: models.py 프로젝트: flaskbb/flaskbb
from flaskbb.deprecation import deprecated
from flaskbb.exceptions import AuthenticationError
from flaskbb.extensions import cache, db
from flaskbb.forum.models import Forum, Post, Topic, topictracker
from flaskbb.utils.database import CRUDMixin, UTCDateTime, make_comparable
from flaskbb.utils.helpers import time_utcnow
from flaskbb.utils.settings import flaskbb_config

logger = logging.getLogger(__name__)

groups_users = db.Table(
    'groups_users',
    db.Column('user_id',
              db.Integer,
              db.ForeignKey('users.id', ondelete="CASCADE"),
              nullable=False),
    db.Column('group_id',
              db.Integer,
              db.ForeignKey('groups.id', ondelete="CASCADE"),
              nullable=False))


@make_comparable
class Group(db.Model, CRUDMixin):
    __tablename__ = "groups"

    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(255), unique=True, nullable=False)
    description = db.Column(db.Text, nullable=True)

    # Group types
예제 #5
0
from flask import url_for
from flask_login import UserMixin, AnonymousUserMixin

from flaskbb.extensions import db, cache
from flaskbb.exceptions import AuthenticationError
from flaskbb.utils.helpers import time_utcnow
from flaskbb.utils.settings import flaskbb_config
from flaskbb.utils.database import CRUDMixin, UTCDateTime, make_comparable
from flaskbb.forum.models import (Post, Topic, Forum, topictracker, TopicsRead,
                                  ForumsRead)
from flaskbb.message.models import Conversation

groups_users = db.Table(
    'groups_users',
    db.Column('user_id', db.Integer, db.ForeignKey('users.id'),
              nullable=False),
    db.Column('group_id',
              db.Integer,
              db.ForeignKey('groups.id'),
              nullable=False))


@make_comparable
class Group(db.Model, CRUDMixin):
    __tablename__ = "groups"

    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(255), unique=True, nullable=False)
    description = db.Column(db.Text, nullable=True)

    # Group types
    admin = db.Column(db.Boolean, default=False, nullable=False)