Beispiel #1
0
class Region(db.Model):
  __tablename__ = 'region'
  
  id = db.Column(db.Integer(), primary_key=True)
  name = db.Column(db.String(255))
  slug = db.Column(db.String(255), unique=True)
  created = db.Column(db.DateTime())
  updated = db.Column(db.DateTime())
  active = db.Column(db.Integer())
  
  osm_id = db.Column(db.Integer())
  geo_json = db.Column(db.Text())
  rgs = db.Column(db.String(255))
  region_level = db.Column(db.Integer())
  postalcode = db.Column(db.String(255))
  
  lat = db.Column(db.Numeric(precision=10,scale=7))
  lon = db.Column(db.Numeric(precision=10,scale=7))
  
  region_parent_id = db.Column(db.Integer, db.ForeignKey('region.id'))
  region_parent = db.relationship("Region", backref="region_children", remote_side=[id])
  service_sites = db.relationship("ServiceSite", backref="region", lazy='dynamic')
  # hosts as defined in Host
  
  def __init__(self):
    pass

  def __repr__(self):
    return '<Hoster %r>' % self.name
class Advertisement(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    companydetail_id = db.Column(db.Integer,
                                 db.ForeignKey('companydetail.id'),
                                 nullable=False)
    date_posted = db.Column(db.Date, nullable=False, default=date.today())
    deadline = db.Column(db.Date,
                         nullable=False,
                         default=date.today() + relativedelta(months=+1))
    title = db.Column(db.String(120), nullable=False)
    description = db.Column(db.String(800), nullable=False)
    keywords = db.relationship('Keyword',
                               secondary=advertisement_keyword,
                               lazy='subquery',
                               backref=db.backref('advertisements', lazy=True))

    users = db.relationship('User',
                            secondary=advertisement_users,
                            lazy='subquery',
                            backref=db.backref('advertisements', lazy=True))

    responses = db.relationship('Response', backref='advertisement')

    def __repr__(self):  #alihan
        return f"Advertisement('{self.id}', '{self.title}')"
class Companydetail(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    user_id = db.Column(db.Integer,
                        db.ForeignKey('user.id'),
                        nullable=False,
                        unique=True)
    name = db.Column(db.String(150), nullable=False)
    description = db.Column(db.String(800), nullable=False)
    address = db.Column(db.String(800), nullable=False)
    website = db.Column(db.String(180))
    github = db.Column(db.String(180))
    linkedin = db.Column(db.String(180))
    numberofworkers = db.Column(db.Integer)
    advertisements = db.relationship('Advertisement',
                                     backref='company_detail',
                                     lazy=True)
    img = db.Column(db.Text, nullable=True)
    imgname = db.Column(db.Text, nullable=True)
    mimetype = db.Column(db.Text, nullable=True)
    keywords = db.relationship('Keyword',
                               secondary=companydetail_keyword,
                               lazy='subquery',
                               backref=db.backref('companydetails', lazy=True))

    interests = db.relationship('Interestarea',
                                secondary=companydetail_interestarea,
                                lazy='subquery',
                                backref=db.backref('companydetails',
                                                   lazy=True))

    def __repr__(self):
        return f"Companydetail('{self.id}', '{self.name}')"
Beispiel #4
0
class Order(db.Model, Repopulatable):
    id = db.Column(db.Integer, primary_key=True)

    platform_order_id = db.Column(db.String)

    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
    user = db.relationship("User", backref=db.backref("orders"))

    user_legacy_id = db.Column(db.Integer, db.ForeignKey('user_legacy.id'))
    user_legacy = db.relationship("UserLegacy", backref=db.backref("orders"))

    products = db.relationship('Product', secondary=order_products_table,
                               backref=db.backref('orders', lazy='dynamic'))

    shop_id = db.Column(db.Integer, db.ForeignKey('shop.id'))
    shop = db.relationship("Shop", backref=db.backref("orders"))

    browser_ip = db.Column(db.String)
    delivery_tracking_number = db.Column(db.String)
    discount = db.Column(db.String)

    status = db.Column(db.String,
                       default=Constants.ORDER_STATUS_PURCHASED)  # ['PURCHASED', 'SHIPPED', 'NOTIFIED', 'REVIEWED']

    purchase_timestamp = db.Column(db.DateTime)
    shipment_timestamp = db.Column(db.DateTime)

    to_notify_timestamp = db.Column(db.DateTime)
    notification_timestamp = db.Column(db.DateTime)

    funnel_stream_id = db.Column(db.Integer, db.ForeignKey('funnel_stream.id'))
    funnel_stream = db.relationship("FunnelStream", backref=db.backref("order", uselist=False))
Beispiel #5
0
class Shop(db.Model, Repopulatable):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String)
    description = db.Column(db.String)
    domain = db.Column(db.String)
    image_url = db.Column(db.String)
    active = db.Column(db.Boolean, default=True)

    automatically_approve_reviews = db.Column(db.Boolean, default=True)

    access_user = db.Column(db.String)
    access_token = db.Column(db.String)
    products_imported = db.Column(db.Boolean, default=False)

    owner_id = db.Column(db.Integer, db.ForeignKey('user.id'),
                         default=current_user.id if current_user and current_user.is_authenticated() else None)
    owner = db.relationship("User", backref=db.backref("shops"))

    platform_id = db.Column(db.Integer, db.ForeignKey('platform.id'))
    platform = db.relationship("Platform", backref=db.backref("platform"))




    def __repr__(self):
        return '<Shop %r>' % self.name
Beispiel #6
0
class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(15), index=True)
    surname = db.Column(db.String(40), index=True)
    email = db.Column(db.String(80), index=True)
    password = db.Column(db.String(100), index=True)
    fcm_token = db.Column(db.String(200), index=True)
    organizations = db.relationship("User_Organization_mapping",
                                    back_populates="user")
    services = db.relationship("Subscription", back_populates="user")
    in_repairing = db.relationship("Service")

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

    def __repr__(self):
        return 'Name: {0} \nSurname: {1} \nE-mail: {2}'.format(
            self.name, self.surname, self.email)

    def is_authenticated(self):
        return True

    def is_active(self):
        return True

    def is_anonymous(self):
        return False

    def get_id(self):
        return unicode(self.id)
