Esempio n. 1
0
class ApiMsg(db.Model):
    __tablename__ = 'api_msg'
    id = db.Column(db.Integer(), primary_key=True, comment='主键,自增')
    num = db.Column(db.Integer(), nullable=True, comment='接口序号')
    name = db.Column(db.String(128), nullable=True, comment='接口名称')
    desc = db.Column(db.String(256), nullable=True, comment='接口描述')
    variable_type = db.Column(db.String(32), nullable=True, comment='参数类型选择')
    status_url = db.Column(db.String(32),
                           nullable=True,
                           comment='基础url,序号对应项目的环境')
    up_func = db.Column(db.String(128), comment='接口执行前的函数')
    down_func = db.Column(db.String(128), comment='接口执行后的函数')
    method = db.Column(db.String(32), nullable=True, comment='请求方式')
    variable = db.Column(db.Text(), comment='form-data形式的参数')
    json_variable = db.Column(db.Text(), comment='json形式的参数')
    param = db.Column(db.Text(), comment='url上面所带的参数')
    url = db.Column(db.String(256), nullable=True, comment='接口地址')
    skip = db.Column(db.String(256), comment='跳过判断')
    extract = db.Column(db.String(2048), comment='提取信息')
    validate = db.Column(db.String(2048), comment='断言信息')
    header = db.Column(db.String(2048), comment='头部信息')
    module_id = db.Column(db.Integer,
                          db.ForeignKey('module.id'),
                          comment='所属的接口模块id')
    project_id = db.Column(db.Integer, nullable=True, comment='所属的项目id')
    created_time = db.Column(db.DateTime, index=True, default=datetime.now)
    update_time = db.Column(db.DateTime,
                            index=True,
                            default=datetime.now,
                            onupdate=datetime.now)
Esempio n. 2
0
class CaseData(db.Model):
    __tablename__ = 'case_data'
    id = db.Column(db.Integer(), primary_key=True, comment='主键,自增')
    num = db.Column(db.Integer(), nullable=True, comment='步骤序号,执行顺序按序号来')
    status = db.Column(db.String(16), comment='状态,true表示执行,false表示不执行')
    name = db.Column(db.String(128), comment='步骤名称')
    up_func = db.Column(db.String(256), comment='步骤执行前的函数')
    down_func = db.Column(db.String(256), comment='步骤执行后的函数')
    skip = db.Column(db.String(64), comment='跳过判断函数')
    time = db.Column(db.Integer(), default=1, comment='执行次数')
    param = db.Column(db.Text(), default=u'[]')
    status_param = db.Column(db.String(64), default=u'[true, true]')
    variable = db.Column(db.Text())
    json_variable = db.Column(db.Text())
    status_variables = db.Column(db.String(64))
    extract = db.Column(db.String(2048))
    status_extract = db.Column(db.String(64))
    validate = db.Column(db.String(2048))
    status_validate = db.Column(db.String(64))
    header = db.Column(db.String(2048))
    status_header = db.Column(db.String(64))
    case_id = db.Column(db.Integer, db.ForeignKey('case.id'))
    api_msg_id = db.Column(db.Integer, db.ForeignKey('api_msg.id'))
    created_time = db.Column(db.DateTime, index=True, default=datetime.now)
    update_time = db.Column(db.DateTime,
                            index=True,
                            default=datetime.now,
                            onupdate=datetime.now)
Esempio n. 3
0
class User(UserMixin, db.Model):
    __tablename__ = 'users'
    id = db.Column(db.Integer, primary_key=True)
    email = db.Column(db.String(64))
    username = db.Column(db.String(64))
    # 设置外键
    role_id = db.Column(db.Integer, db.ForeignKey('roles.id'))
    password = db.Column(db.String(64))
    confirmed = db.Column(db.Boolean, default=False)
    location = db.Column(db.Text())
    about_me = db.Column(db.Text())

    def __init__(self, **kwargs):
        super(User, self).__init__(**kwargs)
        if self.role is None:
            # 将kangming的权限设置为管理员
            if self.username == 'kangming':
                self.role = Role.query.filter_by(name='Administrator').first()
            # 如果未指定role,则为默认权限,即User
            if self.role is None:
                self.role = Role.query.filter_by(default=True).first()

    def generate_confirmation_token(self, expiration=300):
        s = Serializer(current_app.config['SECRET_KEY'], expiration)
        return s.dumps({'confirm': self.id}).decode('utf-8')

    def confirm(self, token):
        s = Serializer(current_app.config['SECRET_KEY'])
        data = s.loads(token.encode('utf-8'))
        if data.get('confirm') != self.id:
            return False
        self.confirmed = True
        db.session.add(self)
        # 添加手动commit,是否有必要?
        db.session.commit()
        return True

    # 确认密码是否正确
    def verify_password(self, password):
        if self.password == password:
            return True
        else:
            return False

    # 检查是否有指定权限
    def can(self, perm):
        return self.role is not None and self.role.has_permission(perm)

    # 检查是否有管理员权限
    def is_administrator(self):
        return self.can(Perm.A)
