Exemplo n.º 1
0
class Post(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(80), unique=True, nullable=False)
    description = db.Column(db.Text(), nullable=False)
    content = db.Column(db.Text(), nullable=False)
    imageurl = db.Column(db.Text(), nullable=False)
    post_time = db.Column(db.DateTime(), nullable=False)
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False)

    def __repr__(self):
        return f"Post('{self.	title}','{self.subtitle}')"
Exemplo n.º 2
0
class BlogPost(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(100), nullable=False)
    created_at = db.Column(db.DateTime(100),
                           nullable=False,
                           default=datetime.utcnow)
    content = db.Column(db.Text(20), nullable=False)
    category = db.Column(db.Text(50), nullable=False)
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False)

    def __repr__(self):
        return f"BlogPost('{ self.title }', '{ self.created_at }')"
Exemplo n.º 3
0
class Task(db.Model, UserMixin):
    id = db.Column(db.Integer, primary_key=True)
    sender_id = db.Column(db.Integer, db.ForeignKey('user.id'))
    recipient_id = db.Column(db.Integer, db.ForeignKey('user.id'))
    title = db.Column(db.Text(100))
    body = db.Column(db.Text())
    timestamp = db.Column(db.DateTime, index=True, default=datetime.utcnow)
    last_message_read_time = db.Column(db.DateTime)
    final = db.Column(db.Boolean, default=False, nullable=False)

    def __repr__(self):
        return f"'{self.title}', '{self.body}'"
Exemplo n.º 4
0
class User(db.Model, UserMixin):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(20), unique=True, nullable=False)
    email = db.Column(db.String(120), unique=True, nullable=False)
    bio = db.Column(db.Text(500), nullable=True)
    image_file = db.Column(db.String(20), nullable=False, default='default.jpg')
    password = db.Column(db.String(60), nullable=False)
    posts = db.relationship('Post', backref='author', lazy=True)

    def get_reset_token(self, expires_sec=1800):
        s = Serializer(app.config['SECRET_KEY'], expires_sec)
        return s.dumps({'user_id':self.id}).decode('utf-8')

    @staticmethod
    def verify_reset_token(token):
        s = Serializer(app.config['SECRET_KEY'])
        try:
            user_id = s.loads(token)['user_id']
        except:
            return none
        return User.query.get(user_id)


    def __repr__(self):
        return f"User ('{self.username}', '{self.email}', '{self.image_file}'"
Exemplo n.º 5
0
class MyTask(db.Model, UserMixin):
    id = db.Column(db.Integer, primary_key=True)
    body = db.Column(db.Text())
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))

    def __repr__(self):
        return f"'{self.body}'"
Exemplo n.º 6
0
class Texts(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(200), nullable=False)
    text = db.Column(db.Text(10000), nullable=False)
    sentences = db.relationship('Sent', backref='owner', lazy=True)

    def __repr__(self):
        return f"Texts('{self.title}', '{self.text}')"
Exemplo n.º 7
0
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(20), nullable = False)
	user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable = False)

	def __repr__(self): ##How object is printed which same as __scr__
		return f"Post('{self.title}', '{self.date_posted}')"
Exemplo n.º 8
0
class Reply(db.Model, UserMixin):
    id = db.Column(db.Integer, primary_key=True)
    sender_id = db.Column(db.Integer, db.ForeignKey('user.id'))
    recipient_id = db.Column(db.Integer, db.ForeignKey('user.id'))
    accept = db.Column(db.Text(100))
    final = db.Column(db.Boolean, default=False, nullable=False)

    def __repr__(self):
        return '{}'.format(self.accept)
Exemplo n.º 9
0
class Posts(db.Model):
    id = db.Column(db.Integer,primary_key = True)
    title = db.Column(db.String(20),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 Posts("{},{}".format(self.title,self.date_posted))
Exemplo n.º 10
0
class Post(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(100), nullable=False)
    content = db.Column(db.Text(), nullable=False)
    created = db.Column(db.DateTime, nullable=False, default=datetime.utcnow)
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False)

    def __repr__(self):
        return f"Post('{self.title},{self.content},{self.image_file},{self.created}')"
