class User(db.Model): __tablename__ = 'user' id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(40)) password = db.Column(db.String(120)) email = db.Column(db.String(40)) authenticated = db.Column(db.Boolean, default=False) active = db.Column(db.Boolean, default=False) is_admin = db.Column(db.Boolean, default=False) def check_password(self, value): return check_password_hash(self.password, value) def is_active(self): """True, as all users are active.""" return self.active def get_id(self): """Return the id to satisfy Flask-Login's requirements.""" return self.id def is_authenticated(self): """Return True if the user is authenticated.""" return self.authenticated def is_anonymous(self): """False, as anonymous users aren't supported.""" return False def __repr__(self): return '<user %r>' % self.username
class Todo(db.Model): __tablename__ = 'todo' id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(80)) tag = db.Column(db.String(80)) pub_date = db.Column(db.DateTime) uid = db.Column(db.Integer, db.ForeignKey('user.id')) items = db.relationship('TodoItem', backref='todo', lazy='dynamic') @classmethod def create(cls, name, user, tag="", pub_date=None): self = cls() self.name = name self.tag = tag if pub_date is None: pub_date = datetime.utcnow() self.pub_date = pub_date self.uid = user.id return self def __repr__(self): return '<Todo %r>' % self.name def to_dict(self): d = {} for column in self.__table__.columns: value = getattr(self, column.name) d[column.name] = str(value) return d def to_json(self): return json.dumps(self.to_dict())
class SurveyInfo(db.Model): __tablename__ = 'SurveyInfo' id = db.Column(db.Integer, primary_key=True) email = db.Column(db.String(80)) interests = db.Column(db.String(80)) year = db.Column(db.String(80)) date = db.Column(db.DateTime, default=datetime.utcnow) def __repr__(self): return '<SurveyInfo %r>' % self.email
class TodoItem(db.Model): __tablename__ = 'todo_item' id = db.Column(db.Integer, primary_key=True) task = db.Column(db.String(80)) pub_date = db.Column(db.DateTime) uid = db.Column(db.Integer, db.ForeignKey('user.id')) tid = db.Column(db.Integer, db.ForeignKey('todo.id')) @classmethod def create(cls, tid, task, user, pub_date=None): self = cls() self.tid = tid self.task = task if pub_date is None: pub_date = datetime.utcnow() self.pub_date = pub_date self.uid = user.id return self def __repr__(self): return '<TodoItem %r>' % self.task def to_dict(self): d = {} for column in self.__table__.columns: d[column.name] = getattr(self, column.name) return d def to_json(self): return json.dumps(self.to_dict())
class Application(db.Model): __tablename__ = "Application" id = db.Column(db.Integer, primary_key=True) # user_id = db.Column(db.Integer, db.ForeignKey('user.id')) timestamp = db.Column(db.DateTime, default=datetime.utcnow) post_id = db.Column(db.Integer) resume_addr = db.Column(db.String(140)) def __repr__(self): return '<Application {}>'.format(self.resume_addr)
class Idea_Post(db.Model): __tablename__ = "Idea_Post" id = db.Column(db.Integer, primary_key=True) abstract = db.Column(db.String(140)) body = db.Column(db.Text) timestamp = db.Column(db.DateTime, default=datetime.utcnow) # user_id = db.Column(db.Integer, db.ForeignKey('user.id')) def __repr__(self): return '<Idea_Post {}>'.format(self.body)
class Idea_Comments(db.Model): __tablename__ = "Idea_Comments" id = db.Column(db.Integer, primary_key=True) idea_post_id = db.Column(db.Integer) body = db.Column(db.String(140)) timestamp = db.Column(db.DateTime, default=datetime.utcnow) # user_id = db.Column(db.Integer, db.ForeignKey('user.id')) # img_addr = db.Column(db.String(140)) def __repr__(self): return '<Idea_Comments {}>'.format(self.body)
class Profile(db.Model): __tablename__ = "Profile" id = db.Column(db.Integer, primary_key=True) timestamp = db.Column(db.DateTime, default=datetime.utcnow) email = db.Column(db.String(80)) name = db.Column(db.String(80)) major = db.Column(db.String(80)) education = db.Column(db.String(80)) year = db.Column(db.String(80)) interests = db.Column(db.String(80)) # this is for profs title = db.Column(db.String(80)) bio = db.Column(db.Text) def __repr__(self): return '<Profile {}>'.format(self.email)