Esempio n. 4
0
class RecordIncomeExpenditure(db.Model):
    __tablename__ = 'record_income_expenditure'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    ctime = db.Column(db.DateTime,
                      nullable=False,
                      default=datetime.now(),
                      comment='创建时间')
    utime = db.Column(db.DateTime,
                      nullable=False,
                      default=datetime.now(),
                      onupdate=datetime.now,
                      comment='更新时间')
    creator_id = db.Column(db.Integer, nullable=False,
                           comment='创建者用户Id')  # 用户id
    creator = db.Column(db.String(64), nullable=False, comment='创建者')  # 用户名
    record_content = db.Column(db.Text(2000),
                               nullable=False,
                               comment='内容(创建者添加)')  # 内容
    remark = db.Column(db.Text(2000),
                       nullable=False,
                       default='',
                       comment='备注(审核者添加)')  # 备注
    entry_account_status = db.Column(db.Integer,
                                     nullable=False,
                                     default=0,
                                     comment='入账状态(0-未入账,1-已入账,2-记录作废)')
    entry_account_time = db.Column(db.DateTime,
                                   nullable=False,
                                   default=datetime.now(),
                                   comment='入账时间')
    reviewer_id = db.Column(db.Integer,
                            nullable=False,
                            default=0,
                            comment='审核人Id')
    reviewer = db.Column(db.String(64),
                         nullable=False,
                         default='',
                         comment='审核人')

    def to_dict(self):
        columns = self.__table__.columns.keys()
        result = {}
        for key in columns:
            if key in ['ctime', 'utime', 'entry_account_time']:
                value = getattr(self, key).strftime("%Y-%m-%d %H:%M:%S")
            else:
                value = getattr(self, key)
            result[key] = value
        return result
Esempio n. 5
0
class Library(db.Model):
    __tablename__ = "library"
    id                    = db.Column(db.Integer, primary_key=True)
    Libaray_Reference     = db.Column(db.String(255), nullable=False, unique=True)
    Version_id            = db.Column(db.String(255), nullable=True)
    Title                 = db.Column(db.String(255), nullable=False)
    Segment               = db.Column(db.String(255), nullable=False)
    Section               = db.Column(db.String(255), nullable=False)
    Area                  = db.Column(db.String(255), nullable=False)
    Risk                  = db.Column(db.String(255), nullable=False)
    Review_Categorisation = db.Column(db.String(255), nullable=False)
    Control_Step          = db.Column(db.Boolean, default = True)
    Audit_Objective       = db.Column(db.String(255), nullable=False)
    Document_Sort_No      = db.Column(db.String(255), nullable=False)
    Master_Data           = db.Column(db.String(255), nullable=False)
    Guidance              = db.Column(db.Text(), nullable=True)
    status                = db.Column(db.Boolean, default = True)
    Template              = db.Column(db.Boolean, default = True)
    Comments              = db.Column(db.String(255), nullable=True)
    updatedby             = db.Column(db.Integer, db.ForeignKey('users.id'), nullable = True)
    createdby             = db.Column(db.Integer, db.ForeignKey('users.id'), nullable = False)
    created_at            = db.Column(db.DateTime, default = datetime.datetime.utcnow())
    updated_at            = db.Column(db.DateTime)

    templates = db.relationship("Templates", backref=db.backref('templates'), uselist=True)
    user_updated = db.relationship("Users",  backref=db.backref('user_updated'), foreign_keys="[Library.updatedby]", uselist=True)
    user_created = db.relationship("Users",  backref=db.backref('user_created'), foreign_keys="[Library.createdby]",uselist=True)