Exemplo n.º 11
0
class Post(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String, nullable=False)
    content = db.Column(db.Text(150), 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)

    def __repr__(self):
        return f'POST (title="{self.title}" user_id="{self.user_id}" posted_on="{self.date_posted}"'
Exemplo n.º 12
0
class Comment(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    author = db.Column(db.String(20), nullable=False)
    content = db.Column(db.Text(), nullable=False)
    timestamp  = db.Column(db.DateTime, nullable=False,
                            default=datetime.utcnow)
    post_id = db.Column(db.Integer, db.ForeignKey('post.id'), nullable=False)

    def __repr__(self):
        return f"Comment('{self.author}', '{self.timestamp}')"
Exemplo n.º 13
0
class Post(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(20), nullable=False)
    date_posted = db.Column(db.DateTime(100),
                            nullable=False,
                            default=datetime.utcnow)
    content = db.Column(db.Text(20), nullable=False)
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False)
    click_count = db.Column(db.Integer, default=0)
    category_id = db.Column(db.Integer, db.ForeignKey('category.id'))
Exemplo n.º 14
0
class Pitch(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)
    category = db.Column(db.String(255), nullable= False)

    def __repr__(self):
        return f"Pitch('{self.title}','{self.date_posted}')"
Exemplo n.º 15
0
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(20), nullable=False)
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False)

    def __repr__(self):
        return f"User('{self.title}',{self.date_posted})"
Exemplo n.º 16
0
class User(db.Model, UserMixin):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(20), unique=True, nullable=False)
    email = db.Column(db.String(120), unique=True, nullable=False)
    image_file = db.Column(db.String(20),
                           nullable=False,
                           default='default.jpg')
    password = db.Column(db.String(60), nullable=False)
    posts = db.relationship('Post', backref='author', lazy=True)
    about = db.Column(db.Text(), default="Kiedyś to uzupełnie")
    role = db.Column(db.Text(), default="user")
    is_verified = db.Column(db.Text(), default="no")
    __searchable__ = ['username']
    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')

    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)
        own = Post.query.filter_by(user_id=self.id)
        return followed.union(own).order_by(Post.timestamp.desc())

    def __repr__(self):
        return f"User('{self.username}','{self.email}','{self.image_file}')"
Exemplo n.º 17
0
class Submission(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    public_id = db.Column(db.String(80), nullable=False)
    email = db.Column(db.String(25), nullable=False)
    feedback = db.Column(db.Text())

    # return feedbacks
    def listFeedbacks(self):
        return jsonify({self.email, self.feedback})

    def __str__(self):
        return (self.email, self.feedback)
Exemplo n.º 18
0
class Post(db.Model):
    id = db.Column(db.Integer, primary_key=True)

    date_posted = db.Column(db.DateTime,
                            nullable=False,
                            default=datetime.utcnow)
    content = db.Column(db.Text(10), nullable=False)
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False)
    tag = db.Column(db.String(), default="#hello")
    post_pic = db.Column(db.String())

    def __repr__(self):
        return f"Post('{self.date_posted}')"
Exemplo n.º 19
0
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)

    # Since user_id Column of User table is foreign key for Post table,
    # we can use post.author to access the owner / writer of the post.

    def __repr__(self):
        return f"Post('{self.title}', '{self.date_posted}')"
Exemplo n.º 20
0
class Post(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(100), unique=True, nullable=False)
    slug = db.Column(db.String(100), unique=True, nullable=False)
    date_posted = db.Column(db.DateTime(),
                            nullable=False,
                            default=datetime.now)
    content = db.Column(db.Text(1000), nullable=False)
    like_post = db.Column(db.Integer, nullable=False)
    dislike_post = db.Column(db.Integer, nullable=False)
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False)

    def __repr__(self):
        return "Post('%s', '%s')" % (self.title, self.date_posted)
