class Address(orb.Table): id = orb.IdColumn() user = orb.ReferenceColumn(reference='User') name = orb.StringColumn() street = orb.StringColumn() city = orb.StringColumn() state = orb.StringColumn() zipcode = orb.IntegerColumn()
def test_pg_statement_alter(orb, GroupUser, pg_sql): add = [orb.StringColumn(name='test_add')] remove = [orb.StringColumn(name='test_remove')] st = pg_sql.statement('ALTER') assert st is not None statement, data = st(GroupUser, add, remove) assert 'ALTER' in statement add = [orb.StringColumn(name='test_add_i18n', flags={'I18n'})] statement, data = st(GroupUser, add) assert 'ALTER' in statement
class Asset(orb.Table): id = orb.IdColumn() code = orb.StringColumn(flags={'Unique'}) display_name = orb.StringColumn() parent = orb.ReferenceColumn(reference='Asset') project = orb.ReferenceColumn(reference='Project') type = orb.StringColumn(flags={'Polymorphic'}) children = orb.ReverseLookup(from_column='Asset.parent') dependsOn = orb.Pipe(through_path='Dependency.target.source') dependencies = orb.Pipe(through_path='Dependency.source.target')
class Address(orb.Table): __resource__ = True id = orb.IdColumn() user = orb.ReferenceColumn(reference='User') street = orb.StringColumn(flags={'Required'}) city = orb.StringColumn(flags={'Required'}) state = orb.StringColumn(flags={'Required'}) zipcode = orb.IntegerColumn() def onInit(self, event): context = self.context() self.set('user', context.scope.get('user'))
class UserSchema(orb.ModelMixin): id = orb.IdColumn() username = orb.StringColumn(flags={'Required'}) password = orb.StringColumn(flags={'Required'}) first_name = orb.StringColumn() last_name = orb.StringColumn() addresses = orb.ReverseLookup(from_column='Address.user') preferences = orb.ReverseLookup(from_column='Preference.user', flags={'Unique'}) groups = orb.Pipe(through_path='GroupUser.user.group') byUsername = orb.Index(columns=['username'], flags={'Unique'}) byName = orb.Index(columns=['first_name', 'last_name'])
class Group(orb.Table): id = orb.IdColumn() name = orb.StringColumn() users = orb.Pipe(through_path='GroupUser.group.user') byName = orb.Index(columns=['name'], flags={'Unique'})
class TestDefault(orb.Table): id = orb.IdColumn() name = orb.StringColumn() @classmethod def onSync(cls, event): print 'syncing defaults' cls.ensureExists({'name': 'test'})
class Group(orb.Table): __resource__ = True id = orb.IdColumn() name = orb.StringColumn(flags={'Required'}) users = orb.Pipe(through_path='GroupUser.group.user') byName = orb.Index(columns=['name'], flags={'Unique'})
class TestExplicit(orb.Table): __namespace__ = 'test_explicit' id = orb.IdColumn() name = orb.StringColumn() @classmethod def onSync(cls, event): print 'syncing explicit' cls.ensureExists({'name': 'test'})
class Group(orb.Table): __resource__ = True id = orb.IdColumn() name = orb.StringColumn(flags={'Unique'}) owner = orb.ReferenceColumn(reference='User') users = orb.Pipe(through_path='GroupUser.group.user') groupUsers = orb.ReverseLookup(from_column='GroupUser.group') byName = orb.Index(columns=['name'], flags={'Unique'})
class User(orb.Table): __resource__ = True id = orb.IdColumn() username = orb.StringColumn(flags={'Required'}) password = orb.StringColumn(flags={'Required', 'Private'}) groups = orb.Pipe(through_path='GroupUser.user.group') addresses = orb.ReverseLookup(from_column='Address.user') byUsername = orb.Index(columns=['username'], flags={'Unique'}) @classmethod @action(method='get') def run(cls, request): return 'user run model' @action(method='get', name='run') def run_record(self, request): return 'user run record' @classmethod @action(method='post', name='exec') def run_post_model(self, request): return 'user exec post model' @action(method='delete', name='run') def run_delete(self, request): return 'user run delete record' @action(method='patch', name='run') def run_patch(self, request): return 'user run patch record' @action(method='put', name='run') def run_put(self, request): return 'user run put record'
class TestAllColumns(orb.Table): Test = enum('Ok') # boolean bool = orb.BooleanColumn() # data binary = orb.BinaryColumn() json = orb.JSONColumn() query = orb.QueryColumn() yaml = orb.YAMLColumn() # datetime date = orb.DateColumn() datetime = orb.DatetimeColumn() datetime_tz = orb.DatetimeWithTimezoneColumn() interval = orb.IntervalColumn() time = orb.TimeColumn() timestamp = orb.TimestampColumn() utc_datetime = orb.UTC_DatetimeColumn() utc_timestamp = orb.UTC_TimestampColumn() # numeric id = orb.IdColumn() decimal = orb.DecimalColumn(scale=2) float = orb.FloatColumn() integer = orb.IntegerColumn() long = orb.LongColumn() enum = orb.EnumColumn() # reference reference = orb.ReferenceColumn(reference='TestReference') # string string = orb.StringColumn() text = orb.TextColumn() color = orb.ColorColumn() directory = orb.DirectoryColumn() email = orb.EmailColumn() filepath = orb.FilepathColumn() html = orb.HtmlColumn() password = orb.PasswordColumn(default='T3st1ng!') token = orb.TokenColumn() url = orb.UrlColumn() xml = orb.XmlColumn()
class User(orb.Table): __resouce__ = True id = orb.IdColumn() username = orb.StringColumn(flags={'Unique'}) password = orb.PasswordColumn() token = orb.TokenColumn() groups = orb.Pipe(through='GroupUser', from_='user', to='group') userGroups = orb.ReverseLookup(from_column='GroupUser.user') @orb.virtual(orb.BooleanColumn) def hasGroups(self, **context): return len(self.get('groups')) != 0 @orb.virtual(orb.Collector, model='Group') def myGroups(self, **context): group_ids = GroupUser.select( where=orb.Query('user') == self).values('group') context['where'] = orb.Query('id').in_(group_ids) & context.get( 'where') return Group.select(**context) byUsername = orb.Index(columns=['username'], flags={'Unique'})
class Attachment(orb.Table): id = orb.IdColumn(type='hash') filename = orb.StringColumn() comment = orb.ReferenceColumn(reference='Comment', flags={'Required'})
class Role(orb.Table): id = orb.IdColumn() name = orb.StringColumn()
class Document(orb.Table): id = orb.IdColumn() title = orb.StringColumn(flags={'I18n'}) description = orb.TextColumn(flags={'I18n'})