Ejemplo n.º 1
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'
    }})
Ejemplo n.º 2
0
class Person(Model):
    has_many('things', {'features': {
        'via': 'things'
    }}, {'pets': 'Dog.owner'}, 'subscriptions')

    name = Field()
    age = Field('integer')
Ejemplo n.º 3
0
class User(Model):
    name = Field()
    has_many('memberships', {'organizations': {
        'via': 'memberships'
    }}, {
        'cover_orgs': {
            'via': 'memberships.organization',
            'where': lambda m: m.is_cover == True
        }
    })
Ejemplo n.º 4
0
class ScanResult(Model):
    tablename = 'ScanResults'
    belongs_to({'scan': 'Scan'})
    has_many({'x_results': 'XResultRow'})
    x = Field.text()
    y = Field.text()
    z = Field.text()
    f = Field.text()
    e = Field.text(auto_validation=False)
    s = Field.blob()
Ejemplo n.º 5
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}
Ejemplo n.º 6
0
class SpectrumAnalyzer(Model):
    tablename = 'SpectrumAnalyzers'
    has_many({'probes': 'FieldProbe'}, {'scans': 'Scan'})
    name = Field.string()
    model = Field.string()
    min_frequency = Field.float()
    max_frequency = Field.float()
    min_frequency_unit = Field.string(default='GHz')
    max_frequency_unit = Field.string(default='GHz')
    default = Field.bool()

    validation = {
        "name": {
            'presence': True
        },
        "model": {
            'presence': True
        },
        "min_frequency": {
            'presence': True
        },
        "max_frequency": {
            'presence': True
        },
    }

    default_values = {'default': False}

    indexes = {'name_index': {'fields': ['name'], 'unique': True}}

    @before_update
    def set_as_default(self, dbset, fields):
        self._set_as_default(fields)

    @before_insert
    def set_new_as_default(self, fields):
        self._set_as_default(fields)

    @staticmethod
    def _set_as_default(fields):
        if fields['default']:
            analyzers = SpectrumAnalyzer.where(lambda s:
                                               (s.default == True)).select()
            for analyzer in analyzers:
                analyzer.update_record(default=False)
Ejemplo n.º 7
0
class Image(Model):
    belongs_to('user')
    has_many('comments')

    id = Field('text')
    title = Field('text')
    path = Field('text')
    comment = Field('text')
    date = Field('datetime')

    default_values = {
        'user': lambda: session.auth.user.id,
        'date': lambda: now
    }
    validation = {
        'id': {
            'presence': True
        },
    }
    fields_rw = {'user': False, 'date': False}
Ejemplo n.º 8
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
Ejemplo n.º 9
0
class Campaign(Model):
    belongs_to('user')
    has_many('donations', 'costs')

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

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

    validation = {
        "goal": {
            'gt': 1
        },
        "start": {
            'gt': now,
            'format': "%d/%m/%Y %H:%M:%S"
        },
        "end": {
            'gt': 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
Ejemplo n.º 10
0
class Zoo(Model):
    has_many('animals', 'elephants', {'mice': {'via': 'elephants.mouse'}})
    name = Field()
Ejemplo n.º 11
0
class Mouse(Model):
    tablename = "mice"
    has_many('elephants')
    name = Field()
Ejemplo n.º 12
0
class Patient(Model):
    has_many('appointments', {'doctors': {'via': 'appointments'}})
    name = Field()
Ejemplo n.º 13
0
class Doctor(Model):
    has_many('appointments', {'patients': {'via': 'appointments'}})
    name = Field()
Ejemplo n.º 14
0
class User(AuthUser):
    has_many('things')
    gender = Field()
Ejemplo n.º 15
0
class Person(Model):
    has_many('things')

    name = Field(validation={'empty': False})
    surname = Field(validation={'presence': True})
Ejemplo n.º 16
0
class User(AuthUser):
    # will create "auth_user" table and groups/permissions ones
    has_many('posts', 'comments')
Ejemplo n.º 17
0
class Thing(Model):
    belongs_to('person')
    has_many('features')

    name = Field()
    color = Field()
Ejemplo n.º 18
0
class User(AuthUser):
    # will create "users" table and groups/permissions ones
    has_many('images', 'comments')