Add ability to expose View controls #137
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Implements #124
The implementation I settled on is very explicit, each
View
now has acontrols
parameter which declares which parameters on the view will be exposed as widgets. This can either be set via the yaml specification or in the case of custom views a default value can be set which will expose those parameters. I'm much happier making this explicit rather than relying on any precedence or constant declaration since the author of a View cannot really know ahead of time which parameters it makes sense to expose.To make this work well for parameters which reference fields in a table each
View
must declare_field_params
. This allows the baseclass to know that it should populate the available options on this parameter with the available fields in the table so that the generated widgets offer a dropdown letting the user select between the available fields.