Ejemplo n.º 1
0
class Product(db.Model):
    __tablename__ = 'products'

    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(80))
    price = db.Column(db.Float(precision=2))
    quantity = db.Column(db.Integer())
    description = db.Column(db.String(200))
    minutes_preparation = db.Column(db.Integer())
    image_path = db.Column(db.String(80))

    product_type_id = db.Column(db.Integer, db.ForeignKey('product_types.id'))
    product_type = db.relationship('ProductType')

    #orders = db.relationship('Order', lazy='dynamic')

    def __init__(self, product_type_id, name, price, quantity, description, minutes_preparation,image_path):
        self.name = name
        self.price = price
        self.quantity = quantity
        self.description = description
        self.minutes_preparation = minutes_preparation
        self.image_path=image_path
        self.product_type_id=product_type_id

    @classmethod
    def find_by_id(cls, _id):
        return cls.query.filter_by(id=_id).first()

    @classmethod
    def find_by_name(cls, name):
        return cls.query.filter_by(name=name).first()

    def save_to_db(self):
        db.session.add(self)
        db.session.commit()

    def delete_from_db(self):
        db.session.delete(self)
        db.session.commit()

    @classmethod
    def init_data(cls):
        cls(1, "Hamburger", 6, 10, "A 150Gr grilled meat hamburger. Comes with french fries and salad.", 15, "/images/hamburger.jpg").save_to_db()
        cls(1, "Chicken", 7, 10, "A 300Gr breaded chicken. comes with potatoes and salad", 15, "/images/chicken.jpg").save_to_db()
        cls(1, "Paella", 9, 10, "Perfect for the seafood lovers, it comes with oysters and mussels", 15, "/images/paella.jpg").save_to_db()
        cls(1, "Ribs", 12, 10, "300Gr Ribs. Comes with french fries.", 15, "/images/ribs.jpg").save_to_db()
        cls(1, "Salmon", 12, 10, "Chilean salmon. Comes with vegetables.", 15, "/images/salmon.jpg").save_to_db()
        cls(1, "Wrap", 7, 10, "Wrap with chicken and salad.", 15, "/images/wrap.jpg").save_to_db()
        
        cls(2, "Soda", 2, 7, "250cc soda. The soda comes with pieces of fruit.", 5, "/images/soda.jpg").save_to_db()
        cls(2, "Juice", 3, 7, "330cc juice. Made of tropical fruits.", 9, "/images/juice.jpg").save_to_db()
        cls(2, "Tee", 3, 7, "200cc Tee.", 12, "/images/tee.jpg").save_to_db()
        cls(2, "Beer", 2, 7, "500cc Beer.", 3, "/images/beer.jpg").save_to_db()
       
        cls(3, "Pancakes", 4, 7, "Baked pancakes with syrup or honey.", 12, "/images/pancakes.jpg").save_to_db()
        cls(3, "Macaroons", 3, 7, "Try our special macaroon recipe.", 3, "/images/macaroons.jpg").save_to_db()
        cls(3, "Forest fruit Cake", 3, 7, "This cake has a great variety of forest fruits, such as  blackberries and raspberries.", 5, "/images/cake.jpg").save_to_db()
Ejemplo n.º 2
0
class ShoppingItemModel(db.Model):
    __tablename__ = 'shopping_item'

    id = db.Column(db.Integer(), primary_key=True)
    name = db.Column(db.Unicode())
    quantity = db.Column(db.Integer())
    unit = db.Column(db.Enum(Unit), nullable=False, default=Unit.kg)
    done = db.Column(db.Boolean(), default=False)

    user_id = db.Column(None, db.ForeignKey('user.id'))
    shopping_list_id = db.Column(None, db.ForeignKey('shopping_list.id'))
