Пример #1
0
class Membership(Model):
    belongs_to('user', 'organization')
    role = Field()

    @scope('admins')
    def filter_admins(self):
        return self.role == 'admin'
Пример #2
0
class Comment(Model):
    belongs_to('user', 'post')

    text = Field.text()
    date = Field.datetime()

    default_values = {'user': lambda: session.auth.user.id, 'date': now}
    validation = {'text': {'presence': True}}
    fields_rw = {'user': False, 'post': False, 'date': False}
Пример #3
0
class Elephant(Animal):
    belongs_to('mouse')
    color = Field()

    @rowattr('pretty')
    def get_pretty(self, row):
        return row.name + " " + row.color

    @before_insert
    def bi2(self, *args, **kwargs):
        pass
Пример #4
0
class Post(Model):
    belongs_to('user')
    has_many('comments')

    title = Field()
    text = Field.text()
    date = Field.datetime()

    default_values = {'user': lambda: session.auth.user.id, 'date': now}
    validation = {'title': {'presence': True}, 'text': {'presence': True}}
    fields_rw = {'user': False, 'date': False}
Пример #5
0
class Thing(Model):
    belongs_to('person')

    name = Field()
    color = Field()
    uid = Field(unique=True)

    validation = {
        'name': {
            'presence': True
        },
        'color': {
            'in': ['blue', 'red']
        },
        'uid': {
            'empty': False
        }
    }
Пример #6
0
class Subscription(Model):
    belongs_to('person')

    name = Field()
    status = Field.int()
    expires_at = Field.datetime()

    STATUS = {'active': 1, 'suspended': 2, 'other': 3}

    @scope('expired')
    def get_expired(self):
        return self.expires_at < datetime.now()

    @scope('of_status')
    def filter_status(self, *statuses):
        if len(statuses) == 1:
            return self.status == self.STATUS[statuses[0]]
        return self.status.belongs(*[self.STATUS[v] for v in statuses])
Пример #7
0
class Animal(Model):
    belongs_to('zoo')
    name = Field()

    @rowattr('doublename')
    def get_double_name(self, row):
        return row.name * 2

    @rowattr('pretty')
    def get_pretty(self, row):
        return row.name

    @before_insert
    def bi(self, *args, **kwargs):
        pass

    @before_insert
    def bi2(self, *args, **kwargs):
        pass
Пример #8
0
class Mixed(Model):
    belongs_to('person')

    date = Field.date()
    type = Field()
    inside = Field()
    number = Field.int()
    dont = Field()
    yep = Field()
    psw = Field.password()

    validation = {
        'date': {
            'format': '%d/%m/%Y',
            'gt': lambda: datetime.utcnow().date()
        },
        'type': {
            'in': ['a', 'b'],
            'allow': None
        },
        'inside': {
            'in': ['asd', 'lol']
        },
        'number': {
            'allow': 'blank'
        },
        'dont': {
            'empty': True
        },
        'yep': {
            'presence': True
        },
        'psw': {
            'len': {
                'range': (6, 25)
            },
            'crypt': True
        }
    }
Пример #9
0
class Thing(Model):
    belongs_to('user')
Пример #10
0
class Dog(Model):
    belongs_to({'owner': 'Person'})
    name = Field()
Пример #11
0
class Appointment(Model):
    belongs_to('patient', 'doctor')
    date = Field.datetime()
Пример #12
0
class Price(Model):
    belongs_to('feature')

    value = Field.int()
Пример #13
0
class Feature(Model):
    belongs_to('thing')
    has_one('price')

    name = Field()
Пример #14
0
class Thing(Model):
    belongs_to('person')
    has_many('features')

    name = Field()
    color = Field()