class EventMessage(db.Model):
    __tablename__ = "event_messages"
    id = db.Column(db.Integer, primary_key=True)
    text = db.Column(db.Text())
    event_id = db.Column(db.Integer, db.ForeignKey('events.id'), nullable=False)
    event = db.relationship('Event', foreign_keys=[event_id], backref=backref("event_messages", cascade="all,delete"))
    poster_id = db.Column(db.Integer, db.ForeignKey('users.id'), nullable=False)
    poster = db.relationship('User', foreign_keys=[poster_id])
    created_at = db.Column(db.DateTime, server_default=func.now())
    updated_at = db.Column(db.DateTime, server_default=func.now(), onupdate=func.now())

    @classmethod
    def validate_message(cls, data):
        is_valid = True
        if len(data['text']) < 1:
            flash('Text cannot be empty', 'error')
            is_valid = False
        return is_valid

    @classmethod
    def add_message(cls, data):
        new_msg = EventMessage(**data)
        db.session.add(new_msg)
        db.session.commit()
        return new_msg
Esempio n. 7
0
class User(db.Model):
    __tablename__ = 'sys_user'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    ctime = db.Column(db.DateTime, default=datetime.now(), comment='创建时间')
    utime = db.Column(db.DateTime,
                      default=datetime.now(),
                      onupdate=datetime.now(),
                      comment='修改时间')
    name = db.Column(db.String(64), index=True, comment='姓名')
    password = db.Column(db.String(128), comment='密码')
    phone = db.Column(db.String(30), comment='电话号码')
    profess = db.Column(db.String(64))
    grade = db.Column(db.String(64), comment='性别')
    email = db.Column(db.String(120), index=True, comment='邮箱')
    group = db.Column(db.String(64))
    power = db.Column(db.Text(2000))

    def to_dict(self):
        columns = self.__table__.columns.keys()
        result = {}
        for key in columns:
            if key == 'pub_date':
                value = getattr(self, key).strftime("%Y-%m-%d %H:%M:%S")
            else:
                value = getattr(self, key)
            result[key] = value
        return result

    # 密码加密
    def hash_password(self, password):
        self.password = custom_app_context.encrypt(password)

    # 密码解析
    def verify_password(self, password):
        return custom_app_context.verify(password, self.password)

    # 获取token,有效时间10min
    def generate_auth_token(self, expiration=600):
        s = Serializer(current_app.config['SECRET_KEY'], expires_in=expiration)
        return s.dumps({'id': self.id})

    # 密码加密
    @staticmethod
    def hash_password_method(password):
        return custom_app_context.encrypt(password)

    # 解析token,确认登录的用户身份
    @staticmethod
    def verify_auth_token(token):
        s = Serializer(current_app.config['SECRET_KEY'])
        try:
            data = s.loads(token)
        except SignatureExpired:
            return None  # valid token, but expired
        except BadSignature:
            return None  # invalid token
        user = User.query.get(data['id'])
        return user
Esempio n. 8
0
class ProjectModel(db.Model):

    __tablename__ = 'project'

    uuid = db.Column(db.Text(length=36),
                     default=lambda: str(UUID_URI64()),
                     primary_key=True)
    name = db.Column(db.String(60), unique=True)
    description = db.Column(db.Text)
    created_by_id = db.Column(db.Integer, db.ForeignKey('user.id'))
    created_by = db.relationship('UserModel',
                                 foreign_keys="ProjectModel.created_by_id")
    project_color_identity = db.Column(db.String(20), unique=True)
    created_at = db.Column(DateTime, default=datetime.datetime.now)

    collaborators = db.relationship('ShareProjectModel',
                                    cascade="all,delete",
                                    backref='project')

    tasks = db.relationship('TaskModel',
                            cascade="all,delete",
                            backref='project')

    def __init__(self, name, description, created_by_id,
                 project_color_identity):
        self.name = name
        self.description = description
        self.created_by_id = created_by_id
        self.project_color_identity = project_color_identity

    def json(self):

        return {
            "UUID": self.uuid,
            "Project_Name": self.name,
            "Project_Description": self.description,
            "Created_by": self.created_by.name,
            "Created_at": str(self.created_at).split('.')[0],
            "Project_color_identity": self.project_color_identity,
            "Collaborators": [user.json() for user in self.collaborators],
            "Tasks": [task.json() for task in self.tasks]
        }

    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 find_by_name(cls, name):
        return ProjectModel.query.filter_by(name=name).first()

    @classmethod
    def find_by_id(cls, id):
        return ProjectModel.query.filter_by(uuid=id).first()
