Ejemplo n.º 1
0
class Request(db.Model):
    __table_args__ = {'extend_existing': True}
    request_id = db.Column(db.Integer, primary_key=True)
    user_id = db.Column(db.Integer,
                        db.ForeignKey('user.user_id'),
                        nullable=False)
    total_price = db.Column(db.Integer)
Ejemplo n.º 2
0
class Article(db.Model):
    __tablename__ = 'articles'
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(75))
    body = db.Column(db.Text())
    author = db.Column(db.String(800))
    image_path = db.Column(db.String(100))

    def __repr__(self):
        return '<Article {}>'.format(self.body)

    def save_changes(self, file):
        if file:
            filename = secure_filename(file.filename)
            fileExtension = filename.rsplit('.', 1)[1]
            randomFilename = str(uuid.uuid1())
            filename = randomFilename + '.' + fileExtension
            try:
                blob_client = blob_service.get_blob_client(
                    container=blob_container, blob=filename)
                blob_client.upload_blob(file)
                if self.image_path:  # Get rid of old image, since it's replaced
                    blob_client = blob_service.get_blob_client(
                        container=blob_container, blob=self.image_path)
                    blob_client.delete_blob()
            except Exception as err:
                print(err)
            self.image_path = filename
        db.session.commit()
Ejemplo n.º 3
0
class Notifications(db.Model):
    notification_id = db.Column(db.Integer, primary_key=True)
    post_id = db.Column(db.Integer,
                        db.ForeignKey('travel.id'),
                        primary_key=True)
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'), primary_key=True)
    content = db.Column(db.String(120), nullable=False)
    showed = db.Column(db.Boolean, nullable=False, default=False)
Ejemplo n.º 4
0
class Post(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)
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))

    def __repr__(self):
        return '<Post {}>'.format(self.body)
Ejemplo n.º 5
0
class RequestProduct(db.Model):
    __table_args__ = {'extend_existing': True}
    requestproduct_id = db.Column(db.Integer, primary_key=True)
    request_id = db.Column(db.Integer,
                           db.ForeignKey('request.request_id'),
                           nullable=False)
    product_id = db.Column(db.Integer,
                           db.ForeignKey('product.product_id'),
                           nullable=False)
Ejemplo n.º 6
0
class Cart(db.Model):
    __table_args__ = {'extend_existing': True}
    cart_id = db.Column(db.Integer, primary_key=True)
    product_id = db.Column(db.Integer,
                           db.ForeignKey('product.product_id'),
                           nullable=False)
    user_id = db.Column(db.Integer,
                        db.ForeignKey('user.user_id'),
                        nullable=False)
Ejemplo n.º 7
0
class User(db.Model):
    __tablename__ = 'users'
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(80), unique=True, nullable=False)
    email = db.Column(db.String(120), unique=True, nullable=False)
    username = db.Column(db.String(120), unique=True, nullable=False)
    password = db.Column(db.String(120), unique=True, nullable=False)

    def __repr__(self):
        return '<User %r>' % self.username
Ejemplo n.º 8
0
class Contact(db.Model):
    __table_args__ = {'extend_existing': True}
    contact_id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(60), nullable=False)
    email = db.Column(db.String(255), nullable=False)
    phone = db.Column(db.String(20), nullable=False)
    message = db.Column(db.String(255), nullable=False)

    def __str__(self):
        return self.name
Ejemplo n.º 9
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)

    def __repr__(self):
        return f"Post('{self.title}', '{self.date_posted}')"
Ejemplo n.º 10
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)

    def __repr__(self):
        return str(self.id) + str(self.username) + str(self.email) + str(
            self.password)
Ejemplo n.º 11
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)

    def __repr__(self):
        return self.title + self.content + self.date_posted
Ejemplo n.º 12
0
class Follow(db.Model):
    follower_id = db.Column(db.Integer,
                            db.ForeignKey('user.id'),
                            primary_key=True)
    followed_id = db.Column(db.Integer,
                            db.ForeignKey('user.id'),
                            primary_key=True)
    timestamp = db.Column(db.DateTime, default=datetime.utcnow)

    def __repr__(self):
        return f"Follow('{self.timestamp}')"
Ejemplo n.º 13
0
class User(UserMixin, db.Model):
    """ User Database"""
    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')

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

    def set_password(self, password):
        self.password_hash = generate_password_hash(password)

    def check_password(self, password):
        return check_password_hash(self.password_hash, password)