Exemplo n.º 21
0
class PostMetadata(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    post_id = db.Column(db.Integer, db.ForeignKey('post.id'), nullable=False)
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False)
    # emotion = db.Column(db.Boolean(), nullable=True)
    emotion = db.Column(db.Integer(), nullable=False, default=-1)
    post_comment = db.Column(db.Text(), nullable=True)
    comment_img = db.Column(db.String(20), nullable=True)
    date_commented = db.Column(db.DateTime,
                               nullable=False,
                               default=datetime.now())

    def __repr__(self):
        return f"PostMetadata('{self.id}','{self.emotion}', '{self.post_comment}', '{self.post_id}','{self.user_id}', '{self.date_commented}')"
Exemplo n.º 22
0
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(20), 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}')"

    @property
    def serialize(self):
        """Return object data in easily serializeable format"""
        return {'id': self.id, 'title': self.title}

    @staticmethod
    def get(ident):
        baked_query = bakery(lambda s: s.query(Post))
        return baked_query(db.session()).get(ident)
Exemplo n.º 23
0
class User(db.Model, UserMixin):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(20), unique=True, nullable=False)
    email = db.Column(db.String(120), unique=True, nullable=False)
    image_file = db.Column(db.String(20),
                           nullable=False,
                           default='default.jpg')
    cover_photo = db.Column(db.String(20),
                            nullable=False,
                            default='default.jpg')
    password = db.Column(db.String(60), nullable=False)
    bio = db.Column(db.Text(), nullable=True)
    dob = db.Column(db.DateTime(), nullable=True)
    location = db.Column(db.String(64), nullable=True)
    member_since = db.Column(db.DateTime(),
                             default=datetime.now(),
                             nullable=False)
    posts = db.relationship('Post', backref='author', lazy=True)
    comments = db.relationship('PostMetadata',
                               backref='author_comment',
                               lazy=True)

    # last_seen = db.Column(db.DateTime(), default=datetime.utcnow)
    def get_reset_token(self, expires_sec=1800):
        s = Serializer(current_app.config['SECRET_KEY'], expires_sec)
        return s.dumps({'user_id': self.id}).decode('utf-8')

    @staticmethod
    def verify_reset_token(token):
        s = Serializer(current_app.config['SECRET_KEY'])
        try:
            user_id = s.loads(token)['user_id']
        except:
            return None
        return User.query.get(user_id)

    def __repr__(self):
        return f"User('{self.username}', '{self.email}', '{self.image_file}', '{self.cover_photo}','{self.bio}', '{self.dob}','{self.location}','{self.member_since}')"
Exemplo n.º 24
0
class User(db.Model, UserMixin
           ):  # this class is used for creating the database table User
    id = db.Column(db.Integer, primary_key=True
                   )  # id attribute/column that is an integer and primary key
    name = db.Column(db.String(64))
    username = db.Column(db.String(20), unique=True, nullable=False)
    email = db.Column(db.String(120), unique=True, nullable=False)
    country = db.Column(db.String(20), nullable=False)
    about_me = db.Column(db.Text())
    member_since = db.Column(db.DateTime, default=datetime.utcnow)
    image_file = db.Column(db.String(20),
                           nullable=False,
                           default='default.jpg')
    password = db.Column(db.String(60), nullable=True)
    confirmed = db.Column(db.Boolean, default=False)
    role_id = db.Column(db.Integer, db.ForeignKey('role.id'))
    posts = db.relationship(
        'Post', backref='author',
        lazy=True)  # defining a relationship between user(author) & post
    comments = db.relationship('Comment', backref='author', lazy='dynamic')

    def __init__(self, **kwargs):
        super(User, self).__init__(**kwargs)
        if self.role is None:
            if self.email == current_app.config['FLASKY_ADMIN']:
                self.role = Role.query.filter_by(name='Administrator').first()
            if self.role is None:
                self.role = Role.query.filter_by(default=True).first()

    def can(self, permissions):
        return self.role is not None and \
               (self.role.permissions & permissions) == permissions

    def is_administrator(self):
        return self.can(Permission.ADMINISTRATOR)

    def generate_confirmation_token(self,
                                    expiration=3600):  # email confirmation
        s = Serializer(current_app.config['SECRET_KEY'], expiration)
        return s.dumps({'confirm': self.id})

    def confirm(self, token):
        s = Serializer(current_app.config['SECRET_KEY'])
        try:
            data = s.loads(token)
        except:
            return False
        if data.get('confirm') != self.id:
            return False
        self.confirmed = True
        db.session.add(self)
        return True

    # author is a back reference which gives us access to the entire User model and the attributes
    # the posts variable will then be used in routes and views

    def get_reset_token(
        self,
        expires_sec=1800
    ):  # generates a token that will expire in 30 mins (1800 secs)
        s = Serializer(current_app.config['SECRET_KEY'],
                       expires_sec)  # creates a serializer
        return s.dumps({'user_id': self.id}).decode('utf-8')

    @staticmethod  # tells python that this method won't have the 'self' object - it's a static method
    def verify_reset_token(token):  # verifies if token hasn't expired
        s = Serializer(
            current_app.config['SECRET_KEY'])  # creates a serializer
        try:
            user_id = s.loads(token)[
                'user_id']  # tries to load the token to user_id
        except:
            return None  # returns None if token has expired
        return User.query.get(user_id)

    def __repr__(self):
        return f"User('{self.username}', '{self.email}', '{self.image_file}')"
