コード例 #1
0
ファイル: models.py プロジェクト: zcastle/api_ww
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"
コード例 #2
0
ファイル: models.py プロジェクト: zcastle/api_ww
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
コード例 #3
0
ファイル: models.py プロジェクト: zcastle/api_ww
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
コード例 #4
0
ファイル: models.py プロジェクト: zcastle/api_ww
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)
コード例 #5
0
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
コード例 #6
0
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'))
コード例 #7
0
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)
コード例 #8
0
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))
コード例 #9
0
ファイル: models.py プロジェクト: zcastle/api_ww
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')
コード例 #10
0
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)
コード例 #11
0
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()