class Item(db.Model): id = db.Column(db.Integer(), primary_key=True) name = db.Column(db.String(length=30), nullable=False, unique=True) price = db.Column(db.Integer(), nullable=False) barcode = db.Column(db.String(length=12), nullable=False, unique=True) description = db.Column(db.String(length=1024), nullable=False, unique=True) owner = db.Column(db.Integer(), db.ForeignKey('user.id')) # To get the string representation of the database # Returns the name of the item def __repr__(self): return f'Item: {self.name}' #Function to assign ownership to a user def assign_owner(self, user_obj): self.owner = user_obj.id user_obj.budget -= self.price db.session.commit() #Function to change back ownership to market of the item def change_owner(self, user_obj): self.owner = None user_obj.budget += self.price db.session.commit()
class Item(db.Model): # Columns for the table id = db.Column(db.Integer(), primary_key=True) name = db.Column(db.String(length=30), nullable=False, unique=True) price = db.Column(db.Integer(), nullable=False) barcode = db.Column(db.String(length=12), nullable=False, unique=True) description = db.Column(db.String(length=1024), nullable=False, unique=True) owner = db.Column(db.Integer(), db.ForeignKey('user.id')) def __repr__(self): return '<Item %r>' % self.id # Purchase the item def setOwnership(self, user): # Set ownership of the item to current user self.owner = user.id # Decrease the budget of the user user.budget -= self.price db.session.commit() # Sell the item def sell(self, user): # Set ownership to Nobody self.owner = None # Give the money back to the user user.budget += self.price db.session.commit()
class Item(db.Model): id = db.Column(db.Integer(), primary_key=True) name = db.Column(db.String(50), nullable=False) barcode = db.Column(db.String(50), nullable=False, unique=True) price = db.Column(db.Float(), nullable=False) description = db.Column(db.String(2000)) owner = db.Column(db.Integer(), db.ForeignKey('user.id')) def __repr__(self): return f"{self.name}-{self.price}"
class Item(db.Model): id = db.Column(db.Integer(), primary_key=True) name = db.Column(db.String(length=30), nullable=False, unique=True) price = db.Column(db.Integer(), nullable=False) barcode = db.Column(db.String(length=12), nullable=False, unique=True) description = db.Column(db.String(length=1024), nullable=False, unique=True) owner = db.Column(db.Integer(), db.ForeignKey('user.id')) def __repr__(self): return f'Item {self.name}'
class Message(db.Model): 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')) body = db.Column(db.Text) #db.String(140) timestamp = db.Column(db.DateTime, index=True, default=datetime.utcnow) @staticmethod def on_changed_body(target, value, oldvalue, initiator): allowed_tags = [ 'a', 'abbr', 'acronym', 'b', 'blockquote', 'code', 'em', 'i', 'li', 'ol', 'pre', 'strong', 'ul', 'h1', 'h2', 'h3', 'p', 'iframe' ] target.body = bleach.linkify( bleach.clean(markdown(value, output_format='html'), tags=allowed_tags, strip=True)) def __repr__(self): return '<Message {}>'.format(self.body)
class Comment(db.Model): id = db.Column(db.Integer, primary_key=True) body = 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) post_id = db.Column(db.Integer, db.ForeignKey("post.id"), nullable=False) @staticmethod def on_changed_body(target, value, oldvalue, initiator): allowed_tags = [ 'a', 'abbr', 'acronym', 'b', 'blockquote', 'code', 'em', 'i', 'li', 'ol', 'pre', 'strong', 'ul', 'h1', 'h2', 'h3', 'p', 'iframe' ] target.body = bleach.linkify( bleach.clean(markdown(value, output_format='html'), tags=allowed_tags, strip=True)) def __repr__(self): return f"<Reply (id='{self.id}', body='{self.body}', date_posted='{self.date_posted}')>"
class Item(db.Model): id = db.Column(db.Integer(), primary_key=True) name = db.Column(db.String(length=30),nullable=False, unique=True) price = db.Column(db.Integer(),nullable=False) barcode = db.Column(db.String(length=12),nullable=False,unique=True) description = db.Column(db.String(length=1024),nullable=False,unique=True) owner = db.Column(db.Integer(), db.ForeignKey('user.id')) def buy(self, buying_user): self.owner = buying_user.id buying_user.budget -= self.price db.session.commit() def __repr__(self): return f'Item {self.name}'
class Item(db.Model): id = db.Column(db.Integer(), primary_key=True) name = db.Column(db.String(length=30), nullable=False, unique=True) price = db.Column(db.Integer(), nullable=False) barcode = db.Column(db.String(length=12), nullable=False, unique=True) description = db.Column(db.String(length=1024), nullable=False, unique=True) owner = db.Column(db.Integer(), db.ForeignKey('user.id')) def buy(self, user): self.owner = user.id user.budget -= self.price db.session.commit() def sell(self,user): self.owner = None user.budget += self.price db.session.commit()
class Item(db.Model): id = db.Column(db.Integer(), primary_key=True) name = db.Column(db.String(length=30), nullable=False, unique=True) price = db.Column(db.Integer(), nullable=False, unique=True) barcode = db.Column(db.String(length=12), nullable=False, unique=True) description = db.Column(db.String(1024), nullable=False, unique=True) # relationship to the user. 'user.id' must be in lower case owner = db.Column(db.Integer(), db.ForeignKey('user.id')) # I'm using this to return the value in name field def __repr__(self): return f'Item {self.name}' def buy(self, user): self.owner = user.id user.budget -= self.price db.session.commit() def sell(self, user): self.owner = None user.budget += self.price db.session.commit()
class Post(db.Model): id = db.Column(db.Integer, primary_key=True) title = db.Column(db.String(100), nullable=True) content = db.Column(db.Text, nullable=False) image = db.Column(db.String(20), nullable=False) image2 = db.Column(db.String(20), nullable=True) image3 = db.Column(db.String(20), nullable=True) price = db.Column(db.String(20), nullable=False) tags = db.Column(db.String(100), nullable=True) date_posted = db.Column(db.DateTime, nullable=False, default=datetime.utcnow) sold = db.Column(db.Boolean, default=False, nullable=False) user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False) likes = db.relationship('PostLike', backref='post', lazy='dynamic') comments = db.relationship("Comment", backref="post", lazy="dynamic", cascade="all, delete-orphan") def __repr__(self): if self.title != None: return f"Post('{self.title}','{self.content}', '{self.date_posted}')" else: return f"Post({self.content}', '{self.date_posted}')" @staticmethod def on_changed_body(target, value, oldvalue, initiator): allowed_tags = [ 'a', 'abbr', 'acronym', 'b', 'blockquote', 'code', 'em', 'i', 'li', 'ol', 'pre', 'strong', 'ul', 'h1', 'h2', 'h3', 'p', 'iframe' ] target.content = bleach.linkify( bleach.clean(markdown(value, output_format='html'), tags=allowed_tags, strip=True))
class PostLike(db.Model): __tablename__ = 'post_like' id = db.Column(db.Integer, primary_key=True) user_id = db.Column(db.Integer, db.ForeignKey('user.id')) post_id = db.Column(db.Integer, db.ForeignKey('post.id'))
from datetime import datetime from itsdangerous import TimedJSONWebSignatureSerializer as Serializer from market import db, login_manager, app from flask_login import UserMixin from markdown import markdown import bleach @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'))) liked = db.relationship('PostLike', foreign_keys='PostLike.user_id', backref='user', lazy='dynamic') class User(db.Model, UserMixin): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(80), nullable=False) username = db.Column(db.String(20), unique=True, nullable=False) email = db.Column(db.String(120), unique=True, nullable=False) bio = db.Column(db.String(120), nullable=True) dp = db.Column(db.String(20), nullable=False, default='default.png')