def zip_code(zip_code_id): db.zip_code.id.readable = False db.zip_code.id.writable = False db.zip_code.zip_type.requires = IS_IN_SET([ x.zip_type for x in db( db.zip_code.id > 0).select(db.zip_code.zip_type, distinct=True) ]) db.zip_code.state.requires = IS_IN_SET([ x.state for x in db( db.zip_code.id > 0).select(db.zip_code.state, distinct=True) ]) db.zip_code.timezone.requires = IS_IN_SET([ x.timezone for x in db( db.zip_code.id > 0).select(db.zip_code.timezone, distinct=True) ]) form = Form(db.zip_code, record=zip_code_id, formstyle=FormStyleSimpleTable) if form.accepted: redirect(URL('datatables')) return dict(form=form, id=zip_code_id)
def zip_codes(path=None): fields = [db.zip_code.id, db.zip_code.zip_code, db.zip_code.zip_type, db.zip_code.state, db.zip_code.county, db.zip_code.primary_city] # build the search form zip_type_requires = IS_NULL_OR(IS_IN_SET([x.zip_type for x in db(db.zip_code.id > 0).select(db.zip_code.zip_type, orderby=db.zip_code.zip_type, distinct=True)])) zip_state_requires = IS_NULL_OR(IS_IN_SET([x.state for x in db(db.zip_code.id > 0).select(db.zip_code.state, orderby=db.zip_code.state, distinct=True)])) queries = [(db.zip_code.id > 0)] orderby = [~db.zip_code.state, db.zip_code.county, db.zip_code.primary_city] search_queries = [['Search by State', lambda val: db.zip_code.state == val, zip_state_requires], ['Search by Type', lambda val: db.zip_code.zip_type == val, zip_type_requires], ['Search by Name', lambda val: db.zip_code.zip_code.contains(val) | db.zip_code.zip_type.contains(val) | db.zip_code.primary_city.contains(val) | db.zip_code.county.contains(val) | db.zip_code.state.contains(val)]] search = GridSearch(search_queries, queries) zip_type_requires = IS_IN_SET([x.zip_type for x in db(db.zip_code.id > 0).select(db.zip_code.zip_type, orderby=db.zip_code.zip_type, distinct=True)]) zip_state_requires = IS_IN_SET([x.state for x in db(db.zip_code.id > 0).select(db.zip_code.state, orderby=db.zip_code.state, distinct=True)]) zip_timezone_requires = IS_IN_SET([x.timezone for x in db(db.zip_code.id > 0).select(db.zip_code.timezone, distinct=True)]) grid = Grid(path, search.query, fields=fields, search_form=search.search_form, orderby=orderby, create=True, details=True, editable=True, deletable=True, **GRID_DEFAULTS) return dict(grid=grid)
def multiple_form_example(): name = Field('name', requires=IS_NOT_EMPTY()) forms = [ Form([Field('name', requires=IS_NOT_EMPTY())], form_name='1', formstyle=FormStyleBulma), Form([Field('name', requires=IS_NOT_EMPTY())], form_name='2', keep_values=True, formstyle=FormStyleBulma), Form([Field('name', requires=IS_NOT_EMPTY()), Field('age','integer')], form_name='3', formstyle=FormStyleBulma), Form([Field('name', requires=IS_NOT_EMPTY()), Field('insane','boolean')], form_name='4', formstyle=FormStyleBulma), Form([Field('name', requires=IS_NOT_EMPTY()), Field('color',requires=IS_IN_SET(['red','blue','gree']))], form_name='5', formstyle=FormStyleBulma), Form([Field('name', requires=IS_NOT_EMPTY()), Field('favorite_thing', requires=IS_IN_DB(db, 'thing.id', 'thing.name'))], form_name='6', formstyle=FormStyleBulma)] messages = [] for form in forms: if form.accepted: messages.append('form %s accepted with: %s ' % (form.form_name, form.vars)) elif form.errors: messages.append('form %s has errors: %s ' % (form.form_name, form.errors)) return dict(forms=forms, messages=messages)
def insertt(): c = [] for i in db(db.company).select(): c.append(i.IAN_FULL_NAME) form = Form( [Field('company', requires=IS_IN_SET(c)), Field('file', 'upload')], validation=func, formstyle=FormStyleBulma) return dict(form=form)
def example_multiple_forms(): name = Field("name", requires=IS_NOT_EMPTY()) forms = [ Form( [Field("name", requires=IS_NOT_EMPTY())], form_name="1", formstyle=FormStyleDefault, ), Form( [Field("name", requires=IS_NOT_EMPTY())], form_name="2", keep_values=True, formstyle=FormStyleDefault, ), Form( [Field("name", requires=IS_NOT_EMPTY()), Field("age", "integer")], form_name="3", formstyle=FormStyleDefault, ), Form( [ Field("name", requires=IS_NOT_EMPTY()), Field("insane", "boolean") ], form_name="4", formstyle=FormStyleDefault, ), Form( [ Field("name", requires=IS_NOT_EMPTY()), Field("color", requires=IS_IN_SET(["red", "blue", "green"])), ], form_name="5", formstyle=FormStyleDefault, ), Form( [ Field("name", requires=IS_NOT_EMPTY()), Field("favorite_hero", requires=IS_IN_DB(db, "person.id", "person.name")), ], form_name="6", formstyle=FormStyleDefault, ), ] messages = [] for form in forms: if form.accepted: messages.append("form %s accepted with: %s " % (form.form_name, form.vars)) elif form.errors: messages.append("form %s has errors: %s " % (form.form_name, form.errors)) return dict(forms=forms, messages=messages)
def zip_codes(action=None, tablename=None, record_id=None): fields = [ db.zip_code.id, db.zip_code.zip_code, db.zip_code.zip_type, db.zip_code.state, db.zip_code.county, db.zip_code.primary_city ] # check session to see if we've saved a default value user_signature = get_signature() search_state = get_storage_value(user_signature, 'search_state', None) search_type = get_storage_value(user_signature, 'search_type', None) search_filter = get_storage_value(user_signature, 'search_filter', None) # build the search form zip_type_requires = IS_NULL_OR( IS_IN_SET([ x.zip_type for x in db( db.zip_code.id > 0).select(db.zip_code.zip_type, orderby=db.zip_code.zip_type, distinct=True) ])) zip_state_requires = IS_NULL_OR( IS_IN_SET([ x.state for x in db(db.zip_code.id > 0).select( db.zip_code.state, orderby=db.zip_code.state, distinct=True) ])) search_form = Form( [ Field('state', length=20, requires=zip_state_requires, default=search_state, _title='Filter by State'), Field('zip_type', length=20, requires=zip_type_requires, default=search_type, _title='Select Filter by ZIP Type'), Field('search', length=50, default=search_filter, _placeholder='...search text...', _title='Enter search text and click on Filter') ], keep_values=True, formstyle=FormStyleSimpleTable, ) if search_form.accepted: search_state = search_form.vars['state'] search_type = search_form.vars['zip_type'] search_filter = search_form.vars['search'] queries = [(db.zip_code.id > 0)] if search_filter: queries.append((db.zip_code.zip_code.contains(search_filter)) | (db.zip_code.zip_type.contains(search_filter)) | (db.zip_code.primary_city.contains(search_filter)) | (db.zip_code.county.contains(search_filter)) | (db.zip_code.state.contains(search_filter))) if search_state: queries.append(db.zip_code.state == search_state) if search_type: queries.append(db.zip_code.zip_type == search_type) orderby = [ ~db.zip_code.state, db.zip_code.county, db.zip_code.primary_city ] zip_type_requires = IS_IN_SET([ x.zip_type for x in db(db.zip_code.id > 0).select( db.zip_code.zip_type, orderby=db.zip_code.zip_type, distinct=True) ]) zip_state_requires = IS_IN_SET([ x.state for x in db(db.zip_code.id > 0).select( db.zip_code.state, orderby=db.zip_code.state, distinct=True) ]) zip_timezone_requires = IS_IN_SET([ x.timezone for x in db( db.zip_code.id > 0).select(db.zip_code.timezone, distinct=True) ]) requires = { 'zip_code.zip_type': zip_type_requires, 'zip_code.state': zip_state_requires, 'zip_code.timezone': zip_timezone_requires } grid = SimpleTable(queries, fields=fields, search_form=search_form, storage_values=dict(search_state=search_state, search_type=search_type, search_filter=search_filter), orderby=orderby, create=True, details=True, editable=True, deletable=True, search_button='Filter', user_signature=user_signature, requires=requires, pre_action_buttons=[ ActionButton(URL('copy'), 'Copy', icon='fa-copy', append_id=True, append_signature=True, append_page=True), ActionButton(URL('to_excel'), 'Export', icon='fa-file-excel', append_id=True, append_signature=True, append_page=True) ]) return dict(grid=grid)