Пример #1
0
# Author: jianglin
# Email: [email protected]
# Created: 2016-07-24 15:10:52 (CST)
# Last Update:星期六 2016-11-12 20:24:58 (CST)
#          By:
# Description:
# **************************************************************************
from maple.extension import db
from maple.tag.models import Tags
from datetime import datetime
from flask_login import UserMixin
from werkzeug.security import (generate_password_hash, check_password_hash)
from sqlalchemy import event

roles_permissions = db.Table(
    'roles_permissions',
    db.Column('role_id', db.Integer, db.ForeignKey('roles.id')),
    db.Column('permission_id', db.Integer, db.ForeignKey('permissions.id')))

routes_permissions = db.Table(
    'routes_permissions',
    db.Column('route_id', db.Integer, db.ForeignKey('routes.id')),
    db.Column('permission_id', db.Integer, db.ForeignKey('permissions.id')))


class Route(db.Model):
    __tablename__ = 'routes'
    id = db.Column(db.Integer, primary_key=True)
    endpoint = db.Column(db.String(256), nullable=False)
    rule = db.Column(db.String(512), nullable=False)
    permissions = db.relationship('Permiss',
                                  secondary=routes_permissions,
Пример #2
0
    def __repr__(self):
        return "<TimeLine %r>" % self.content[:10]

    def __str__(self):
        return self.content[:10]

    @property
    def datetime_format(self):
        return format_datetime(self.created_at, 'Y-M-d H:M')

    def to_json(self):
        return {'id': self.id, 'content': self.content, 'hide': self.hide}


tag_blog = db.Table('tag_blog',
                    db.Column('tag_id', db.Integer, db.ForeignKey('tag.id')),
                    db.Column('blog_id', db.Integer, db.ForeignKey('blog.id')))


class Tag(db.Model, ModelMixin):
    __tablename__ = 'tag'
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(50), nullable=False)
    blogs = db.relationship('Blog',
                            secondary=tag_blog,
                            backref=db.backref('tags', lazy='dynamic'),
                            lazy='dynamic')

    def __repr__(self):
        return '<Tags %r>' % self.name
Пример #3
0
    #     self.password_hash = generate_password_hash(password)

    # def verify_password(self, password):
    #     return check_password_hash(password)

    @staticmethod
    def set_password(password):
        pw_hash = generate_password_hash(password)
        return pw_hash

    def check_password(self, password):
        return check_password_hash(self.password, password)


roles_parents = db.Table(
    'roles_parents',
    db.Column('role_id', db.Integer, db.ForeignKey('roles.id')),
    db.Column('parent_id', db.Integer, db.ForeignKey('roles.id')))


class Role(db.Model):
    __tablename__ = 'roles'
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(81), nullable=False, default='unconfirmed')
    description = db.Column(db.String(255), nullable=True)
    parents = db.relationship(
        'Role',
        secondary=roles_parents,
        primaryjoin=(id == roles_parents.c.role_id),
        secondaryjoin=(id == roles_parents.c.parent_id),
        backref=db.backref('children'))
Пример #4
0
# -*- coding=UTF-8 -*-
# **************************************************************************
# Copyright © 2016 jianglin
# File Name: models.py
# Author: jianglin
# Email: [email protected]
# Created: 2016-07-20 17:00:08 (CST)
# Last Update:星期六 2016-11-12 20:20:28 (CST)
#          By:
# Description:
# **************************************************************************
from maple.extension import db
from datetime import datetime

tag_topic = db.Table(
    'tag_topic', db.Column('tags_id', db.Integer, db.ForeignKey('tags.id')),
    db.Column('topics_id', db.Integer, db.ForeignKey('topics.id')))

tags_parents = db.Table(
    'tags_parents', db.Column('tag_id', db.Integer, db.ForeignKey('tags.id')),
    db.Column('parent_id', db.Integer, db.ForeignKey('tags.id')))


class Tags(db.Model):
    __tablename__ = 'tags'
    id = db.Column(db.Integer, primary_key=True)
    time = db.Column(db.DateTime, default=datetime.utcnow())
    tagname = db.Column(db.String(64), nullable=False)
    summary = db.Column(db.Text)
    tags = db.relationship('Topic',
                           secondary=tag_topic,
Пример #5
0
    def __str__(self):
        return self.content[:10]

    @property
    def datetime_format(self):
        return format_datetime(self.created_at, 'Y-M-d H:M')

    def to_json(self):
        return {'id': self.id, 'content': self.content, 'hide': self.hide}


article_tags = db.Table(
    'article_tags', db.Column(
        'tag_id',
        db.Integer,
        db.ForeignKey('tag.id'),
    ), db.Column(
        'article_id',
        db.Integer,
        db.ForeignKey('article.id'),
    ))


class Tag(db.Model, ModelMixin):
    __tablename__ = 'tag'

    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(50), nullable=False)
    articles = db.relationship('Article',
                               secondary=article_tags,
                               backref=db.backref('tags', lazy='dynamic'),
                               lazy='dynamic')