Exemplo n.º 1
0
class Ingroup(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    myuser = db.Column(db.Integer, db.ForeignKey('user.id'))
    gp = db.Column(db.String(64), db.ForeignKey('group.groupname'))
    pg = db.Column(db.String(140))
    time = db.Column(db.DateTime, index=True, default=datetime.utcnow)
    event = db.Column(db.String(250))
Exemplo n.º 2
0
class Event(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    gr = db.Column(db.String(64), db.ForeignKey('group.groupname'))
    ev = db.Column(db.String(140))
    participants = db.Column(db.Integer)
    organiser = db.Column(db.Integer, db.ForeignKey('user.username'))
    location = db.Column(db.String(1024))
Exemplo n.º 3
0
class User(UserMixin, db.Model):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(64), index=True, unique=True)
    email = db.Column(db.String(120), index=True, unique=True)
    password_hash = db.Column(db.String(128))
    posts = db.relationship('Post', backref='author', lazy='dynamic')
    about_me = db.Column(db.String(140))
    last_seen = db.Column(db.DateTime, default=datetime.utcnow)
    last_message_read_time = db.Column(db.DateTime)
    gposts = db.relationship('Ingroup', backref='writer', lazy='dynamic')
    followed = db.relationship('User',
                               secondary=followers,
                               primaryjoin=(followers.c.follower_id == id),
                               secondaryjoin=(followers.c.followed_id == id),
                               backref=db.backref('followers', lazy='dynamic'),
                               lazy='dynamic')
    comments = db.relationship('Comment', backref='creator', lazy='dynamic')

    def new_messages(self):
        last_read_time = self.last_message_read_time or datetime(1900, 1, 1)
        return Message.query.filter_by(reciever=self.username).filter(
            Message.timestamp > last_read_time).count()

    def __repr__(self):
        return '<User {}>'.format(self.username)

    def set_password(self, password):
        self.password_hash = pwd_context.encrypt(password)

    def check_password(self, password):
        return pwd_context.verify(password, self.password_hash)

    def follow(self, user):
        if not self.is_following(user):
            self.followed.append(user)

    def unfollow(self, user):
        if self.is_following(user):
            self.followed.remove(user)

    def is_following(self, user):
        return self.followed.filter(
            followers.c.followed_id == user.id).count() > 0

    def followed_posts(self):
        followed = Post.query.join(
            followers, (followers.c.followed_id == Post.user_id)).filter(
                followers.c.follower_id == self.id)
        #for p in followed:
        #  form1 = CommentForm()
        # if form1.validate_on_submit():
        #   post = Post(body=form1.post.data, author=current_user)
        #  db.session.add(post)
        # db.session.commit()
        #flash('You just now commented Wohoo XD!')
        #return redirect(url_for('index'))
        own = Post.query.filter_by(user_id=self.id)
        return followed.union(own).order_by(Post.timestamp.desc())
Exemplo n.º 4
0
class Message(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    sender = db.Column(db.String(64), db.ForeignKey('user.username'))
    msg = db.Column(db.String(700), index=True)
    reciever = db.Column(db.String(64), db.ForeignKey('user.id'))
    timestamp = db.Column(db.DateTime, index=True, default=datetime.utcnow)

    def __repr__(self):
        return '<Message {}>'.format(self.body)
Exemplo n.º 5
0
class Comment(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    body = db.Column(db.String(140))
    timestamp = db.Column(db.DateTime, index=True, default=datetime.utcnow)
    post_id = db.Column(db.Integer, db.ForeignKey('post.id'))
    us = db.Column(db.String(64), db.ForeignKey('user.username'))

    def __repr__(self):
        return '<Comment {}>'.format(self.body)
Exemplo n.º 6
0
class Group(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    userid = db.Column(db.Integer, db.ForeignKey('user.id'))
    groupname = db.Column(db.String(64), index=True)
    adminId = db.Column(db.Integer)

    def __repr__(self):
        return '<Group {}>'.format(self.groupname)

    def addMember(self, user):
        if not self.is_member(user):
            self.members.append(user)

    def is_member(self, user):
        return self.members.filter(group.c.self.userid == user.id).count() > 0

    def removeMember(self, user):
        if self.is_member(user):
            self.members.remove(user)

    def grouppost(self):
        gname = self.groupname
        groupusers = Group.query.filter(Group.groupname == gname).all()
        #groupusers = groupusers.items
        #print(groupusers)
        for mem in groupusers:
            groupposts = Post.query.filter(mem.userid == Post.user_id)
        return groupposts.order_by(Post.timestamp.desc())
Exemplo n.º 7
0
class User(db.Model):

    __tablename__ = 'users'

    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(20), unique=True, nullable=False)
    email = db.Column(db.String(20), unique=True, nullable=False)
    password = db.Column(db.String(20), nullable=False)
    tasks = db.relationship('Task', backref='poster')

    def __init__(self, name=None, email=None, password=None):
        self.name = name
        self.email = email
        self.password = password

    def __repr__(self):
        return '<User {0}>'.format(self.name)
Exemplo n.º 8
0
class Subject(db.Model):

    __tablename__ = 'subjects'

    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(50))

    def __init__(self, name):
        self.name = name

    def __repr__(self):
        return '<Subject %r>' % self.name
Exemplo n.º 9
0
class Task(db.Model):

    __tablename__ = "tasks"

    task_id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(20), nullable=False)
    due_date = db.Column(db.String(20), nullable=False)
    priority = db.Column(db.Integer, nullable=False)
    posted_date = db.Column(db.Date, default=datetime.datetime.utcnow())
    status = db.Column(db.Integer)
    user_id = db.Column(db.Integer, db.ForeignKey('users.id'))

    def __init__(self, name, due_date, priority, posted_date, status, user_id):
        self.name = name
        self.due_date = due_date
        self.priority = priority
        self.posted_date = posted_date
        self.status = status
        self.user_id = user_id

    def __repr__(self):
        return '<name {0}>'.format(self.name)
Exemplo n.º 10
0
class Post(SearchableMixin, db.Model):
    __searchable__ = ['body']
    id = db.Column(db.Integer, primary_key=True)
    body = db.Column(db.String(140))
    timestamp = db.Column(db.DateTime, index=True, default=datetime.utcnow)
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
    commentS = db.relationship('Comment', backref='POst', lazy='dynamic')

    #def get_comments(self):
    #   return Comment.query.filter_by(post_id=post.id).order_by(Comment.timestamp.desc())

    def __repr__(self):
        return '<Post {}>'.format(self.body)
Exemplo n.º 11
0
class Like(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    liker = db.Column(db.String(64), db.ForeignKey('user.username'))
    po = db.Column(db.Integer, db.ForeignKey('post.id'))
Exemplo n.º 12
0
class Message(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    sender = db.Column(db.String(64), db.ForeignKey('user.username'))
    msg = db.Column(db.String(700), index=True)
    reciever = db.Column(db.String(64), db.ForeignKey('user.id'))
    timestamp = db.Column(db.DateTime, index=True, default=datetime.utcnow)