Release Notes - 2.024.19

Hello everyone,

We are happy to announce that a new release of KoboToolbox has been deployed to the EU server as of 21:17 UTC on 8 July 2024. Deployment to the Global occurred 14:12 UTC on 9 July 2024.

This release consists of:

  • KPI version 2.024.19
  • Kobocat version 2.024.19
  • Pyxform version 1.9.0, unchanged from the previous release
  • Enketo Express version 6.2.2, unchanged from the previous release

Bug fixes and improvements

PR Description
kpi#4752 Fix for long filenames which throw an error and prevent the user from opening the file in Excel.
kpi#4982 Make the settings gear icon work properly again for repeating groups.
kpi#4964 Fixes “Make public”/“Make private” button for collection that was being frozen in pending state indefinitely.
kpi#4976 Automatic transcriptions now request status with exponential backoff
Before we sent requests to check on the status of an automatic transcription every 5 seconds on repeat. We now do it with exponential backoff.
kpi#4974 Fixes the project usage table to display monthly or yearly usage values based on user’s subscribed plan. Adds an informational banner to indicate the relevant interval.
kpi#4966 Fix a problem introduced recently that made the Drawer appear over fullscreen components.
kpi#4965 Improve UX for importing a single XLSForm file in Library.
kpi#4959 Fix ASR seconds display in the Usage Project breakdown table.
kpi#4963 Fixed pagination not appearing for My Library, Public Collections and Single Collection, thus blocking users from accessing items after page 1.
kpi#4956 Fix drawer appearing over form builder UI.
kpi#4951 Fixes app crash in Single Submission modal for a particular mix of repeat groups, XLSForm pulldata function and matrix type question. Also now point data (for types geopoint, geotrace, and geoshape) will be displayed as compact table in Single Submission modal.
kpi#4917 Improve NLP styles for smaller screens
Makes it easier to use Processing View UI on smaller devices. Also improves layout for other Project → Data tabs.
kpi#4954 Transcript and translation UI properly respects permissions on the frontend
The edit and delete buttons as well as the ‘begin’` button on the transcirpt/translation pages now are greyed out if the user does not have the sufficient permissions. These actions were already blocked but could be attempted in the UI, resulting in an error message.
kpi#4941 Remove the Note qualitative analysis question type from exports.
kpi#4940 Improve alignment of Terms of Service / Privacy Policy links in the account menu
Re-align the “Terms of Service” and “Privacy” links in the account menu.
kpi#4934 Hide inaccessible layout elements on Single Processing routes
Hidden layout elements no longer steal TAB navigation focus.
Fix corruption of large ZIP exports when AWS S3 storage is used

Of interest to developers

PR Description
kpi#4973 Fix update logic for exceeding limits hook
1. Adjusts the useEffect boolean logic for when to update the list of over limit usage types.
2. Clear the exceeded limit list before setting it again.
kpi#4972 Allow display of the social login to be customizable when a SocialAppCustomData has been added.
kpi#4971 Fix global styles bug.
kpi#4961 Typescriptize Library files
kpi#4942 Typescriptize DataTable component and more
Internal improvements and cleanups. Some unnoticed unknown bugs (mainly of “something something is undefined” type) might’ve been fixed.
kpi#4967 Add constance setting to enforce superuser authentication
This setting can be enabled to require MFA for superusers with a usable password, but is disabled as default.
kpi#4958 Make fake Stripe API key present for all tests
kpi#4955 Fix Cypress ‘question’ and ‘delete’ tests so they pass again.
kpi#4949 Update Cypress tests so that the first test, which logs in and creates a new project, works again.
kpi#4945 Allow concat in frontend t()-string sources
Safely allow string concatenation in frontend translated strings.
kpi#4937 Properly handle unsubscribing listeners for some SPA elements
Prevent some memory leaks when the main app UI stops being rendered.
kpi#4950 Update logic for Stripe APIs
Djstripe updated from using settings to database values, requiring an update to how we reference API keys and our logic for enabling Stripe.

New features for self-hosters and private servers

PR Description
kpi#4977 Make sharing modal accessible from project view list.

A new patch release 2.024.19a is available and has been deployed to our production servers at 18:00 UTC on Tuesday, 16 July 2024:

Bug fixes and improvements

PR Description
kpi#5002 Fix 500 error when filtering fields with data endpoint.
Make _uuid field always present when filtering fields in /api/v2/assets/<asset_uid>/data.json response, e.g. /api/v2/assets/<asset_uid>/data.json?fields=[field1, field2, etc...]
kpi#5007 Fix bug with table column filters not appearing