Ejemplo n.º 14
0
class Employee(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(100), nullable=False)
    address = db.Column(db.String(200), nullable=False)
    date_of_birth = db.Column(db.Date, nullable=True)
    email = db.Column(db.String(120), nullable=False, unique=True)
    phone = db.Column(db.String(15), nullable=False, unique=True)
    images = db.Column(db.String(200), nullable=True)
    gender = db.Column(db.Integer, nullable=True)

    def __repr__(self):
        return f"Employee('{self.title}', '{self.date_employee}')"
Ejemplo n.º 15
0
class Expenses(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String, nullable=False)
    notes = db.Column(db.Text)
    cost = db.Column(db.Float, nullable=False)
    paid = db.Column(db.Float, nullable=False, default=0.00)
    cost_type = db.Column(db.String, nullable=False)
Ejemplo n.º 16
0
class Item(db.Model):
    __tablename__ = 'items'

    item_id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    name = db.Column(db.String(100), default='', nullable=False)
    category = db.Column(db.String(50), default='', nullable=False)
    description = db.Column(db.String(2048), default='', nullable=False)
    image = db.Column(db.Text, nullable=True)
    price = db.Column(db.Integer, default=0, nullable=False)

    def __repr__(self):
        return '<Item {} - {}>'.format(self.item_id, self.name)

    def to_json(self):
        json = {}
        json["item_id"] = self.item_id
        json["name"] = self.name
        json["category"] = self.category
        json["description"] = self.description
        json["price"] = self.price

        if isinstance(self.image, bytes):
            json["image"] = self.image.decode('utf-8')
        elif isinstance(self.image, str):
            json["image"] = self.image
        else:
            json["image"] = ""

        return json
Ejemplo n.º 17
0
class User(db.Model):
    __table_args__ = {'extend_existing': True}
    user_id = db.Column(db.Integer, primary_key=True)
    first_name = db.Column(db.String(60), nullable=False)
    last_name = db.Column(db.String(60), nullable=False)
    email = db.Column(db.String(255), nullable=False)
    password = db.Column(db.String(60), nullable=False)
    user_type = db.Column(db.String(60), nullable=False, default="seller")
    created_on = db.Column(db.DateTime,
                           nullable=False,
                           default=datetime.utcnow)
Ejemplo n.º 18
0
class Product(db.Model):
    __table_args__ = {'extend_existing': True}
    product_id = db.Column(db.Integer, primary_key=True)
    product_name = db.Column(db.String(255), nullable=False)
    price = db.Column(db.Numeric(10, 2), nullable=False)
    desc = db.Column(db.Text, nullable=False)
    image = db.Column(db.String(255), nullable=False, default="default.jpg")
    pub_date = db.Column(db.DateTime, nullable=False, default=datetime.utcnow)
    category_id = db.Column(db.Integer,
                            db.ForeignKey('category.category_id'),
                            nullable=False)

    def __str__(self):
        return self.product_name
Ejemplo n.º 19
0
class User(db.Model, UserMixin):
    id = db.Column(db.Integer, primary_key=True)
    twitter_handler = db.Column(db.String(50), unique=True, nullable=False)
    email = db.Column(db.String(100), unique=True, nullable=False)
    password = db.Column(db.String(70), nullable=False)
    access_token = db.Column(db.String(100), unique=True, nullable=True)
    access_token_secret = db.Column(db.String(100), unique=True, nullable=True)
    friends = db.relationship('FriendsHandler', lazy=True)

    def __repr__(self):
        return f"User('{self.username}', '{self.email})"
Ejemplo n.º 20
0
class User(UserMixin, db.Model):
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    first_name = db.Column(db.String(100), default='', nullable=False)
    last_name = db.Column(db.String(100), default='', nullable=False)
    email = db.Column(db.String(100), default='', unique=True, nullable=False)
    password = db.Column(db.String(255), default='', nullable=False)
    is_admin = db.Column(db.Boolean, default=False)

    def to_json(self):
        user_json = {}

        user_json['id'] = self.id
        user_json['first_name'] = self.first_name
        user_json['last_name'] = self.last_name
        user_json['email'] = self.email
        user_json['is_admin'] = self.is_admin

        return user_json
Ejemplo n.º 21
0
class Category(db.Model):
    __table_args__ = {'extend_existing': True}
    category_id = db.Column(db.Integer, primary_key=True)
    category_name = db.Column(db.String(255), nullable=False)