Esempio n. 9
0
class Dish(db.Model):
    __tablename__ = 'dish'
    id = db.Column(db.Integer, primary_key=True)
    restaurant_id = db.Column(db.Integer,
                              db.ForeignKey('restaurant.id'),
                              nullable=True)
    ingredients = db.relationship('Ingredient',
                                  secondary=ingredient_table,
                                  backref='dishes')
    description = db.Column(db.Text())
Esempio n. 10
0
class Song(db.Model):
    __tablename__ = "songs"
    song_id = db.Column(db.Integer, primary_key=True)
    song = db.Column(db.String(32))
    year = db.Column(db.Integer)
    artist = db.Column(db.String(128))
    genre = db.Column(db.String(32))
    lyrics = db.Column(db.Text())  # text
    timestamp = db.Column(db.DateTime,
                          default=datetime.utcnow,
                          onupdate=datetime.utcnow)
Esempio n. 11
0
class Recipe(db.Model):
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    name = db.Column(db.String(100), nullable=False)
    description = db.Column(db.Text, nullable=False)
    ingredients = db.Column(db.Text(), nullable=False)
    instructions = db.Column(db.Text, nullable=False)
    under30 = db.Column(db.String(3), default="Yes", nullable=False)
    author_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False)
    author = db.relationship('User', foreign_keys=[
                             author_id], backref='recipes', lazy=True)
    users_who_like_this_recipe = db.relationship('User', secondary=likes_table)
Esempio n. 12
0
class Users(db.Model):
    __tablename__ = "users"
    id             = db.Column(db.Integer,primary_key=True)
    first_name     = db.Column(db.String(255),nullable=True)
    last_name      = db.Column(db.String(255),nullable = True)
    phone          = db.Column(db.String(255),nullable = True)
    email          = db.Column(db.String(120), unique = True, nullable = False)
    password       = db.Column(db.String(255))
    address        = db.Column(db.Text(),nullable = True)
    gender         = db.Column(db.Enum('M','F','O'),nullable=True)
    role_id        = db.Column(db.Integer, db.ForeignKey('roles.id'), nullable = True)
    status         = db.Column(db.Boolean, default = True)
    created_at     = db.Column(db.DateTime, default = datetime.datetime.utcnow())
    updated_at     = db.Column(db.DateTime)
class Publishing(db.Model):
    __tablename__ = 'publishings'
    id = db.Column('id', db.Integer, primary_key=True)
    topic = db.Column('topic', db.String(100))
    text = db.Column('text', db.Text(300))

    def __init__(self, topic, text):
        self.topic = topic
        self.text = text

    def get_id(self):
        return unicode(self.id)

    def __repr__(self):
        return '<Publishing $r>' % (self.topic)
Esempio n. 14
0
class User2(db.Model):
    user_id = db.Column(db.String(63), primary_key=True)
    user_name = db.Column(db.String(63), unique=True)
    phone_num = db.Column(db.String(63), unique=True)
    money = db.Column(db.String(15))
    # 注意定时更新,否则长度会溢出,或者在插入时限制
    record = db.Column(db.Text(4095))
    pay_num = db.Column(db.String(13), unique=True)

    def __init__(self, user_id, user_name, phone_num, money, record, pay_num):
        self.user_id = user_id
        self.user_name = user_name
        self.phone_num = phone_num
        self.money = money
        self.record = record
        self.pay_num = pay_num
Esempio n. 15
0
class cards(db.Model):
    __tablename__ = "cards"
    id = db.Column(db.Integer, primary_key=True)

    #### One-to-Many Relationship w/ Holidays ####
    holiday_id = db.Column(db.Integer,
                           db.ForeignKey('holidays.id', ondelete="cascade"),
                           nullable=False)
    assoc_holidays = db.relationship('holidays',
                                     foreign_keys=[holiday_id],
                                     backref="assoc_card")
    ###########################################

    image = db.Column(db.Text())
    include = db.Column(db.String(2))

    created_at = db.Column(db.DateTime, server_default=func.NOW())
    updated_at = db.Column(db.DateTime, server_default=func.NOW())
