Пример #1
0
class FrameType(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    frame_name = db.Column(db.String(16))
    frames = db.relationship('Position', backref='frame_type')

    def __repr__(self):
        return self.frame_name
Пример #2
0
class Word(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    text = db.Column(db.String(30), unique=True, nullable=False)
    sentences = db.relationship('Sentence', backref='keyword', lazy='dynamic')

    def __repr__(self):
        return '{}'.format(self.text)
Пример #3
0
class Sentence(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    body = db.Column(db.String(350), unique=True, nullable=False)
    word_id = db.Column(db.Integer, db.ForeignKey('word.id'), nullable=False)

    def __repr__(self):
        return '{}'.format(self.body)
Пример #4
0
class Expander(db.Model):
    __tablename__ = 'expanders'
    id = db.Column(db.Integer, primary_key=True)
    expander_width = db.Column(db.String(16))
    expanders = db.relationship('Position', backref='expander')

    def __repr__(self):
        return self.expander_width
Пример #5
0
class Casing(db.Model):
    __tablename__ = 'casings'
    id = db.Column(db.Integer, primary_key=True)
    casing_count = db.Column(db.String(16))
    casings = db.relationship('Position', backref='casings_count')

    def __repr__(self):
        return self.casing_count
Пример #6
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)
Пример #7
0
class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(30), unique=True, nullable=False)
    email = db.Column(db.String(120), unique=True, nullable=False)
    password = db.Column(db.String(60), nullable=False)

    def __repr__(self):
        return "id: {}, username: {}\n".format(self.id, self.username)
Пример #8
0
class AluminumButt(db.Model):
    """docstring for AluminumButt"""
    __tablename__ = 'aluminum_butts'
    id = db.Column(db.Integer, primary_key=True)
    butt_description = db.Column(db.String(64))
    butts = db.relationship('Position', backref='alum_butt')

    def __repr__(self):
        return self.butt_description
Пример #9
0
class DoorsSeal(db.Model):
    """docstring for DoorsSeal"""
    __tablename__ = 'door_seals'
    id = db.Column(db.Integer, primary_key=True)
    seal = db.Column(db.String(16))
    seals = db.relationship('Position', backref='door_seal')

    def __repr__(self):
        return self.seal
Пример #10
0
class HingesColor(db.Model):
    """docstring for HingesColor"""
    __tablename__ = 'hinge_colors'
    id = db.Column(db.Integer, primary_key=True)
    color = db.Column(db.String(32))
    colors = db.relationship('Position', backref='hinge_color')

    def __repr__(self):
        return self.color
Пример #11
0
class HingesType(db.Model):
    """docstring for HingesType"""
    __tablename__ = 'hinge_types'
    id = db.Column(db.Integer, primary_key=True)
    kind = db.Column(db.String(140))
    kinds = db.relationship('Position', backref='hinge_kind')

    def __repr__(self):
        return self.kind
Пример #12
0
class HingesSide(db.Model):
    """docstring for HingesSide"""
    __tablename__ = 'hinge_sides'
    id = db.Column(db.Integer, primary_key=True)
    side = db.Column(db.String(8))
    sides = db.relationship('Position', backref='hinge_side')

    def __repr__(self):
        return self.side
Пример #13
0
class LocksPurpose(db.Model):
    """docstring for LocksPurpose"""
    __tablename__ = 'lock_purpose'
    id = db.Column(db.Integer, primary_key=True)
    purpose_name = db.Column(db.String(16))
    purposes = db.relationship('Position', backref='lock_purpose')

    def __repr__(self):
        return self.purpose_name
Пример #14
0
class CW_position(db.Model):
    __tablename__ = 'cw_positions'
    id = db.Column(db.Integer, primary_key=True)

    doors_quantity = db.Column(db.Integer)

    cw_vendor_code_id = db.Column(db.Integer,
                                  db.ForeignKey('cw_vendor_codes.id'))
    cw_order_id = db.Column(db.Integer, db.ForeignKey('cw_orders.id'))
Пример #15
0
class User(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')

    def __repr__(self):
        return '<User {}>'.format(self.username)
Пример #16
0
class OrderRemark(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    body = db.Column(db.String())
    order_id = db.Column(db.Integer,
                         db.ForeignKey('order.id'),
                         index=True,
                         unique=True)

    def __repr__(self):
        return self.body
Пример #17
0
class Decor(db.Model):
    """docstring for Decor
    """
    __tablename__ = 'decor'

    id = db.Column(db.Integer, primary_key=True)
    indexname = db.Column(db.String(16))
    decorname = db.Column(db.String(128), index=True, unique=True)

    primer = db.Column(db.Boolean, default=False, nullable=False)
    paint = db.Column(db.Boolean, default=False, nullable=False)
    veneer = db.Column(db.Boolean, default=False, nullable=False)
    laminate = db.Column(db.Boolean, default=False, nullable=False)
    cased_glass = db.Column(db.Boolean, default=False, nullable=False)
    glass_cleare = db.Column(db.Boolean, default=False, nullable=False)
    glass_plus = db.Column(db.Boolean, default=False, nullable=False)

    def __repr__(self):
        return self.indexname or self.decorname
Пример #18
0
class CW_order(db.Model):
    __tablename__ = 'cw_orders'
    id = db.Column(db.Integer, primary_key=True)
    order_number = db.Column(db.String(16))
    customer_manager = db.Column(db.String(32))
    customer_city = db.Column(db.String(32))
    timestamp = db.Column(db.DateTime, default=datetime.utcnow)
    sketch_is_ready = db.Column(db.Boolean)
    stickers_is_ready = db.Column(db.Boolean)

    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))

    cw_positions = db.relationship('CW_position', backref='cw_order')
Пример #19
0
class DoorModel(db.Model):
    __tablename__ = 'door_models'
    id = db.Column(db.Integer, primary_key=True)
    modelname = db.Column(db.String(64), index=True, unique=True)

    primer = db.Column(db.Boolean, default=False, nullable=False)
    paint = db.Column(db.Boolean, default=False, nullable=False)
    veneer = db.Column(db.Boolean, default=False, nullable=False)
    laminate = db.Column(db.Boolean, default=False, nullable=False)
    cased_glass = db.Column(db.Boolean, default=False, nullable=False)
    glass_cleare = db.Column(db.Boolean, default=False, nullable=False)
    glass_plus = db.Column(db.Boolean, default=False, nullable=False)

    positions = db.relationship('Position', backref='doormodel')

    def __repr__(self):
        return self.modelname
Пример #20
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))
    about_me = db.Column(db.String(140))
    # last_seen = db.Column(db.DateTime, default=datetime.utcnow)

    posts = db.relationship('Post', backref='author', lazy='dynamic')
    orders = db.relationship('Order', backref='creator', lazy='dynamic')
    cw_orders = db.relationship('CW_order',
                                backref='cw_creator',
                                lazy='dynamic')

    def __repr__(self):
        return 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)