Ejemplo n.º 22
0
class Users(db.Model, UserMixin):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String, nullable=False)
    email = db.Column(db.String, nullable=False)
    number = db.Column(db.String)
    password = db.Column(db.String, nullable=False)
    rsvp = db.Column(db.Boolean, default=False)
    is_attending = db.Column(db.String, default='Unsure')
    additional_guests = db.Column(db.Integer)
    additional_guest_names = db.Column(db.String)
    guest_type = db.Column(db.String)
    language = db.Column(db.String)

    def __repr__(self):
        return f'''User(Name: '{self.name}', Email: '{self.email}', RSVPed? '{self.rsvp}',
        Additional Guests: '{self.additional_guests}', Guest Type: '{self.guest_type}',
        Guest Language: '{self.language}')'''

    # generate a unique token, to be appended to invitation URL, password resets etc
    def get_reset_token(self, expires_sec=604800):
        # set up token with app's key and expiration time (604,800=1 week)
        s = Serializer(current_app.config['SECRET_KEY'], expires_sec)
        return s.dumps({'user_id': self.id}).decode('utf-8')

    # verify unique token when the user visits invitation URL, password reset etc
    # below decorator tells Python not to expect 'self' parameter as an arg
    @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 Users.query.get(user_id)
Ejemplo n.º 23
0
class Travel(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.Text, 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)
    start_date = db.Column(db.DateTime, nullable=False)
    end_date = db.Column(db.DateTime, nullable=False)
    country = db.Column(db.Text, nullable=False)
    city = db.Column(db.Text, nullable=False)
    latitude = db.Column(db.Integer, nullable=False)
    longitude = db.Column(db.Integer, nullable=False)
    content = db.Column(db.Text, nullable=False)
    subscribers = db.relationship('Subscriptions',
                                  backref='subscribers',
                                  lazy='dynamic',
                                  cascade='all, delete-orphan')

    def __repr__(self):
        return f"Travel('{self.date_posted}')"
Ejemplo n.º 24
0
class Post(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    timestamp = db.Column(db.DateTime, index=True, default=datetime.utcnow)
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
    username = db.Column(
        db.String(64),
        index=True)  #, unique=True <--used to be in there with index=True
    last_seen = db.Column(
        db.DateTime,
        default=datetime.utcnow)  #not sure i need this bc of timestamp
    name = db.Column(db.String(64))
    height = db.Column(db.Float(64))
    starting_weight = db.Column(db.Float(64))
    current_weight = db.Column(db.Float(64))
    goal_weight = db.Column(db.Float(64))
    starting_bf_percentage = db.Column(db.Float(64))
    current_bf_percentage = db.Column(db.Float(64))
    goal_bf_percentage = db.Column(db.Float(64))
    total_weight_lost = db.Column(db.Float(64))
    total_weight_gained = db.Column(db.Float(64))
    starting_fat_pounds = db.Column(db.Float(64))
    current_fat_pounds = db.Column(db.Float(64))
    goal_fat_pounds = db.Column(db.Float(64))
    fat_lost = db.Column(db.Float(64))
    starting_lean_bodymass = db.Column(db.Float(64))
    current_lean_bodymass = db.Column(db.Float(64))
    goal_lean_bodymass = db.Column(db.Float(64))
    bmi = db.Column(db.Float(64))
    nonfat_lost = db.Column(db.Float(64))
    goal_fat_loss = db.Column(db.Float(64))
    goal_weight_auto = db.Column(db.Float(64))
    goal_fat_loss_auto = db.Column(db.Float(64))
    goal_muscle_gain = db.Column(db.Float(64))

    def __repr__(self):
        return '<Post {}>'.format(self.id)  #not sure what self.? should be
Ejemplo n.º 25
0
class Subscriptions(db.Model):
    post_id = db.Column(db.Integer,
                        db.ForeignKey('travel.id'),
                        primary_key=True)
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'), primary_key=True)
Ejemplo n.º 26
0
class Tasks(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String, nullable=False)
    content = db.Column(db.Text)
Ejemplo n.º 27
0
class User(db.Model, UserMixin):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(20), unique=True, nullable=False)
    first_name = db.Column(db.String(20))
    last_name = db.Column(db.String(20))
    gender = db.Column(db.String(20), nullable=False)
    birth_date = db.Column(db.Date())
    email = db.Column(db.String(120), unique=True, nullable=False)
    password = db.Column(db.String(60), nullable=False)
    image_file = db.Column(db.String(20),
                           nullable=False,
                           default='default.jpg')
    travels = db.relationship('Travel', backref='traveler', lazy='dynamic')
    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')
    subcribed_posts = db.relationship('Subscriptions',
                                      backref='subcribed_posts',
                                      lazy='dynamic',
                                      cascade='all, delete-orphan')
    notifications = db.relationship('Notifications',
                                    backref='notifications',
                                    lazy='dynamic',
                                    cascade='all, delete-orphan')

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

    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

    def is_subscribed(self, post):
        if post.id is None:
            return False
        return self.subcribed_posts.filter_by(
            post_id=post.id).first() is not None

    def subscribe(self, post):
        if not self.is_subscribed(post):
            f = Subscriptions(user_id=self.id, post_id=post.id)
            db.session.add(f)

    def unsubscribe(self, post):
        found_post = self.subcribed_posts.filter_by(post_id=post.id).first()
        if found_post:
            db.session.delete(found_post)

    '''
    def show_notification(self, notification):
        found_notification = self.notifications.filter_by(
            notification_id = notification.notification_id).first()
        if found_notification.showed:
            Notifications.update().where(
                notification_id == found_notification.notification_id).values(showed=True)
    '''

    def delete_notification(self, notification):
        found_notification = self.notifications.filter_by(
            notification_id=notification.notification_id).first()
        if found_notification:
            db.session.delete(found_notification)