Esempio n. 16
0
class Post(db.Model):
    id = db.Column('id', db.Integer, primary_key=True)
    title = db.Column('title', db.String(90), unique=True)
    slug = db.Column('slug', db.String(90))
    body = db.Column('body', db.Text())
    created_at = db.Column('created_at',
                           db.DateTime(timezone=True),
                           default=datetime.now(),
                           nullable=True)
    category = db.Column('category', db.String(60), nullable=True)
    author = db.Column('author', db.String(90))
    user_id = db.Column('user_id', db.Integer, db.ForeignKey('user.id'))

    def __init__(self, title, slug, body, category, author, user_id):
        self.title = title
        self.slug = slug
        self.body = body
        self.category = category
        self.author = author,
        self.user_id = user_id
Esempio n. 17
0
class Guest(db.Model):
    __tablename__ = 'guests'
    id = db.Column(db.Integer, primary_key=True)
    user_id = db.Column(db.Integer, db.ForeignKey('users.id'), nullable=False)
    gender = db.Column(db.String(2), nullable=True)
    age = db.Column(db.Integer(), nullable=True)
    description = db.Column(db.Text(), nullable=True)
    picture = db.Column(db.String(100), nullable=True, default='picna.jpg')
    work = db.Column(db.Boolean(), nullable=False, server_default='0')
    study = db.Column(db.Boolean(), nullable=False, server_default='0')
    smoking = db.Column(db.Boolean(), nullable=False, server_default='0')
    pet = db.Column(db.Boolean(), nullable=False, server_default='0')
    car = db.Column(db.Boolean(), nullable=False, server_default='0')
    maxValue = db.Column(db.Integer(), nullable=True)
    city_id = db.Column(db.Integer, db.ForeignKey('cities.id'), nullable=False)
    active = db.Column('is_active',
                       db.Boolean(),
                       nullable=False,
                       server_default='1')
    last_modified = db.Column(db.DateTime(),
                              nullable=False,
                              default=datetime.now())

    def getCity(self):
        city = db.session.query(City).filter(City.id == self.city_id).one()
        return city.desc

    def getUser(self):
        user = db.session.query(User).filter(User.id == self.user_id).one()
        return user

    def get_bool_attr(self, attr):
        value = self.__getattribute__(attr)
        if value: return 'Sim'
        else: return 'Não'.decode('utf-8')

    def get_gender_attr(self):
        if self.gender == 'F': return 'Mulher'
        if self.gender == 'M': return 'Homem'
        if self.gender == 'B': return 'Homem/Mulher'
Esempio n. 18
0
class Case(db.Model):
    __tablename__ = 'case'
    id = db.Column(db.Integer(), primary_key=True, comment='主键,自增')
    num = db.Column(db.Integer(), nullable=True, comment='用例序号')
    name = db.Column(db.String(128), nullable=True, comment='用例名称')
    desc = db.Column(db.String(256), comment='用例描述')
    func_address = db.Column(db.String(256), comment='用例需要引用的函数')
    variable = db.Column(db.Text(), comment='用例公共参数')
    times = db.Column(db.Integer(), nullable=True, comment='执行次数')
    project_id = db.Column(db.Integer,
                           db.ForeignKey('project.id'),
                           comment='所属的项目id')
    case_set_id = db.Column(db.Integer,
                            db.ForeignKey('case_set.id'),
                            comment='所属的用例集id')
    environment = db.Column(db.Integer(), comment='环境类型')
    created_time = db.Column(db.DateTime,
                             index=True,
                             default=datetime.now,
                             comment='创建时间')
    update_time = db.Column(db.DateTime,
                            index=True,
                            default=datetime.now,
                            onupdate=datetime.now)
