class Comment(db.Model): id = db.Column(db.Integer, primary_key=True) comment = db.Column(db.Text, nullable=False) comment_date = db.Column(db.DateTime, default=datetime.utcnow) user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False) slide_id = db.Column(db.Integer, db.ForeignKey('slide.id')) def __repr__(self): return f"Comment('self.comment)')"
class Category(db.Model): id = db.Column(db.Integer, primary_key=True, autoincrement=True) name = db.Column(db.String(200), nullable=False) user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False) slides = db.relationship('Slide', backref='cats', lazy=True) def __repr__(self): return f"Category('{self.name}')"
class Slide(db.Model): __searchable__ = ['title', 'description'] id = db.Column(db.Integer, primary_key=True) title = db.Column(db.String(200), nullable=False) description = db.Column(db.Text, nullable=False) file = db.Column(db.String(1000), nullable=False) date_posted = db.Column(db.DateTime, nullable=False, default=datetime.utcnow) user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False) likes = db.relationship('SlideLike', backref='slide', lazy=True) comments = db.relationship('Comment', backref='slide', lazy=True) category_id = db.Column(db.Integer, db.ForeignKey('category.id'), nullable=True) # visit_id = db.Column(db.Integer, db.ForeignKey('visit.id'), nullable = True) def __repr__(self): return f"Slide('{self.title}', '{self.description}', '{self.file}')"
class Post(db.Model): id = db.Column(db.Integer, primary_key=True) title = db.Column(db.String(100), nullable=False) date_posted = db.Column(db.DateTime, nullable=False, default=datetime.utcnow) content = db.Column(db.Text, nullable=False) user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False) def __repr__(self): return f"Post('{self.title}', '{self.date_posted}')"
class SlideLike(db.Model): id = db.Column(db.Integer, primary_key=True) user_id = db.Column(db.Integer, db.ForeignKey('user.id')) slide_id = db.Column(db.Integer, db.ForeignKey('slide.id'))
from flask_admin.contrib.sqla import ModelView import os import sys import secrets admin = Admin(app, name='Control Panel') @login_manager.user_loader def load_user(user_id): return User.query.get(int(user_id)) followers = db.Table( 'followers', db.Column('follower_id', db.Integer, db.ForeignKey('user.id')), db.Column('followed_id', db.Integer, db.ForeignKey('user.id'))) class Visit(db.Model): id = db.Column(db.Integer, primary_key=True) count = db.Column(db.Integer) # slides = db.relationship('Slide', backref = 'slide', lazy = True) def __init__(self): self.count = 0 class User(db.Model, UserMixin): id = db.Column(db.Integer, primary_key=True)