class Guia(db.Model): igui_id = db.Column(db.Integer, primary_key=True) dgui_fee = db.Column(db.DateTime) cgui_ser = db.Column(db.String(3)) cgui_num = db.Column(db.String(11)) icli_id = db.Column(db.Integer, db.ForeignKey("contacto.id")) contacto = db.relationship("Contacto", backref=db.backref('guia', lazy='dynamic')) tipo_id = db.Column(db.Integer, db.ForeignKey("guia_tipo.id")) tipo = db.relationship("GuiaTipo", backref=db.backref("guia", lazy="dynamic")) cia_id = db.Column(db.Integer, db.ForeignKey("cia.id")) cerrado = db.Column(db.Integer) vgui_est = db.Column(db.String(11)) def __repr__(self): return '<Guia %r-%r>' % (self.cgui_ser, self.cgui_num) def getNumero(self): if self.cerrado == 0: return "EN PROCESO" else: return '%s-%s' % (self.cgui_ser, self.cgui_num) def getFecha(self): return self.dgui_fee.strftime('%d-%m-%Y') def isAnulado(self): return "N" if self.vgui_est == "GENERADO" else "S"
class Producto(db.Model): id = db.Column(db.Integer, primary_key=True) serie = db.Column(db.String(255), unique=True) familia_id = db.Column(db.Integer, db.ForeignKey("familia.id")) familia = db.relationship("Familia", backref=db.backref("producto", lazy="dynamic")) marca_id = db.Column(db.Integer, db.ForeignKey("marca.id")) marca = db.relationship("Marca", backref=db.backref("producto", lazy="dynamic")) modelo_id = db.Column(db.Integer, db.ForeignKey("modelo.id")) modelo = db.relationship("Modelo", backref=db.backref("producto", lazy="dynamic")) tipo_id = db.Column(db.Integer, db.ForeignKey("tipo_producto.id")) tipo = db.relationship("TipoProducto", backref=db.backref("producto", lazy="dynamic")) guia_id = db.Column(db.Integer, db.ForeignKey("guia.igui_id")) guia = db.relationship("Guia", backref=db.backref("producto", lazy="dynamic")) producto_id = db.Column(db.Integer) #producto_id = db.Column(db.Integer, db.ForeignKey("producto.id")) #producto = db.relationship("Producto", backref=db.backref("producto", lazy="dynamic")) capacidad = db.Column(db.String(255)) def __repr__(self): return "<Producto %r>" % self.serie
class DetalleCompra(db.Model): idco_id = db.Column(db.Integer, primary_key=True) icom_id = db.Column(db.Integer, db.ForeignKey("compra.icom_id")) compra = db.relationship("Compra", backref=db.backref("detalle_compra", lazy="joined")) iins_id = db.Column(db.Integer, db.ForeignKey("producto.id")) producto = db.relationship("Producto", backref=db.backref("detalle_compra", lazy="joined")) def __repr__(self): return '<DetalleCompra %r>' % self.idco_id
class GuiaSalidaDetalle(db.Model): id = db.Column(db.Integer, primary_key=True) guia_id = db.Column(db.Integer, db.ForeignKey("guia.igui_id")) guia = db.relationship("Guia", backref=db.backref('guia_salida_detalle', lazy='dynamic')) producto_id = db.Column(db.Integer, db.ForeignKey("producto.id")) producto = db.relationship("Producto", backref=db.backref('guia_salida_detalle', lazy='dynamic')) cantidad = db.Column(db.Integer) def __repr__(self): return '<GuiaSalidaDetalle %r>' % (self.id)
class User(UserMixin, db.Model): """ модель пользователя """ id = db.Column(db.Integer, primary_key=True) email = db.Column(db.String(50), unique=True, nullable=False) password = db.Column(db.String(100), nullable=False) name = db.Column(db.String(254), nullable=False) roles = db.relationship('Role', secondary=roles_users, backref=db.backref('users', lazy='dynamic')) user_client = db.relationship('UserClient', backref='user_client') def __init__(self, **kwargs): self.email = kwargs.get('email') self.name = kwargs.get('name') self.password = bcrypt.hash(kwargs.get('password')) @classmethod def authenticate(cls, email, password): user = cls.query.filter(cls.email == email).one() if not bcrypt.verify(password, user.password): raise Exception('Invalid password') return user
class User(db.Model, UserMixin): def __init__(self, username, password, email): self.username = username self.password = password self.email = email __tablename__ = 'users' id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(80), unique=True, nullable=False) password = db.Column(db.String(120), unique=False, nullable=False) email = db.Column(db.String(120), nullable=False) role = db.relationship('Role', secondary='user_role', backref=db.backref('roler', lazy='dynamic'))
class Conf(PkModel): __tablename__ = 'conferences' year = db.Column(db.Integer, info={'label': 'Year'}, nullable=False) cfp_start = db.Column(db.Date, info={'label': 'CFP Start'}, nullable=False) cfp_end = db.Column(db.Date, info={'label': 'CFP End'}, nullable=False) talks = db.relationship('Talk', backref=db.backref('talk_conference', lazy=True)) reviewer_list = db.relationship("ReviewerList", backref="reviewer_list_conf", lazy=True, uselist=False) def __repr__(self): return 'conf:{}'.format(self.year)
class Artist(db.Model): __tablename__ = 'Artist' id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String) city = db.Column(db.String(120)) state = db.Column(db.String(120)) phone = db.Column(db.String(120)) genres = db.Column(db.String(120)) image_link = db.Column(db.String(500), nullable=True) facebook_link = db.Column(db.String(120)) seeking_talent = db.Column(db.Boolean, default=False, nullable=False) seeking_description = db.Column(db.String(360)) website = db.Column(db.String(120)) #shows = db.relationship("Show", backref='Artist', lazy = True) shows = db.relationship('Show', backref=db.backref('Artist', lazy=True))
class Compra(db.Model): icom_id = db.Column(db.Integer, primary_key=True) dcom_fee = db.Column(db.DateTime) ccom_num = db.Column(db.String(50)) guia_compra = db.Column(db.String(50)) ipve_id = db.Column(db.Integer, db.ForeignKey("contacto.id")) contacto = db.relationship("Contacto", backref=db.backref('compra', lazy='dynamic')) #detalle_compra = db.relationship("DetalleCompra", backref=db.backref("compra", lazy="joined"), lazy="dynamic") def __repr__(self): return '<Compra %r>' % self.ccom_num def fecha(self): return self.dcom_fee.strftime('%d-%m-%Y')
class User(UserMixin, db.Model): __tablename__ = 'user' id = db.Column(db.Integer, primary_key=True) first_name = db.Column(db.String(24), index=True) last_name = db.Column(db.String(24), index=True) where_from = db.Column(db.String(50), index=True) email = db.Column(db.String(72), index=True) password_hash = db.Column(db.String(128)) posts = db.relationship('Post', backref='user', lazy='dynamic') profile_picture = db.relationship('Files', backref='user') phone = db.Column(db.Unicode(255)) dob = db.Column(db.DateTime) about_me = db.Column(db.String(200)) liked = db.relationship('PostLike', foreign_keys='PostLike.user_id', backref='user', lazy='dynamic') 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 like_post(self, post): if not self.has_liked_post(post): like = PostLike(user_id=self.id, post_id=post.id) db.session.add(like) def unlike_post(self, post): if self.has_liked_post(post): PostLike.query.filter_by(user_id=self.id, post_id=post.id).delete() def has_liked_post(self, post): return PostLike.query.filter(PostLike.user_id == self.id, PostLike.post_id == post.id).count() > 0 def dislike_post(self, post): if not self.has_disliked_post(post): dislike = PostDislike(user_id=self.id, post_id=post.id) db.session.add(dislike) def undislike_post(self, post): if self.has_disliked_post(post): PostDislike.query.filter_by(user_id=self.id, post_id=post.id).delete() def has_disliked_post(self, post): return PostDislike.query.filter(PostDislike.user_id == self.id, PostDislike.post_id == post.id).count() > 0 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 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 __repr__(self): return '<User {}>'.format(self.first_name)
class CommonUserInfo(UserMixin, db.Model): """ 用户表 """ __tablename__ = 'common_user_info' id = db.Column(db.Integer, primary_key=True) # 账户 login_account = db.Column(db.String(64), unique=True) # 密码 login_password = db.Column(db.String(128)) # 真实名称 user_name = db.Column(db.String(64)) # 用户编号 user_no = db.Column(db.String(64)) # 账号状态 user_status = db.Column(db.String(64)) # 所属系统 user_sys = db.Column(db.String(64)) # 手机号 user_phone = db.Column(db.String(64)) # 用户分类(1:内部人员;2:外部人员) user_type = db.Column(db.String(64)) # 备注 user_remark = db.Column(db.String(64)) # 用户性别(1:男性,0:女性) user_sex = db.Column(db.String(64)) # 性别 user_gender = db.Column(db.Integer) # 邮箱 user_email = db.Column(db.String(64)) # 所属组织机构 user_org = db.Column(db.Integer) # extend # 真实头像 user_icon = db.Column(db.String(64)) # 最后登录时间 last_login = db.Column(db.DateTime(), default=datetime.now) # 用户状态 status = db.Column(db.Integer) # 操作人 operate_user_id = db.Column(db.Integer) # 操作时间 operate_time = db.Column(db.DateTime(), default=datetime.now) roles = db.relationship('CommonRoleInfo', secondary=user_role_mapper, lazy='dynamic', backref=db.backref('users', lazy='dynamic')) orgs = db.relationship('CommonOrgInfo', secondary=user_org_mapper, lazy='dynamic', backref=db.backref('users', lazy='dynamic')) def __repr__(self): return '<common_user_info %r>' % self.__dict__ @property def password(self): raise AttributeError('password is not a readable attribute') @password.setter def password(self, password): self.login_password = generate_password_hash(password) def verify_password(self, password): """ 密码验证方法 :param password: 需要验证的密码 :return: """ return check_password_hash(self.login_password, password) @login_manager.user_loader def load_user(user_id): return CommonUserInfo.query.get(int(user_id)) def to_json(self): return JsonUtil.ObjToJson(self) @staticmethod def generate_fake(count=100): from sqlalchemy.exc import IntegrityError from random import seed import forgery_py seed() for i in range(count): u = CommonUserInfo( user_email=forgery_py.internet.email_address(), login_account=forgery_py.internet.user_name(True), login_password=forgery_py.lorem_ipsum.word(), icon="images/2.jpg") db.session.add(u) try: db.session.commit() except IntegrityError: db.session.rollback()