Пример #1
0
class Person(Model):
    has_many(
        'things', {'features': {'via': 'things'}}, {'pets': 'Dog.owner'},
        'subscriptions')

    name = Field()
    age = Field('integer')
Пример #2
0
class Organization(Model):
    name = Field()
    is_cover = Field('bool', default=False)

    @has_many()
    def admin_memberships3(self):
        return Membership.admins()

    has_many('memberships', {'users': {
        'via': 'memberships'
    }}, {'admin_memberships': {
        'target': 'Membership',
        'scope': 'admins'
    }}, {'admins': {
        'via': 'admin_memberships.user'
    }}, {
        'admin_memberships2': {
            'target': 'Membership',
            'where': lambda m: m.role == 'admin'
        }
    }, {'admins2': {
        'via': 'admin_memberships2.user'
    }}, {'admins3': {
        'via': 'admin_memberships3.user'
    }})
Пример #3
0
class User(AuthUser):
    has_many('campaigns', 'donations')

    money = Field('int', default=0)
    avatar = Field('upload', uploadfolder='uploads')

    form_profile_rw = {
        "avatar": True
    }

    @rowmethod('backed_campaigns')
    def get_backed_campaigns(self, row):
        count = self.db.Donation.campaign.count()
        return (
            row.donations(
                count, groupby=self.db.Donation.campaign).first() or {}
        ).get(count) or 0

    @rowmethod('backed_amount')
    def get_backed_amount(self, row):
        total = self.db.Donation.amount.sum()
        return (
            self.db(self.db.Donation.user == row.id).select(
                total, groupby=self.db.Donation.user).first() or {}
        ).get(total) or 0
Пример #4
0
class Organization(Model):
    name = Field()
    has_many(
        'memberships', {'users': {'via': 'memberships'}},
        {'admin_memberships': {'target': 'Membership', 'scope': 'admins'}},
        {'admins': {'via': 'admin_memberships.user'}},
        {'admin_memberships2': {
            'target': 'Membership', 'where': lambda m: m.role == 'admin'}},
        {'admins2': {'via': 'admin_memberships2.user'}})
Пример #5
0
class User(Model):
    name = Field()
    has_many('memberships', {'organizations': {
        'via': 'memberships'
    }}, {
        'cover_orgs': {
            'via': 'memberships.organization',
            'where': lambda m: m.is_cover == True
        }
    })
Пример #6
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': lambda: request.now
    }
    validation = {'title': {'presence': True}, 'text': {'presence': True}}
    form_rw = {'user': False, 'date': False}
Пример #7
0
class Campaign(Model):
    belongs_to('user')
    has_many('donations', 'costs')

    title = Field('string', notnull=True)
    description = Field('string', notnull=True)
    start = Field('datetime')
    end = Field('datetime')
    goal = Field('int')
    closed = Field('bool', default=True)

    form_rw = {"user": False, "closed": False}

    validation = {
        "goal": {
            'gt': 1
        },
        "start": {
            'gt': lambda: request.now,
            'format': "%d/%m/%Y %H:%M:%S"
        },
        "end": {
            'gt': lambda: request.now,
            'format': "%d/%m/%Y %H:%M:%S"
        }
    }

    form_labels = {"title": T("Title: ")}

    @rowmethod('pledged')
    def get_pledge(self, row):
        summed = self.db.Donation.amount.sum()
        return row.donations(summed).first()[summed] or 0

    @rowmethod('spended')
    def get_spended(self, row):
        summed = self.db.Cost.amount.sum()
        return row.costs(summed).first()[summed] or 0
Пример #8
0
class Patient(Model):
    has_many('appointments', {'doctors': {'via': 'appointments'}})
    name = Field()
Пример #9
0
class Doctor(Model):
    has_many('appointments', {'patients': {'via': 'appointments'}})
    name = Field()
Пример #10
0
class Thing(Model):
    belongs_to('person')
    has_many('features')

    name = Field()
    color = Field()
Пример #11
0
class Zoo(Model):
    has_many('animals', 'elephants')
    name = Field()
Пример #12
0
class Mouse(Model):
    tablename = "mice"
    has_many('elephants')
    name = Field()
Пример #13
0
class Person(Model):
    has_many('things')

    name = Field(validation={'empty': False})
    surname = Field(validation={'presence': True})
Пример #14
0
class User(AuthUser):
    # will create "auth_user" table and groups/permissions ones
    has_many('posts', 'comments')
Пример #15
0
class User(Model):
    name = Field()
    has_many('memberships', {'organizations': {'via': 'memberships'}})
Пример #16
0
class Organization(Model):
    name = Field()
    has_many('memberships', {'users': {'via': 'memberships'}})
Пример #17
0
class User(AuthUser):
    has_many('things')
    gender = Field()
Пример #18
0
class Zoo(Model):
    has_many('animals', 'elephants', {'mice': {'via': 'elephants.mouse'}})
    name = Field()
Пример #19
0
class Person(Model):
    has_many('things', {'features': {'via': 'things'}})

    name = Field()
    age = Field('integer')