Ejemplo n.º 3
0
class Registration(db.Model):
    id = db.Column(db.Integer(), primary_key=True)
    username = db.Column(db.Text(), unique=True)
    blob = db.Column(db.Text())
    _priority = db.Column("priority", db.Integer())
    _confirmed = db.Column("confirmed", db.Boolean())
    uni_id = db.Column(db.Integer(), db.ForeignKey("uni.id"))
    uni = db.relationship(
        "Uni",
        backref=db.backref("Registrations",
                           lazy="dynamic",
                           cascade="all, delete-orphan"),
    )

    @property
    def user(self):
        return User.get(self.username)

    @property
    def is_guaranteed(self):
        return any(
            map(self.user.is_in_group,
                current_app.config["ZAPF_GUARANTEED_GROUPS"]))

    @property
    def confirmed(self):
        return self._confirmed or self.is_guaranteed

    @confirmed.setter
    def confirmed(self, value):
        if not self.is_guaranteed:
            self._confirmed = value

    @property
    def priority(self):
        return self._priority if not self.is_guaranteed else -1

    @priority.setter
    def priority(self, value):
        self._priority = value if not self.is_guaranteed else None

    @property
    def data(self):
        return json.loads(self.blob)

    @data.setter
    def data(self, value):
        self.blob = json.dumps(value)

    @property
    def is_zapf_attendee(self):
        return self.confirmed and self.priority < self.uni.slots
Ejemplo n.º 4
0
class Uni(db.Model):
    id = db.Column(db.Integer(), primary_key=True)
    token = db.Column(db.String(256), unique=True)
    name = db.Column(db.Text(), unique=True)
    slots = db.Column(db.Integer())

    def __init__(self, name, token, slots=3):
        self.name = name
        self.token = token
        self.slots = slots

    def __repr__(self):
        return "<Uni: {}>".format(self.name)
Ejemplo n.º 5
0
class Mascot(db.Model):
    id = db.Column(db.Integer(), primary_key=True)
    name = db.Column(db.Text(), unique=False)
    uni_id = db.Column(db.Integer(), db.ForeignKey('uni.id'))
    uni = db.relationship('Uni',
                          backref=db.backref('Mascots',
                                             lazy='dynamic',
                                             cascade="all, delete-orphan"))

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

    def __repr__(self):
        return "<Mascot: {}>".format(self.name)
Ejemplo n.º 6
0
class Role(db.Model, RoleMixin):
    id = db.Column(db.Integer(), primary_key=True)
    name = db.Column(db.String(80), unique=True)
    description = db.Column(db.String(255))

    def __str__(self):
        return self.name
Ejemplo n.º 7
0
class UserModel(db.Model):
    __tablename__ = 'user'

    id = db.Column(db.Integer(), primary_key=True)
    name = db.Column(db.Unicode())
    email = db.Column(db.Unicode(), unique=True, index=True)
    password_hash = db.Column(db.Unicode())
Ejemplo n.º 8
0
class Request(db.Model):
    __tablename__ = 'requests'

    id = db.Column(db.Integer(), primary_key=True)
    headers = db.Column(db.Unicode())
    body = db.Column(db.Unicode())
    ip = db.Column(postgresql.INET())
Ejemplo n.º 9
0
class ShoppingListModel(db.Model):
    __tablename__ = 'shopping_list'

    id = db.Column(db.Integer(), primary_key=True)
    name = db.Column(db.Unicode())
    description = db.Column(db.Unicode())

    user_id = db.Column(None, db.ForeignKey('user.id'))
Ejemplo n.º 10
0
class TodoModel(db.Model):
    __tablename__ = 'todo'

    id = db.Column(db.Integer(), primary_key=True)
    text = db.Column(db.Unicode())
    completed = db.Column(db.Boolean(), default=False)

    user_id = db.Column(None, db.ForeignKey('user.id'))
Ejemplo n.º 11
0
class Circle(db.Model):
    __tablename__ = 'circles'
    name = db.Column(db.String(32))
    type = db.Column(db.String(8))
    # start_at_desc = db.Column(db.DateTime()) # start_at_desc
    # end_at_desc = db.Column(db.DateTime()) # end_at

    start_at = db.Column(db.String(32))
    end_at = db.Column(db.String(32))

    desc = db.Column(db.String(128))
    check_rule = db.Column(db.String(256))
    circle_master_id = db.Column(db.Integer())
    avatar = db.Column(db.String(256))  # 头像地址
    joined_number = db.Column(db.Integer())  # 加入人数
    is_published = db.Column(db.Integer())  # 草稿状态为0,没有发布,发布状态为1, 已经发布

    def update_joined_number(self):
        self.joined_number += 1
Ejemplo n.º 12
0
class CircleMemberTable(db.Model):
    __tablename__ = 'circles_members'
    circle_id = db.Column(db.Integer(), index=True)  # 圈子id
    user_id = db.Column(db.Integer(), index=True)  # 用户ID

    @classmethod
    def add(cls, circle, user):
        obj = cls()
        obj.user_id = user.id
        obj.circle_id = circle.id
        db.save(obj)
        return obj

    @classmethod
    def delete(cls, circle, user):
        # db.session.delete(circle)
        item = cls.query.filter(cls.circle_id == circle.id).filter(
            cls.user_id == user.id).first()
        if item:
            db.session.delete(item)
            db.session.commit()
        return circle