Ejemplo n.º 28
0
class Photos(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    uploaded_by = db.Column(db.String)
    file_name = db.Column(db.String)
Ejemplo n.º 29
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')  #dont think i use
    about_me = db.Column(db.String(140))
    last_seen = db.Column(db.DateTime, default=datetime.utcnow)
    name = db.Column(db.String(64), default='New User')
    height = db.Column(db.Float(64), default=0)
    starting_weight = db.Column(db.Float(64), default=0)
    current_weight = db.Column(db.Float(64), default=0)
    goal_weight = db.Column(db.Float(64), default=0)
    starting_bf_percentage = db.Column(db.Float(64), default=0)
    current_bf_percentage = db.Column(db.Float(64), default=0)
    goal_bf_percentage = db.Column(db.Float(64), default=0)
    total_weight_lost = db.Column(db.Float(64), default=0)
    total_weight_gained = db.Column(db.Float(64), default=0)
    starting_fat_pounds = db.Column(db.Float(64), default=0)
    current_fat_pounds = db.Column(db.Float(64), default=0)
    goal_fat_pounds = db.Column(db.Float(64), default=0)
    fat_lost = db.Column(db.Float(64), default=0)
    starting_lean_bodymass = db.Column(db.Float(64), default=0)
    current_lean_bodymass = db.Column(db.Float(64), default=0)
    goal_lean_bodymass = db.Column(db.Float(64), default=0)
    bmi = db.Column(db.Float(64), default=0)
    nonfat_lost = db.Column(db.Float(64), default=0)
    goal_fat_loss = db.Column(db.Float(64), default=0)
    goal_weight_auto = db.Column(db.Float(64), default=0)
    goal_fat_loss_auto = db.Column(db.Float(64), default=0)
    goal_muscle_gain = db.Column(db.Float(64), default=0)

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

    def set_password(self, password):
        self.password_hash = generate_password_hash(password)

    def check_password(self, password):
        return check_password_hash(self.password_hash, password)

    def avatar(self, size):
        digest = md5(self.email.lower().encode('utf-8')).hexdigest()
        return 'https://www.gravatar.com/avatar/{}?d=identicon&s={}'.format(
            digest, size)

    def get_reset_password_token(self, expires_in=600):
        return jwt.encode(
            {
                'reset_password': self.id,
                'exp': time() + expires_in
            },
            app.config['SECRET_KEY'],
            algorithm='HS256').decode('utf-8')

    @staticmethod
    def verify_reset_password_token(token):
        try:
            id = jwt.decode(token,
                            app.config['SECRET_KEY'],
                            algorithms=['HS256'])['reset_password']
        except:
            return
        return User.query.get(id)
Ejemplo n.º 30
0
class Tweet(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    tweet_id = db.Column(db.String(20), unique=True)
    text = db.Column(db.String(500), nullable=False)