class Studentdetail(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    user_id = db.Column(db.Integer,
                        db.ForeignKey('user.id'),
                        nullable=False,
                        unique=True)
    name_surname = db.Column(db.String(150), nullable=False)
    description = db.Column(db.String(800))
    university = db.Column(db.String(120), nullable=False)
    class_level = db.Column(db.Integer, nullable=False)
    gpa = db.Column(db.Float, nullable=False)
    active = db.Column(db.Boolean, nullable=False, default=True)
    github = db.Column(db.String(180))
    linkedin = db.Column(db.String(180))
    img = db.Column(db.Text, nullable=True)
    imgname = db.Column(db.Text, nullable=True)
    mimetype = db.Column(db.Text, nullable=True)
    advertisements = db.relationship('Advertisement',
                                     secondary=advertisement_studentdetail,
                                     lazy='subquery',
                                     backref=db.backref('studentdetails',
                                                        lazy=True))
    keywords = db.relationship('Keyword',
                               secondary=studentdetail_keyword,
                               lazy='subquery',
                               backref=db.backref('studentdetails', lazy=True))

    def __repr__(self):
        return f"Studentdetail('{self.id}', '{self.name_surname}', '{self.university}')"
Beispiel #8
0
class Blog(db.Model):
    __tablename__ = 'blogs'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    title = db.Column(db.String(256), index=True)
    body = db.Column(db.Text())
    timestamp = db.Column(db.DateTime, default=datetime.utcnow(), index=True)
    body_html = db.Column(db.Text())
    author_id = db.Column(db.Integer, db.ForeignKey('users.id'))
    looks = db.Column(db.BigInteger, default=0)

    comments = db.relationship('Comment', backref='blog', lazy='dynamic')
    imgs = db.relationship('BlogImgs', backref='blog', lazy='dynamic')

    def __repr__(self):
        return '<blog %r>' % self.title

    # 博客发表
    def upload_blog(self):
        db.session.add(self)
        db.session.commit()

    # 每浏览一次,浏览量自动加一
    def ping(self):
        self.looks += 1
        db.session.add(self)

    def delete_blog_imgs(self):
        for i in self.imgs:
            cos_class.delete_file(i.img_url)
            db.session.delete(i)
        cos_class.delete_file('/users/%s/blog_img/%s/' %
                              (self.author.username, self.id))

    #删除博客
    def delete_blog(self):
        for c in self.comments:
            db.session.delete(c)
        self.delete_blog_imgs()
        db.session.delete(self)
        db.session.commit()

    # 将博客内容自动生成html格式
    @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', 'h4', 'h5', 'h6', 'p', 'img', 'span']
        # 允许的标签属性
        allowed_columns = {
            '*':
            ['class', 'id', 'style', 'background', 'title', 'width', 'height'],
            'a': ['href', 'rel'],
            'img': ['src', 'alt'],
        }
        target.body_html = bleach.clean(value,
                                        tags=allowed_tags,
                                        attributes=allowed_columns,
                                        strip=True)
Beispiel #9
0
class Reservation(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    guest_id = db.Column(db.Integer, db.ForeignKey('guest.id'))
    guest = db.relationship('Guest')
    table_id = db.Column(db.Integer, db.ForeignKey('table.id'))
    table = db.relationship('Table')
    reservation_time_from = db.Column(db.String, index=True)
    reservation_time_to = db.Column(db.String, index=True)
Beispiel #10
0
class ModuleTaskUserMap(db.Model):
    __tablename__ = "module_task_user_map"
    task_id = db.Column(db.Integer,
                        db.ForeignKey("module_task.id"),
                        primary_key=True)
    user_id = db.Column(db.Integer, db.ForeignKey("user.id"), primary_key=True)
    info = db.Column(db.String(1024))
    user = db.relationship("User", backref="module_task_user")
    module_tasks = db.relationship("ModuleTask", backref="module_task_user")
Beispiel #11
0
class Dog(db.Model):
    __tablename__ = 'dog'

    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    _name = db.Column(db.String(128))
    _breed = db.Column(db.String(128))
    _birthday = db.Column(db.Date)
    _metric = db.Column(db.String(2))
    _current = db.Column(db.Float)
    _goal = db.Column(db.Float)
    _date = db.Column(db.Date)
    _image_filename = db.Column(db.String, default=None, nullable=True)
    _image_url = db.Column(db.String, default=None, nullable=True)
    _thumbnail_url = db.Column(db.String, default=None, nullable=True)
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
    user = db.relationship('User', back_populates='dogs')

    logs = db.relationship('Log', back_populates='dog')

    def __init__(self,
                 _name,
                 breed,
                 birthday,
                 metric,
                 current,
                 goal,
                 date,
                 user_id,
                 image_filename=None,
                 image_url=None,
                 thumbnail_url=None):
        self._name = _name
        self._breed = breed
        self._birthday = birthday
        self._metric = metric
        self._current = current
        self._goal = goal
        self._date = date
        self._image_filename = image_filename
        self._image_url = image_url
        self._thumbnail_url = thumbnail_url
        self.user_id = user_id

    def to_json(self):
        return {
            'name': self._name,
            'breed': self._breed,
            'birthday': self._birthday.strftime('%m/%d/%Y'),
            'current': self._current,
            'goal': self._goal,
            'date': self._date.strftime('%m/%d/%Y'),
            'metric': self._metric,
            'imageFilename': self._image_filename,
            'imageUrl': self._image_url,
            'thumbnailUrl': self._thumbnail_url,
            'id': str(self.id)
        }
Beispiel #12
0
class User(db.Model, UserMixin):
    __tablename__ = 'user'
    id = db.Column(db.Integer, primary_key=True)
    first_name = db.Column(db.String(30))
    last_name = db.Column(db.String(255))
    username = db.Column(db.String(20), unique=True, nullable=False)
    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.png')
    bio = db.Column(db.TEXT, default='')
    created_on = db.Column(db.DateTime,
                           nullable=False,
                           default=datetime.utcnow)
    last_online = db.Column(db.DateTime,
                            nullable=False,
                            default=datetime.utcnow)
    starting_cash = db.Column(db.Float, nullable=False)
    cash = db.Column(db.Float, default=0.00)
    portfolio_value = db.Column(db.Float, default=0.00)
    portfolio_size = db.Column(db.Integer, nullable=False, default=0)
    num_buys = db.Column(db.Integer, nullable=False, default=0)
    num_sales = db.Column(db.Integer, nullable=False, default=0)
    num_equal_sales = db.Column(db.Integer, nullable=False, default=0)
    num_positive_sales = db.Column(db.Integer, nullable=False, default=0)
    num_negative_sales = db.Column(db.Integer, nullable=False, default=0)
    last_buy = db.Column(db.DateTime)
    last_sale = db.Column(db.DateTime)
    status = db.Column(db.Boolean, nullable=False, server_default='1')
    access = db.Column(db.Integer, nullable=False, default=1)
    roles = db.relationship('Role', secondary='user_roles')
    shares = db.relationship('Share', backref='owner', lazy=True)
    transactions = db.relationship('Transaction', backref='user', lazy=True)

    def __repr__(self):
        return f"{self.username}"

    def is_admin(self):
        return self.access == ACCESS['admin']

    def allowed(self, access_level):
        return self.access >= access_level

    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)
Beispiel #13
0
class ReviewFeature(db.Model):
    id = db.Column(db.Integer, primary_key=True)

    timestamp = db.Column(db.DateTime)

    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
    user = db.relationship("User", backref=db.backref("review_features"))

    review_id = db.Column(db.Integer, db.ForeignKey('review.id'))
    review = db.relationship("Review", backref=db.backref("featured"), uselist=False)
Beispiel #14
0
class ReviewReport(db.Model):
    id = db.Column(db.Integer, primary_key=True)

    timestamp = db.Column(db.DateTime)

    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
    user = db.relationship("User", backref=db.backref("review_reports"))

    review_id = db.Column(db.Integer, db.ForeignKey('review.id'))
    review = db.relationship("Review", backref=db.backref("reports"))
Beispiel #15
0
class Answer(db.Model, Repopulatable):
    id = db.Column(db.Integer, primary_key=True)
    created_ts = db.Column(db.DateTime)

    body = db.Column(db.String)

    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
    user = db.relationship("User", backref=db.backref("answers"))

    question_id = db.Column(db.Integer, db.ForeignKey('question.id'))
    question = db.relationship("Question", backref=db.backref("answers"))
Beispiel #16
0
class Hostel(db.Model):
    __tablename_ = "hostel"
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(128), unique=True)
    type = db.Column(db.String(64))
    rooms = db.relationship("HostelRoom", backref="hostel", lazy="dynamic")
    messages = db.relationship("HostelMessage",
                               backref="hostel",
                               lazy="dynamic")

    def __repr__(self):
        return f"<Hostel {self.name}>"