class Event(db.Model):
    __tablename__ = "events"
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(45))
    description = db.Column(db.Text())
    capacity = db.Column(db.Text())
    address = db.Column(db.Text())
    city = db.Column(db.Text())
    state = db.Column(db.Text())
    zip_code = db.Column(db.String(5))
    creator_id = db.Column(db.Integer, db.ForeignKey('users.id'), nullable=False)
    event_time = db.Column(db.DateTime, server_default=func.now())
    created_at = db.Column(db.DateTime, server_default=func.now())
    updated_at = db.Column(db.DateTime, server_default=func.now(), onupdate=func.now())

    # relationships
    creator = db.relationship('User', foreign_keys=[creator_id], backref="hosted_events")
    attendees = db.relationship('User', secondary="attendees")
    size_restrictions = db.relationship('DogSize', secondary="size_restrictions")

    @classmethod
    def validate_event(cls, data):
        is_valid = True
        if datetime.now() > get_event_time(data['date'], data['time']):
            flash('Event must be for future date', 'error')
            is_valid = False
        user = User.query.get(session['userid'])
        for hosting in user.hosted_events:
            if hosting.event_time == get_event_time(data['date'], data['time']):
                is_valid = False
                flash('You have an event already scheduled for this time', 'error')
        dog_sizes = []
        for dog in user.user_dogs:
            dog_sizes.append(dog.size)
        for size in data['size_restrictions']:
            if int(size) in dog_sizes:
                is_valid = False
                flash('Cannot restrict dogs the same size as your own', 'error')
                return is_valid
        return is_valid

    @classmethod
    def validate_existing_event(cls, data):
        is_valid = True
        if datetime.now() > get_event_time(data['date'], data['time']):
            flash('Event must be for future date', 'error')
            is_valid = False
        user = User.query.get(session['userid'])
        for hosting in user.hosted_events:
            if hosting.id != int(data['id']):
                if hosting.event_time == get_event_time(data['date'], data['time']):
                    is_valid = False
                    flash('You have an event already scheduled for this time', 'error')
                    return is_valid
        if data['size_restrictions']:
            dog_sizes = []
            user = User.query.get(session['userid'])
            for dog in user.user_dogs:
                dog_sizes.append(dog.size)
            for size in data['size_restrictions']:
                if int(size) in dog_sizes:
                    is_valid = False
                    flash('Cannot restrict dogs the same size as your own', 'error')
                    return is_valid
        return is_valid

    @classmethod
    def edit_event(cls, data):
        event = Event.query.get(data['id'])
        event.name = data['name']
        event.address = data['address']
        event.city = data['city']
        event.state = data['state']
        event.zip_code = data['zip_code']
        event.capacity = data['capacity']
        event.event_time = get_event_time(data['date'], data['time'])

    @classmethod
    def add_event(cls, data):
        event_data = add_event_schema.dump(data)
        event_data.data['event_time'] = get_event_time(data['date'], data['time'])
        new_event = Event(**event_data.data)
        db.session.add(new_event)
        db.session.commit()
        return new_event
Esempio n. 20
0
class Room(db.Model):
    __tablename__ = 'rooms'
    id = db.Column(db.Integer, primary_key=True)
    user_id = db.Column(db.Integer, db.ForeignKey('users.id'), nullable=False)
    title = db.Column(db.String(50), nullable=False)
    description = db.Column(db.Text(), nullable=True)
    address = db.Column(db.String(50), nullable=True)
    number = db.Column(db.String(7), nullable=True)
    region = db.Column(db.String(50), nullable=True)
    cep = db.Column(db.String(15), nullable=True)
    lat = db.Column(db.Float(), nullable=True)
    long = db.Column(db.Float(), nullable=True)
    building = db.Column(db.String(5), nullable=False)
    type = db.Column(db.String(5), nullable=False)
    bathroom = db.Column(db.String(5), nullable=False)
    minRent = db.Column(db.Integer(), nullable=True, default=1)
    price = db.Column(db.Integer(), nullable=False, default=0)
    gender = db.Column(db.String(2), nullable=True)
    main_image = db.Column(db.String(100), nullable=True, default='default')
    imageServer = db.Column(db.String(15), nullable=True)
    city_id = db.Column(db.Integer, db.ForeignKey('cities.id'), nullable=False)
    active = db.Column('is_active',
                       db.Boolean(),
                       nullable=False,
                       server_default='1')
    views = db.Column(db.Integer(), nullable=True, default=0)
    views7days = db.Column(db.Integer(), nullable=True, default=0)
    furniture = db.Column(db.Boolean(), nullable=False, server_default='0')
    include_bills = db.Column(db.Boolean(), nullable=False, server_default='0')
    smoking = db.Column(db.Boolean(), nullable=False, server_default='0')
    pet = db.Column(db.Boolean(), nullable=False, server_default='0')
    visits = db.Column(db.Boolean(), nullable=False, server_default='0')
    aircond = db.Column(db.Boolean(), nullable=False, server_default='0')
    internet = db.Column(db.Boolean(), nullable=False, server_default='0')
    parking = db.Column(db.Boolean(), nullable=False, server_default='0')
    elevator = db.Column(db.Boolean(), nullable=False, server_default='0')
    last_modified = db.Column(db.DateTime(),
                              nullable=False,
                              default=datetime.now())
    created = db.Column(db.DateTime(), nullable=False, default=datetime.now())

    def getCity(self):
        city = db.session.query(City).filter(City.id == self.city_id).one()
        return city.desc

    def get_bool_attr(self, attr):
        value = self.__getattribute__(attr)
        if value: return 'Sim'
        else: return 'Não'.decode('utf-8')

    def get_gender_attr(self):
        if self.gender == 'F': return 'Mulher'
        if self.gender == 'M': return 'Homem'
        if self.gender == 'B': return 'Homem/Mulher'

    def get_building_attr(self):
        if self.building == 'apto': return 'Apartamento'
        if self.building == 'house': return 'Casa'
        if self.building == 'hostel': return 'Pensionato'
        if self.building == 'hotel': return 'Hotel'

    def get_room_attr(self):
        if self.type == 'single': return 'Individual'
        if self.type == 'singlec': return 'Solteiro Coletivo'
        if self.type == 'couple': return 'Casal'

    def get_bathroom_attr(self):
        if self.bathroom == 'single': return 'Individual'
        if self.bathroom == 'public': return 'Coletivo'
        if self.bathroom == 'half': return 'Compartilhado para dois quartos'
