Release Notes - version 2.023.48

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:

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 1
Fix 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 resolution
Make 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 1
Fix TypeError: util.parseArgs is not a function during the build process
2 Likes

@hakan_cetinkaya, @wroos, @rahul_521, @osmanburcu, @Sjlver, @paani, @Rassam, @khosag1, @dickoa, @rahmat, @aamra, @siwei, if you are willing to test? TIA :bowing_man:

2 Likes

Should I use my regular credential?

1 Like

@rahul_521 consider test server as a seperate server, if you didn’t register to it beforehand, you need to register first. It doesn’t transfer your login info from the public servers.

1 Like

Thanks again for help testing.

2 Likes

There is a small bug-fix release for self-hosters now available as 2.023.48a:

PR Description
kpi#4789 Refactor django-allauth migration
Prevent multiple Social Accounts from being created by django-allauth migrations.
2 Likes

The EU server has now been updated to this release as well.

1 Like