Beispiel #17
0
class Campaign(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(40), unique=True)
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
    battles = db.relationship('Battle', backref='campaign')
    units = db.relationship('Unit', backref='campaign')
    def __init__(self, user_id, name):
        self.user_id = user_id
        self.name = name

    def __repr__(self):
        return '<Campaign %s: %s>' % (self.id, self.name)
Beispiel #18
0
class Organization(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(80), index=True)
    users = db.relationship("User_Organization_mapping",
                            back_populates="organization")
    services = db.relationship("Service", backref='organization')

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

    def __repr__(self):
        return 'Name: {0}'.format(self.name)
Beispiel #19
0
class User(UserMixin, db.Model):
    __tablename__ = 'users'

    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(64), index=True, unique=True)
    full_name = db.Column(db.String(64), index=True)
    email = db.Column(db.String(120), index=True, unique=True)
    password_hash = db.Column(db.String(128))
    tracks = db.relationship('Track', backref='author', lazy='dynamic')
    about_me = db.Column(db.String(140))
    last_seen = db.Column(db.DateTime, default=datetime.utcnow)

    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 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=80):
        digest = md5(self.email.lower().encode('utf-8')).hexdigest()
        return 'https://www.gravatar.com/avatar/{}?d=identicon&s={}'.format(
            digest, size)

    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_tracks(self):
        followed = Track.query.join(
            followers, (followers.c.followed_id == Track.user_id)).filter(
                followers.c.follower_id == self.id)
        own = Track.query.filter_by(user_id=self.id)
        return followed.union(own).order_by(Track.timestamp.desc)

    def __repr__(self):
        return '<User {}>'.format(self.username)