Exemplo n.º 25
0
class User(db.Model, UserMixin):
    __tablename__ = 'users'
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(20), unique=True, nullable=False)
    email = db.Column(db.String(120), unique=True, nullable=False)
    image_file = db.Column(db.String(20),
                           nullable=False,
                           default='default.jpg')
    about_me = db.Column(db.Text())
    password = db.Column(db.String(60), nullable=False)
    posts = db.relationship('Post', backref='author', lazy=True)
    followed = db.relationship('Follow',
                               foreign_keys=[Follow.follower_id],
                               backref=db.backref('follower', lazy='joined'),
                               lazy='dynamic',
                               cascade='all, delete-orphan')
    followers = db.relationship('Follow',
                                foreign_keys=[Follow.followed_id],
                                backref=db.backref('followed', lazy='joined'),
                                lazy='dynamic',
                                cascade='all, delete-orphan')
    comments = db.relationship('Comment', backref='author', lazy='dynamic')

    def get_reset_token(self, expires_sec=1800):
        s = Serializer(current_app.config['SECRET_KEY'], expires_sec)
        return s.dumps({'user_id': self.id}).decode('utf-8')

    @staticmethod
    def verify_reset_token(token):
        s = Serializer(current_app.config['SECRET_KEY'])
        try:
            user_id = s.loads(token)['user_id']
        except:
            return None
        return User.query.get(user_id)

    @staticmethod
    def add_self_follows():
        for user in User.query.all():
            if not user.is_following(user):
                user.follow(user)
                db.session.add(user)
                db.session.commit()

    def follow(self, user):
        if not self.is_following(user):
            f = Follow(follower=self, followed=user)
            db.session.add(f)

    def unfollow(self, user):
        f = self.followed.filter_by(followed_id=user.id).first()
        if f:
            db.session.delete(f)

    def is_following(self, user):
        if user.id is None:
            return False
        return self.followed.filter_by(followed_id=user.id).first() is not None

    def is_followed_by(self, user):
        if user.id is None:
            return False
        return self.followers.filter_by(
            follower_id=user.id).first() is not None

    @property
    def followed_posts(self):
        return Post.query.join(Follow, Follow.followed_id == Post.author_id)\
            .filter(Follow.follower_id == self.id)

    @staticmethod
    def verify_auth_token(token):
        s = Serializer(current_app.config['SECRET_KEY'])
        try:
            data = s.loads(token)
        except:
            return None
        return User.query.get(data['id'])

    def to_json(self):
        json_user = {
            'url':
            url_for('api.get_user', id=self.id),
            'username':
            self.username,
            'posts_url':
            url_for('api.get_user_posts', id=self.id),
            'followed_posts_url':
            url_for('api.get_user_followed_posts', id=self.id),
            'post_count':
            self.posts.count()
        }
        return json_user

    def __repr__(self):
        return f"User('{self.username}', '{self.email}', '{self.image_file}')"