示例#1
0
class LocalAuth(db.Model, FieldMixin):
    id = db.Column(db.String(50), primary_key=True)
    password = db.Column(db.String(120))
    user_id = db.Column(db.String(50), db.ForeignKey('user.id'))

    def __init__(self, user_id, password):
        self.id = next_id()
        self.user_id = user_id
        self.password = password

    def __repr__(self):
        return '<LocalAuth {!r}>'.format(self.user)
示例#2
0
class Comment(db.Model, FieldMixin):
    id = db.Column(db.String(50), primary_key=True)
    user_id = db.Column(db.String(50), db.ForeignKey('user.id'))
    blog_id = db.Column(db.String(50), db.ForeignKey('blog.id'))
    content = db.Column(db.Text)
    created_at = db.Column(db.DateTime, default=datetime.datetime.now)

    def __init__(self, user_id, blog_id, content):
        self.id = next_id()
        self.user_id = user_id
        self.blog_id = blog_id
        self.content = content

    def __repr__(self):
        return '<Comment {!r}>'.format(self.content)
示例#3
0
class Category(db.Model, FieldMixin):
    id = db.Column(db.String(50), primary_key=True)
    name = db.Column(db.String(120))
    image = db.Column(db.String(1024))
    about = db.Column(db.Text)
    created_at = db.Column(db.DateTime, default=datetime.datetime.now)
    courses = db.relationship('Course', backref='category', lazy='dynamic')

    def __init__(self, name, image, about):
        self.id = next_id()
        self.name = name
        self.image = image
        self.about = about

    def __repr__(self):
        return '<Category {!r}>'.format(self.name)
示例#4
0
class Course(db.Model, FieldMixin):
    id = db.Column(db.String(50), primary_key=True)
    name = db.Column(db.String(120))
    image = db.Column(db.String(1024))
    about = db.Column(db.Text)
    created_at = db.Column(db.DateTime, default=datetime.datetime.now)
    category_id = db.Column(db.String(50), db.ForeignKey('category.id'))
    chapters = db.relationship('Chapter', backref='course', lazy='dynamic')

    def __init__(self, name, image, about, category_id):
        self.id = next_id()
        self.name = name
        self.image = image
        self.about = about
        self.category_id = category_id

    def __repr__(self):
        return '<Course {!r}>'.format(self.name)
示例#5
0
class Chapter(db.Model, FieldMixin):
    id = db.Column(db.String(50), primary_key=True)
    order = db.Column(db.Integer)
    name = db.Column(db.String(120))
    created_at = db.Column(db.DateTime, default=datetime.datetime.now)
    course_id = db.Column(db.String(50), db.ForeignKey('course.id'))
    video_url = db.Column(db.Text)
    content = db.Column(db.Text)

    def __init__(self, course_id, order, name, video_url, content):
        self.id = next_id()
        self.order = order
        self.course_id = course_id
        self.name = name
        self.video_url = video_url
        self.content = content

    def __repr__(self):
        return '<Chapter {!r}>'.format(self.name)
示例#6
0
class Blog(db.Model, FieldMixin):
    id = db.Column(db.String(50), primary_key=True)
    user_id = db.Column(db.String(50), db.ForeignKey('user.id'))
    name = db.Column(db.String(50))
    summary = db.Column(db.String(50))
    content = db.Column(db.Text)
    created_at = db.Column(db.DateTime, default=datetime.datetime.now)
    comments = db.relationship('Comment', backref='blog', lazy='dynamic')

    _regexMapDict = FieldMixin._regexMapDict.copy()

    def __init__(self, user_id, name, summary, content):
        self.id = next_id()
        self.user_id = user_id
        self.name = name
        self.summary = summary
        self.content = content

    def __repr__(self):
        return '<Blog {!r}>'.format(self.name)
示例#7
0
class User(db.Model, FieldMixin):
    id = db.Column(db.String(50), primary_key=True)
    name = db.Column(db.String(120))
    email = db.Column(db.String(120), unique=True)
    created_at = db.Column(db.DateTime, default=datetime.datetime.now)
    admin = db.Column(db.Boolean)
    image = db.Column(db.String(500))

    localauths = db.relationship('LocalAuth', backref='user', lazy='dynamic')
    students = db.relationship('Student', backref='user', lazy='dynamic')
    instructors = db.relationship('Instructor', backref='user', lazy='dynamic')
    blogs = db.relationship('Blog', backref='user', lazy='dynamic')
    comments = db.relationship('Comment', backref='user', lazy='dynamic')

    def __init__(self, name, email, image, admin=False):
        self.id = next_id()
        self.name = name
        self.email = email.lower()
        self.image = image
        self.admin = admin

    def __repr__(self):
        return '<User {!r}>'.format(self.name)

    # Flask-Login integration
    def is_authenticated(self):
        return True

    def is_active(self):
        return True

    def is_anonymous(self):
        return False

    def get_id(self):
        return self.id

    # Required for administrative interface
    def __unicode__(self):
        return self.name