Beispiel #20
0
class HostelRoomUserMap(db.Model):
    __tablename__ = "hostel_room_user_map"
    hostel_room_id = db.Column(db.Integer,
                               db.ForeignKey("hostel_room.id"),
                               primary_key=True)
    academic_year = db.Column(db.Integer, primary_key=True)
    semester = db.Column(db.Integer, primary_key=True)
    user_id = db.Column(db.Integer, db.ForeignKey("user.id"))
    user = db.relationship("User", backref="hostel_room_user")
    hostel_room = db.relationship(
        "HostelRoom",
        backref=db.backref(
            "hostel_room_user",
            cascade="save-update, merge, delete, delete-orphan"))
Beispiel #21
0
class Question(db.Model, Repopulatable, RenderableObject):
    id = db.Column(db.Integer, primary_key=True)
    created_ts = db.Column(db.DateTime)

    body = db.Column(db.String)

    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
    user = db.relationship("User", backref=db.backref("questions"))

    product_id = db.Column(db.Integer, db.ForeignKey('product.id'))
    product = db.relationship("Product", backref=db.backref("questions"))

    click_count = db.Column(db.Integer, default=0)
    is_public = db.Column(db.Boolean, default=False)
Beispiel #22
0
class Log(db.Model):
    __tablename__ = 'log'

    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    _date = db.Column(db.Date)
    _weight = db.Column(db.Float, default=None, nullable=True)
    _total_duration = db.Column(db.Integer, default=None)
    _total_calories = db.Column(db.Integer, default=None)
    _daily_calories = db.Column(db.Float, default=None)
    _image_filename = db.Column(db.String, default=None, nullable=True)
    _image_url = db.Column(db.String, default=None, nullable=True)
    _thumbnail_url = db.Column(db.String, default=None, nullable=True)
    food_logs = db.relationship('FoodLog', back_populates='log')
    exercise_logs = db.relationship('ExerciseLog', back_populates='log')

    dog_id = db.Column(db.Integer, db.ForeignKey('dog.id'))
    dog = db.relationship('Dog', back_populates='logs')

    def __init__(self,
                 date,
                 dog_id,
                 weight=None,
                 daily_calories=None,
                 total_calories=None,
                 total_duration=None,
                 image_filename=None,
                 image_url=None,
                 thumbnail_url=None):
        self._date = date
        self.dog_id = dog_id
        self._weight = weight
        self._daily_calories = daily_calories
        self._total_calories = total_calories
        self._total_duration = total_duration
        self._image_filename = image_filename
        self._image_url = image_url
        self._thumbnail_url = thumbnail_url

    def to_json(self):
        return {
            'id': str(self.id),
            'date': self._date.strftime('%m/%d/%Y'),
            'weight': self._weight,
            'dailyCalories': self._daily_calories,
            'totalCalories': self._total_calories,
            'totalDuration': self._total_duration,
            'imageFilename': self._image_filename,
            'imageUrl': self._image_url,
            'thumbnailUrl': self._thumbnail_url
        }
