Many thanks to those of you who helped to test this new version of KoboToolbox. We’re happy to announce that we have deployed release 2.023.48:
- to the Global server at https://kf.kobotoolbox.org as of 15:47 UTC on 3 January 2024, and
- to the EU server at https://eu.kobotoolbox.org as of 21:34 UTC on 4 January 2024.
This release consists of:
- KPI version 2.023.48
- KoboCAT version 2.023.48
- Pyxform version 1.9.0, unchanged from the previous release
- Enketo Express version 6.2.2, unchanged from the previous release.
A list of changes in this can be found below. Happy New Year!
Fixes and improvements
PR | Description |
---|---|
kpi#4727 | Tolerate missing field list from custom export settings Avoid a crash that prevents exporting submission data in situations where custom export settings are invalid |
kpi#4725 | Disable editing for media type questions with uploads Prevent attempted bulk edits of file responses since the bulk edit feature cannot replace uploaded files |
kpi#4676 | Improve audio format support If an audio attachment cannot be played by the web browser, the application will retrieve a MP3 conversion of that file for playback in the browser. This should allow playback of AMR, AAC, and any other format supported by FFmpeg. |
kpi#4701 | Allow app to use full width of screen Remove 1440px width limit, allowing Project and Data tables to occupy more screen width if available. |
kpi#4697 | Make Button component more closely follow ARIA conventions Make buttons in the application click in response to the space bar or or enter key. |
kpi#4700 | Stop showing double errors when attempting to change password while logged out |
kpi#4695 | Remove seed form builder bug Fixed bug which involved the seed value in the form builder blocking the project from being deployed if the value of the seed was empty. |
kpi#4693 | Create better error page Created more detailed error pages so that users have a better understanding of what went wrong and how to get support. |
kpi#4675 | Improve performance of submission count graph and add new chart types Use new API with submissions graph on Project Summary route and stop using database-heavy calls to display Submissions Count Graph. Update chart package to latest version and add two new chart types: radar and polar area. |
kpi#4664 | Fix mini audio play button requiring two clicks to play Fix a problem with the audio question play button in the data table |
kpi#4662 | Fix Data Table header filter XML labels When using Display labels or XML values Data Table setting to display XML values, the header filter is now showing proper text instead of empty options. |
kpi#4656 | Improve label for including all fields in an export |
kpi#4779 | Fix XLSX bulk library import, broken by #3765 Corrects the name 'writable' is not defined error when attempting to upload bulk library items with an XLSX (Excel 2007+) file |
kpi#4775 | Fix incorrect calls to routerIsActive() Fixes “a library cannot be imported into the form list” error when bulk-importing library items in Excel 2003 (XLS) format. Excel 2007 (XLSX) bulk imports will need a separate fix in the back end. |
kpi#4774 | Handle edits of submissions lacking UUIDs in XML These submissions violate the OpenRosa specification, which requires the instanceID element, but they are accepted by KoboCAT and exist in our databases. These changes allow them to be edited. |
kpi#4758 | Fix styling for the tooltip of grouping options Added left alignment styling to tooltip for grouping options button in form builder so that it is clearly visible. |
kpi#4756 | When exiting the form builder without saving a new question block, return to “My Library” instead of showing a confusing “Access Denied” message |
kpi#4744 | Fix bug in form builder library sidebar so that users can now search for tags |
kpi#4742 | Enable range selection of checkboxes in the data table |
Of interest to self hosters
PR | Description |
---|---|
kpi#4683 | Remove gender from signup form by default By default, don’t include the gender field in the user sign up and profile forms. It can still be added in Django admin through constance config. |
kpi#4738 | Don’t prevent users from saving an existing social application due to provider ID validation Fixed a bug that prevent updating Social Applications in the admin. |
kpi#4715 | Upgrade django-allauth to 0.57.0 |
kpi#4658 | Support animated pictures on drap&drop upload with Admin markdown editor. GIF and WEBP files can be uploaded without losing their animation. |
kpi#4748 | Fix /organizations/{ORG ID}/service_usage/ and /stripe/products/ endpoint cache misses Always cache the /organizations/{ORG ID}/service_usage/ and /stripe/products/ endpoints, even if a cookie has changed. |
kpi#4763 | Add endpoint to test kpi health Endpoint which makes no connections to databases or other external services and is helpful for HTTP health checks. |
kpi#4738 | Don’t prevent users from saving an existing social application due to provider ID validation Fixed a bug that prevent updating Social Applications in the admin. |
Of interest to developers
PR | Description |
---|---|
kpi#4707 | Add override for error toast message to fetchData options Improved how API errors are displayed and logged in the frontend. |
kpi#4737 | KoboSelect style fixes Fixes small visual glitch in KoboSelect component and adds missing background color. |
kpi#4736 | Pin check-dependencies to version 1Fix TypeError: util.parseArgs is not a function during the build process |
kpi#4729 | Stop making unnecessary calls in Project Summary page Avoid making unnecessary calls for project with no submissions. Also don’t show a Not found error for expected 404 response from API for the graph. |
kpi#4730 | Move permissions related definitions into better file Internal cleanup. |
kpi#4723 | Make coveralls CI action success not required for CI Resolves an issue that caused python CI to fail. |
kpi#4706 | Create more translation friendly string |
kpi#4722 | Fix required user metadata fields error handling |
kpi#4720 | Always display require auth checkbox Fix the code responsible for displaying Require authentication to see forms and submit data checkbox. |
kpi#4645 | Typescriptize permissions files Internal code improvements. |
kpi#4696 | Update ChangePlanView Update Stripe backend to allow purchasing recurring storage add-ons. |
kpi#4709 | [TASK-114] Split out AccountFieldsEditor from AccountSettingsRoute Internal code improvement in preparation for upcoming feture. |
kpi#4704 | Use overrides to fix reflux peerDependency resolutionMake reflux use the project-level version of React to resolve its peerDependency. With this change, --legacy-peer-deps will no longer be needed when installing with npm >= 8.6.0. |
kpi#4689 | Fix replaceSupportEmail function Makes the constanse setting SUPPORT_EMAIL being displayed in error notifications. |
kpi#4687 | Merge release/2.023.37 Merge release/2.023.37 into beta |
kpi#4659 | Use Object.assign() instead of npm package ‘object-assign’ |
kpi#4678 | Password strength translations fix and templates cleanup Fixes missing translations in the Password Strength UI displayed in account registration form. Also cleans up some code. |
kpi#4618 | Remove design-system route leftovers |
kpi#4669 | Bump tsconfig target from ES2016 to ES2017 Change TypeScript compilation target from ES2016 to ES2017. |
kpi#4663 | Auto-format miniAudioPlayer code Run prettier on miniAudioPlayer component |
kpi#4648 | Fix modal header close button color |
kpi#4651 | Improve fetch api code Removed duplicated error notification and some internal code improvements. |
kpi#4638 | Further improve TextBox component Add sizing option to TextBox component. |
kpi#4510 | Rename tracker tests to get picked up by pytest Fixed a test on trackers that wasn’t being collected by PyTest. |
kpi#4788 | Correctly use instanceID instead of deprecatedID Fixes an unreleased mistake made while creating constants in kpi#4774 |
kpi#4787 | Fix error when editing submissions with XML encoding declaration Convert submission XML from str to bytes before attempting to parse, working around error “Unicode strings with encoding declaration are not supported. Please use bytes input or XML fragments without declaration.” |
kpi#4772 | Fix spacing issues in Plans page |
kpi#4769 | Unpin docker version in gitlab-ci.yml The issue that required us to pin the docker version for the GitLab ci pipeline has been resolved. This PR unpins the version now that that short-term fix is no longer needed. |
kpi#4768 | Fix GitLab ‘build’ job error Fixes an issue with Docker images that cause GitLab CI to fail on the ‘build’ step. |
kpi#4765 | Fix npm front-end build error when starting container Fix npm ERR! code EACCES because of a lack of permissions of the user kobo when calling npm . |
kpi#4692 | Add Storage add-ons to the Plans page Allows subscription add-ons for increased file storage to be purchased from the Plans page (when Stripe is enabled.) |
kpi#4755 | Migrate Social Providers from environment variables to database After running django_allauth.0001_initial , any previously-configured SOCIALACCOUNT_PROVIDERS_openid_connect_SERVERS_* environment variables will now be editable from Social Accounts > Social Applications in the Django admin. You can safely remove the variables from your environment once you’ve confirmed that the imported social applications are working correctly. If you want the app’s login button to be visible at /accounts/login/ , make sure to remove any entries for that app from Account Extras > Social app custom datas. |
kpi#4741 | Allow service account to fetch external xml for connected projects Expect service account to make requests on behalf of the owner of the child connected project project. |
kpi#4707 | Add override for error toast message to fetchData options Improved how API errors are displayed and logged in the frontend. |
kpi#4737 | KoboSelect style fixes Fixes small visual glitch in KoboSelect component and adds missing background color. |
kpi#4736 | Pin check-dependencies to version 1Fix TypeError: util.parseArgs is not a function during the build process |