September’s release is now out with a big focus on Webforms and in particular making sure it has the same capabilities as fieldTask.
New Features
lookup and lookup_choices are now supported in webforms
These functions are equivalent to search and pulldata however they only work online as they will make a network request to the server to get data when they need it. “What is this” I hear you say, why would I use them when I can use pulldata() and search() both online and offline. Well if you are going to be using fieldTask in remote areas then you would not use them however if:
- You expect to always have a network connection and
- the data you are looking up is very large 100,000 or a million rows or the data is changing very frequently and you want always to be up to date
then the online versions will be much faster.
lookup supports multiple values
As per the “pulldata” function you can now use the “lookup” function to get multiple values from the server while online. This means you can use it to get data that will populate “repeats”.
The following video shows how this can be used to create an educational assessment system.
Expressions can be used to filter choices in lookup_choices
Lookup_choices performs an online lookup to get choices from another form or a CSV file. If you are familiar with using the “search” function to get choices from a csv file then you know that there are some pre-defined criteria for filtering the choices. For example ‘matches’, ‘contains’, ‘in’, etc.
Expressions allow you to be much more flexible in how you select choices. For example in the following video the filter is:
#{votes} > ${min_votes}
So the above filter means that only personnel who have more votes than the minimum are returned. ${} means to use the answer to the question in the form that is being filled in. #{} means to use the answer to the question in the form, or csv file, that is being looked up.
Here is another expression taken from the “Book” example survey in the documentation.
'${time_wanted} > #{from} and ${time_wanted} < #{to} and #{available} = 'OK''
More details on how to define filters can be found here: https://smap.com.au/docs/server-expressions.html
Other
- Improvements to performance of dashboard
- Automatic refresh of panels in the dashboard is now limited to maps and charts. If you have a table view you will need to manually press refresh in order to update it.
- Improved tabbing between questions in the online editor. When you tab into a question label it the text will be selected by default so you can just start typing to overwrite it.
- Add an online tool to look up a surveys identifier so it can be used in lookup_choices, pulldata or other functions that refer to other surveys
- Support for Ubuntu 20.04 LTS
- Addition of option to include read only question data in exports. This is now required as people are setting the value of read only questions using calculations. Hence they can contain useful data.
- Added bulk changes to console. You can now select multiple records and then update all of them to the same values.
- Improvements to uploading of media from webforms so that more media files can now be uploaded. 100MB+
- The lookup_labels function also now works in Webforms.