Beispiel #23
0
class User(db.Model):
    __tablename__ = 'user'
    __table_args__ = {'extend_existing': True}
    id = db.Column(db.Integer, primary_key=True)
    firstname = db.Column(db.String(40), nullable=False)
    Lastname = db.Column(db.String(40), nullable=False)
    email = db.Column(db.String(40), nullable=False)
    phone = db.Column(db.String(15), unique=True, nullable=False)
    details = db.relationship('Details', backref='user', uselist=False)
    password = db.relationship('Credential', backref='user', uselist=False)
    roll = db.Column(db.String(4), nullable=False)

    def __init__(self, firstname, lastname, email, phone, address, dob,
                 password, roll):
        self.email = email
        self.roll = roll
        self.firstname = firstname
        self.Lastname = lastname
        self.phone = phone
        self.details = Details(user_id=self.id, address=address, dob=dob)
        self.password = Credential(user_id=self.id, password=password)

    def serialize(self):
        # print(self.details[0].serialize())
        data = {
            'id': self.id,
            'firstname': self.firstname,
            'lastname': self.Lastname,
            'phone': self.phone,
            'address': self.details.address,
            'roll': self.roll,
            'dob': datetime.strftime(self.details.dob, '%Y-%B-%d'),
            'email': self.email
        }
        return data

    def dbserialize(self):
        data = {
            'id': self.id,
            'firstname': self.firstname,
            'lastname': self.Lastname,
            'email': self.email,
            'phone': self.phone,
            'address': self.details.address,
            'dob': datetime.strftime(self.details.dob, '%Y-%m-%d'),
            'password': self.password.cpassword,
            'roll': self.roll
        }
        return data