Ejemplo n.º 13
0
class UserInfo(db.Model):
  __tablename__ = 'userinfo'
  id = db.Column(db.Integer, primary_key = True)
  user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
  user = relationship('User', backref=db.backref('user_info', lazy='dynamic'))
  spectrum = db.Column('spectrum', db.Integer())
  user_story = db.Column('user_story', db.String())
  goal = db.Column('goal', db.String())
  
  def __init__(self, user, spectrum, user_story, goal):
    self.user = user
    self.spectrum = spectrum
    self.user_story = user_story
    self.goal = goal
Ejemplo n.º 14
0
class Property(db.Model, json.Serialisable):
    __tablename__ = 'property'

    id = db.Column(db.Integer(), primary_key=True)
    case_id = db.Column(db.Integer(),
                        db.ForeignKey('case.id', ondelete="CASCADE"),
                        nullable=False,
                        unique=True)
    title_number = db.Column(db.String(), nullable=False)
    street = db.Column(db.String(), nullable=False)
    extended = db.Column(db.String(), nullable=True)
    locality = db.Column(db.String(), nullable=False)
    postcode = db.Column(db.String(), nullable=False)
    tenure = db.Column(db.String(), nullable=False)

    def __init__(self,
                 case_id,
                 title_number,
                 street,
                 tenure,
                 locality,
                 postcode,
                 extended=None):
        self.case_id = case_id
        self.title_number = title_number
        self.street = street
        self.extended = extended
        self.locality = locality
        self.postcode = postcode
        self.tenure = tenure

    def json_format(self):
        jsondata = {}

        def append(name, parameter):
            value = parameter(self)
            if value is not None:
                jsondata[name] = value

        append('id', lambda obj: obj.id)
        append('case_id', lambda obj: obj.case_id)
        append('title_number', lambda obj: obj.title_number)
        append('street', lambda obj: obj.street)
        append('extended', lambda obj: obj.extended)
        append('locality', lambda obj: obj.locality)
        append('postcode', lambda obj: obj.postcode)
        append('tenure', lambda obj: obj.tenure)

        return jsondata

    def object_hook(dct):
        _id = dct.get('id')
        _case_id = dct.get('case_id')
        _title_number = dct.get('title_number')
        _street = dct.get('street')
        _extended = dct.get('extended', None)
        _locality = dct.get('locality')
        _postcode = dct.get('postcode')
        _tenure = dct.get('tenure')

        property_ = Property(_case_id, _title_number, _street, _tenure,
                             _locality, _postcode, _extended)

        property_.id = _id

        return property_
Ejemplo n.º 15
0
class Clockin(db.Model):
    __tablename__ = 'clockin'
    circle_id = db.Column(db.Integer(), index=True)  # 圈子id
    user_id = db.Column(db.Integer(), index=True)  # 用户ID
    line = db.Column(db.String(256))  # 打卡配的台词
    clockin_img = db.Column(db.String(256))  # 打卡地址
Ejemplo n.º 16
0
            self.major_version,
            self.minor_version,
        )

    def fullname(self):
        return '{0} {1}.{2}'.format(
            self.name,
            self.major_version,
            self.minor_version,
        )


# Define security models
roles_users = db.Table(
    'roles_users',
    db.Column('user_id', db.Integer(), db.ForeignKey('user.id')),
    db.Column('role_id', db.Integer(), db.ForeignKey('role.id'))
)


class Role(db.Model, RoleMixin):
    id = db.Column(db.Integer(), primary_key=True)
    name = db.Column(db.String(80), unique=True)
    description = db.Column(db.String(255))

    def __str__(self):
        return self.name


class User(db.Model, UserMixin):
    id = db.Column(db.Integer, primary_key=True)
Ejemplo n.º 17
0
class TestModel(db.Model):
    __tablename__ = 'test'
    attr1 = db.Column(db.String(32))
    attr2 = db.Column(db.Integer())
    attr3 = db.Column(db.DateTime()) # 必须DT都大写
Ejemplo n.º 18
0
class Images(db.Model):
    id = db.Column(db.Integer(), primary_key=True)
    path = db.Column(db.String(5000), unique=True, nullable=False)

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