I have a table that follows the following structure:
db.define_table('collection',
Field('IssueYr', 'integer',
requires = [IS_NOT_EMPTY(), IS_INT_IN_RANGE(1965,2018,
"Not
a valid year of issue")],
widget = lambda f, v: SQLFORM.widgets.integer.widget(f,
v, _autofocus=True)),
Field('State', 'string', default=None, represent=lambda
state: state or '',
requires=IS_EMPTY_OR(IS_IN_SET(State_list))),
Field('Other', 'string', default=None, represent=lambda
Other: Other or '',
requires=IS_EMPTY_OR(IS_IN_SET(other_list)))
)
And I use use SQLFORM() to fill out the fields.. "State" is defined for
certain issueYrs, for other years a javascript trigger skips to the "Other"
field. This works well, and the State_list dropdown works as expected.
But it turns out that the State_list can be subdivided with 4 or 5
corresponding to a given year. I do additional validation on the basis of
this (to catch typo'd years). It would be nice to take advantage of that
subdivision in the dropdown, only offering the, um, slice of states for the
year that has been entered. For the validation, I have a dictionary where
the keys are years and the values are the matching states. Is there a
widget that I can pass the value-list to for use in the dropdown, using the
javascript trigger to handle the key lookup?
I looked at the autocomplete widget, and it's tied to a database field, so
that's not very convenient for this use-case. I'm not totally against
having essentially static tables when appropriate, but it seems like
overkill for this.
/dps
--
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
---
You received this message because you are subscribed to the Google Groups
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.