Esempio n. 21
0
class Contact(db.Model):
	id = db.Column(db.Integer, primary_key=True)
	created_at = db.Column('created_at', db.DateTime(timezone=True), default=datetime.now(), nullable=True)
	name = db.Column('name', db.String(90))
	content = db.Column('content', db.Text())
Esempio n. 22
0
class Exercise(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(100))
    duration = db.Column(db.Float)
    calories_burned = db.Column(db.Integer)
    pace = db.Column(db.Float(), nullable=True)
    miles = db.Column(db.Float(), nullable=True)
    sets = db.Column(db.Float(), nullable=True)
    reps = db.Column(db.Float(), nullable=True)
    category = db.Column(db.String(45))
    description = db.Column(db.Text(), nullable=True)
    created_at = db.Column(db.DateTime, server_default=func.now())
    updated_at = db.Column(db.DateTime, server_default=func.now(), onupdate=func.now())
    workout_id = db.Column(db.Integer, db.ForeignKey('workout.id', ondelete='cascade'), nullable=False)
    workout = db.relationship('Workout', foreign_keys=[workout_id])
    # class methods
    @classmethod
    def create_exercise(cls, user_data):
        duration = calcMinutes(user_data['hour'], user_data['minutes'])
        if user_data['category'] == 'running' or user_data['category'] == 'walking' or user_data['category'] == 'cycling':
            pace = float(duration) / float(user_data['miles'])
            exercise = Exercise(name=user_data['exercise_name'], duration=duration, calories_burned=float(user_data['calories_burned']), workout_id=user_data['workout_id'], category=user_data['category'], miles=float(user_data['miles']), pace=pace)
            db.session.add(exercise)
            db.session.commit()
            return exercise
        if user_data['category'] == 'weight_lifting':
            exercise = Exercise(name=user_data['exercise_name'], duration=duration, calories_burned=float(user_data['calories_burned']), workout_id=user_data['workout_id'], category=user_data['category'], sets=float(user_data['sets']), reps=float(user_data['reps']))
            db.session.add(exercise)
            db.session.commit()
            return exercise
        if user_data['category'] == 'other':
            exercise = Exercise(name=user_data['exercise_name'], duration=duration, calories_burned=float(user_data['calories_burned']), workout_id=user_data['workout_id'], category=user_data['category'], description=user_data['desc'])
            db.session.add(exercise)
            db.session.commit()
            return exercise
    @classmethod
    def valid_ex_update(cls, user_data):
        is_valid = True
        if user_data['calories_burned'] == '':
            is_valid = False
            flash("Please Enter Est. Calories Burned", "ex2_error")
        if len(user_data['exercise_name']) < 2 or user_data['exercise_name'] == '':
            is_valid = False
            flash("Please Enter an Exercise Name", "ex2_error")
        if profanity.contains_profanity(user_data['exercise_name']) == True:
            is_valid = False
            flash("Please Enter an Appropriate Exercise Name", "ex2_error");
        if (user_data['hours'] == '' or float(user_data['hours']) < 1) and (user_data['minutes'] == '' or float(user_data['minutes']) < 1):
            is_valid = False
            flash("Please Enter Duration", "ex2_error")
        return is_valid 
    @classmethod
    def valid_ex(cls, user_data):
        is_valid = True
        if len(user_data['exercise_name']) < 2 or user_data['exercise_name'] == '':
            is_valid = False
            flash("Please Enter an Exercise Name", "ex_error")
        if profanity.contains_profanity(user_data['exercise_name']) == True:
            is_valid = False
            flash("Please Enter an Appropriate Exercise Name", "ex_error");
        if user_data['hour'] == '':
            is_valid = False
            flash("Please Enter Amount of Hours", "ex_error")
        if user_data['minutes'] == '':
            is_valid = False
            flash("Please Enter Amount of Minutes", "ex_error")
        if user_data['calories_burned'] == '':
            is_valid = False
            flash("Please Enter Est. Calories Burned", "ex_error")
        if user_data['category'] == 'running' or user_data['category'] == 'walking' or user_data['category'] == 'cycling':
            if user_data['miles'] == '' or user_data['miles'] == 0:
                is_valid = False
                flash("Please Enter Amount of Miles", "ex_error")
        if user_data['category'] == 'weight_lifting':
            if user_data['reps'] == '':
                is_valid = False
                flash("Please Enter Amount of Repetitions", "ex_error")
            if user_data['sets'] == '':
                is_valid = False
                flash("Please Enter Amount of Sets", "ex_error")
        if user_data['category'] == 'other':
            if user_data['desc'] == '' or profanity.contains_profanity(user_data['desc']) == True:
                is_valid = False
                flash("Please Enter Valid Description", "ex_error")
        return is_valid