Пример #21
0
class CW_vendor_code(db.Model):
    __tablename__ = 'cw_vendor_codes'
    id = db.Column(db.Integer, primary_key=True)
    cw_vendor_code_index = db.Column(db.Integer, index=True, unique=True)
    vendor_code_name = db.Column(db.String(32))
    doors_height = db.Column(db.Integer)
    doors_width = db.Column(db.Integer)
    hinge_side = db.Column(db.String(8))

    cw_positions = db.relationship('CW_position', backref='cw_vendor_code')
Пример #22
0
class Order(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    positions = db.relationship('Position', backref='order')
    order_number = db.Column(db.Integer, unique=True, index=True)
    timestamp = db.Column(db.DateTime, default=datetime.utcnow)
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
    customer_manager = db.Column(db.String(64))
    customer_city = db.Column(db.String(64))
    sketch_is_ready = db.Column(db.Boolean)

    ord_rem = db.relationship('OrderRemark', backref='remark', uselist=False)

    def __repr__(self):
        return 'Заказ № {}'.format(self.order_number)
Пример #23
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')
    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 __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 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())
Пример #24
0
        for obj in session._changes['delete']:
            if isinstance(obj, SearchableMixin):
                remove_from_index(obj.__tablename__, obj)
        session._changes = None

    @classmethod
    def reindex(cls):
        for obj in cls.query:
            add_to_index(cls.__tablename__, obj)


db.event.listen(db.session, 'before_commit', SearchableMixin.before_commit)
db.event.listen(db.session, 'after_commit', SearchableMixin.after_commit)

followers = db.Table(
    'followers', db.Column('follower_id', db.Integer,
                           db.ForeignKey('user.id')),
    db.Column('followed_id', db.Integer, db.ForeignKey('user.id')))


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')
    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),
Пример #25
0
class Position(db.Model):
    id = db.Column(db.Integer, primary_key=True)

    serial_number = db.Column(db.Integer, index=True)

    order_id = db.Column(db.Integer, db.ForeignKey('order.id'), index=True)

    room = db.Column(db.String(32))
    doormodel_id = db.Column(db.Integer, db.ForeignKey('door_models.id'))

    base_decor_id = db.Column(db.Integer, db.ForeignKey('decor.id'))
    second_decor_id = db.Column(db.Integer, db.ForeignKey('decor.id'))
    base_decor = db.relationship('Decor', foreign_keys=[base_decor_id])
    second_decor = db.relationship('Decor', foreign_keys=[second_decor_id])

    alum_butt_id = db.Column(db.Integer, db.ForeignKey('aluminum_butts.id'))

    frame_id = db.Column(db.Integer, db.ForeignKey('frame_type.id'))
    doors_height = db.Column(db.Integer)
    doors_width = db.Column(db.Integer)

    casing_id = db.Column(db.Integer, db.ForeignKey('casings.id'))
    expander_id = db.Column(db.Integer, db.ForeignKey('expanders.id'))

    lock_purpose_id = db.Column(db.Integer, db.ForeignKey('lock_purpose.id'))
    lock_kind_id = db.Column(db.Integer, db.ForeignKey('lock_type.id'))
    lock_color_id = db.Column(db.Integer, db.ForeignKey('lock_color.id'))

    hinge_side_id = db.Column(db.Integer, db.ForeignKey('hinge_sides.id'))
    hinge_kind_id = db.Column(db.Integer, db.ForeignKey('hinge_types.id'))
    hinge_color_id = db.Column(db.Integer, db.ForeignKey('hinge_colors.id'))

    doors_seal_id = db.Column(db.Integer, db.ForeignKey('door_seals.id'))