Beispiel #24
0
class Task(db.Model):
    id = db.Column(db.Integer, primary_key=True)

    celery_uuid = db.Column(db.String)
    eta = db.Column(db.DateTime)
    status = db.Column(db.String)

    method = db.Column(db.String)
    kwargs = db.Column(db.String)

    order_id = db.Column(db.Integer, db.ForeignKey('order.id'))
    order = db.relationship("Order", backref=db.backref("tasks"))

    funnel_stream_id = db.Column(db.Integer, db.ForeignKey('funnel_stream.id'))
    funnel_stream = db.relationship("FunnelStream", backref=db.backref("tasks"))
Beispiel #25
0
class Task(db.Model):

    id = db.Column(db.Integer, autoincrement=True, primary_key=True)
    time_added = db.Column(db.DateTime,
                           nullable=False,
                           default=datetime.now(tz))
    time_updated = db.Column(db.DateTime,
                             default=datetime.now(tz),
                             onupdate=datetime.now(tz))

    name = db.Column(db.String(100), nullable=False)
    description = db.Column(db.String(250), nullable=False)
    deadline = db.Column(db.DateTime, nullable=False)

    user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False)
    subject_id = db.Column(db.Integer,
                           db.ForeignKey('subject.id'),
                           nullable=False)

    comment = db.relationship('Comment',
                              backref='task',
                              lazy=True,
                              foreign_keys="Comment.task_id")

    def __repr__(self):
        return f"Task('{self.name}', '{self.description}', '{self.deadline}')"
class Album(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    sku = db.Column(db.String(255), nullable=False)
    artist_id = db.Column(db.Integer, db.ForeignKey(
        "artist.id"), nullable=False)
    title = db.Column(db.String(1024), nullable=False)
    year = db.Column(db.Integer, nullable=False)
    format = db.Column(db.String(255), nullable=False)
    price = db.Column(db.Float(), nullable=False)
    tracks = db.relationship('Track', backref='Album', lazy=True)

    @property
    def album_art(self):
        id_album = list(str(self.id))
        id_album.reverse()
        filepath = '/'.join(id_album)
        albumart = os.path.join(app.static_folder, 'albumart')
        filename = os.path.join(albumart, filepath, f'{self.id}.jpg')

        if os.path.exists(filename) and (os.path.getsize(filename) > 0):
            return f"/static/albumart/{filepath}/{self.id}.jpg"
        else:
            return "/static/img/no-albumart.svg"

    def __repr__(self):
        return f"Album('{self.name}')"
class Artist(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(255), nullable=False)
    albums = db.relationship('Album', backref='artist', lazy=True)

    def __repr__(self):
        return f"Artist('{self.name}')"
Beispiel #28
0
class Account(db.Model):
    __tablename__ = "wx_account"
    __table_args__ = {
        "useexisting": True,
        'mysql_charset': 'utf8mb4'
    }

    id = db.Column(db.Integer, primary_key=True)
    account_name = db.Column(db.String(50))  # 公众号名称
    account_id = db.Column(db.String(30), unique=True)  # 公众号唯一id
    account_biz = db.Column(db.String(20), unique=True)  # 公众号__biz
    account_id_unique = db.Column(db.String(30), unique=True)  # 公众号唯一id
    account_logo = db.Column(db.String(300), unique=True)  # 公众号头像
    account_desc = db.Column(db.String(300))  # 公众号描述
    account_url = db.Column(db.String(500), unique=True)  # 公众号解析链接

    created = db.Column(db.String(20), default=str(int(time.time())))  # 公众号添加时间

    status = db.Column(db.Integer, default=0)  # 状态0-未运行,1-等待中,2-运行中,3-已暂停
    offset = db.Column(db.Integer, default=0)  # 公众号偏移量
    counts = db.Column(db.Integer, default=0)  # 公众号获取的文章数量
    end = db.Column(db.Boolean, default=False)  # 公众号爬取是否完毕
    fail = db.Column(db.Boolean, default=False)  # 公众号有效性

    update = db.Column(db.String(20), default="1356969600")  # 公众号更新时间

    articles = db.relationship("Article", backref="wx_account")

    def __repr__(self):
        return "<Account: %s %s %s %s>" % (self.account_name, self.account_id, self.offset, self.end)
Beispiel #29
0
class Category(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    cat_name = db.Column(db.String(), unique=True, nullable=False)
    dish = db.relationship('Dish', backref='category', lazy=True)

    def __repr__(self):
        return f"Categeory: '{self.cat_name}'"
Beispiel #30
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 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}')"