Esempio n. 23
0
class SummerPageSchedule(db.Model):
	id = db.Column(db.Integer, primary_key=True)
	name = db.Column('name', db.String(90))
	content = db.Column('content', db.Text())

	
class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    first_name = db.Column(db.String(55))
    last_name = db.Column(db.String(55))
    email = db.Column(db.String(55))
    password = db.Column(db.Text(55))
    events_user_attends = db.relationship("Event",
                                          secondary=users_and_events,
                                          lazy="dynamic")
    created_at = db.Column(db.DateTime, server_default=func.now())
    updated_at = db.Column(db.DateTime,
                           server_default=func.now(),
                           onupdate=func.now())

    @classmethod
    def validate_registration(cls, user_registration):

        is_valid = True

        if len(user_registration["first_name"]) < 1:
            is_valid = False
            flash("First name can not be blank", "error")

        if len(user_registration["last_name"]) < 1:
            is_valid = False
            flash("Last name can not be blank", "error")

        if len(user_registration["email"]) < 1:
            is_valid = False
            flash("Email can not be blank")

        if not EMAIL_REGEX.match(user_registration["email"]):
            flash("Invalid email address", "error")

        if len(user_registration["password"]) < 5:
            is_valid = False
            flash("Password must be at least 5 characters", "error")

        if len(user_registration["password"]) > 55:
            is_valid = False
            flash("Password can not be more than 45 characters", "error")

        if len(user_registration["conf_pass"]) < 1:
            is_valid = False
            flash("Confirm Password can not be blank", "error")

        if user_registration["conf_pass"] != user_registration["password"]:
            is_valid = False
            flash("Passwords must match", "error")

        return is_valid

    @classmethod
    def create_user(cls, user_data):
        pw_hash = bcrypt.generate_password_hash(
            user_data['password']).decode("utf-8")
        create_user = cls(first_name=user_data["first_name"],
                          last_name=user_data["last_name"],
                          email=user_data["email"],
                          password=pw_hash)
        db.session.add(create_user)
        db.session.commit()
        return create_user

    @classmethod
    def login_validation(cls, login_info):
        is_valid = True

        if len(login_info['lemail']) < 1 or not EMAIL_REGEX.match(
                login_info["lemail"]):
            is_valid = False
            flash("Please enter your email")

        if len(login_info['lpassword']) < 5:
            is_valid = False
            flash("Please enter your password")

        if not is_valid:
            return is_valid

        user = cls.query.filter_by(email=login_info["lemail"]).first()

        if user:
            if bcrypt.check_password_hash(user.password,
                                          login_info["lpassword"]):
                session["user_id"] = user.id
                return is_valid

            else:
                is_valid = False
                flash("Invalid Credentials")
                return is_valid
        else:
            is_valid = False
            flash("User not Found")
            return is_valid

        return is_valid
Esempio n. 25
0
class Info(db.Model):
	id = db.Column(db.Integer, primary_key=True)
	name = db.Column('name', db.String(90))
	content = db.Column('content', db.Text())