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}
class Cost(Model): belongs_to('campaign') name = Field(notnull=True) date = Field.datetime(default=now) amount = Field.int() fields_rw = {"campaign": False, "date": False} validation = {'amount': {'gt': 1}}
class Scan(Model): tablename = 'Scans' belongs_to({'analyzer': 'SpectrumAnalyzer'}) belongs_to({'probe': 'FieldProbe'}) has_one({'result_mat': 'ScanResultMat'}) name = Field.string() date = Field.datetime() kind = Field.string() min_frequency = Field.float() max_frequency = Field.float() min_frequency_unit = Field.string(default='GHz') max_frequency_unit = Field.string(default='GHz') min_x = Field.float(validation={'blank': True, 'gte': 0}) min_y = Field.float(validation={'blank': True, 'gte': 0}) min_z = Field.float(validation={'blank': True, 'gte': 0}) max_x = Field.float(validation={'blank': True, 'gt': 0}) max_y = Field.float(validation={'blank': True, 'gt': 0}) max_z = Field.float(validation={'blank': True, 'gt': 0}) pcb_filename = Field.string(default='') status = Field.string() progress = Field.int(default=0) validation = { 'name': { 'presence': True }, 'kind': { 'presence': True, 'in': ('flat', 'volumetric', 'z') }, 'min_frequency': { 'presence': True, 'gt': 0 }, 'max_frequency': { 'presence': True, 'gt': 0 }, } repr_values = { 'kind': lambda kind: { 'flat': 'Flat', 'volumetric': 'Volumetric', 'z': 'Z-variable' }.get(kind), 'date': lambda date: date.strftime("%d.%m.%Y") } default_values = { 'date': lambda: datetime.now, } indexes = {'name_index': {'fields': ['name'], 'unique': True}}
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}
class A(Model): tablename = "a" name = Field() val = Field.int() fval = Field.float() text = Field.text() password = Field.password() d = Field.date() t = Field.time() dt = Field.datetime() json = Field.json()
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
class Donation(Model): belongs_to('user', 'campaign') date = Field.datetime(default=now) amount = Field.int() fields_rw = { "user": False, "campaign": False, "date": False } validation = { 'amount': {'gt': 1} }
class Reading(Model): """ Weather Reading """ station_id = Field.text() date = Field.datetime() temperature = Field.float() validation = { 'station_id': { 'presence': True }, 'date': { 'presence': True }, 'temperature': { 'presence': True } }
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])
class Extension(Model): name = Field() slug = Field() description = Field() author_name = Field() author_email = Field() github = Field() pypi = Field() version = Field() website = Field() bugtracker = Field() license = Field() status = Field() data = Field.text() updated = Field.datetime() default_values = { 'updated': now } update_values = { 'updated': now }
class StepFiveThing(Model): name = Field() value = Field.int() created_at = Field.datetime() indexes = {'name': True, ('name', 'value'): True}
class Appointment(Model): belongs_to('patient', 'doctor') date = Field.datetime()