Hello, everyone. A new release with the changes described below has been deployed to
- kf.kobotoolbox.org at 16:25 UTC on 11 May 2022;
- kobo.humanitarianresponse.info at 19:45 on 11 May 2022.
Sorry for the previous typos in the dates listed in this announcement.
Components comprising this release:
- KPI version 2.022.16
- KoBoCAT version 2.022.16
- Enketo Express version 3.1.0, upgraded from version 2.8.1. For a list of Enketo changes, please see the Enketo change log.
- Pyxform version 1.9.0, upgraded from version 1.7.0. For a list of Pyxform changes, please refer to the Pyxform change log.
|kpi#3648||Fix parsing of submission XML for bulk editing
|formpack#271||Fix GeoJSON choice labels
Fix GeoJSON exports for select-type questions and include media urls in
|kpi#3727||Fix 500 error when serving dynamic data.
Fix an error that happens in some circumstances when Enketo is trying to fetch data from another external form (i.e. referenced as
|kpi#3730||Fix autonaming for KoboRank and KoboScore
Fix autonaming for non-Latin characters for KoboRank and KoboScore questions.
|kpi#3744||Fixes 404 error when attempting to edit submissions after switching accounts
Make Enketo display login form instead of 404 error.
|kpi#3745||Serve synchronous exports without redirecting for some ill-behaved user agents
Work around limitations in some clients (Power BI, Excel, LibreOffice) by avoiding HTTP 302 redirects when serving synchronous CSV exports
|kpi#3753||Fix delete matrix row button not working properly
Fix case when clicking on delete matrix row button was not causing a row to be deleted.
|kpi#3757||Allow duplicate choices in snapshots
Relaxes the pyxform requirement for uniqueness among choice values (also called choice names) for existing forms. This prevents failures when trying to edit submissions for these forms or retrieve these forms’ XForm XML.
|kpi#3768||Fix validation badge colors
Change “Approved” badge background color to improve readability.
|kpi#3771||Bulk permission assignment optimization
Improve the performance of sharing permission assignments, especially for projects that are shared with many accounts.
Related to #3433
|kpi#3637||Replace instances of “KoBoToolbox” with "KoboToolbox"
Use consistent spelling of “KoboToolbox” and “Kobo” in the UI.
|kobocat#795||Enable optional HSTS headers via environment variables
Same as Enable optional settings for hsts by bufke · Pull Request #3708 · kobotoolbox/kpi · GitHub
Fix a performance bottleneck in the “Connect Projects” / “dynamic data attachments” feature
|kpi#3704||Remove unused custom admin actions
They were used when kpi and kobocat shared a single database, but not any longer; see Delete users from KPI and KC if they do not have any forms or submiss… · kobotoolbox/kpi@0a1f3e8 · GitHub
|kpi#3708||Enable optional settings for hsts
Enable optional (and off by default) HSTS headers. Via environment variable
|kpi#3710||Add CSP headers via django-csp
Adds optional support for setting Content Security Policy (CSP) Headers. Defaults to disabled.
|kpi#3761||Add task to flush Enketo preview after some delay
Attempt to solve a persistent Redis memory exhaustion problem caused by the accumulation of many gigabytes of Enketo previews (specifically, cached transformations of their XML). Enketo stores these for 30 days, and that lifetime is not configurable. This change uses the Enketo API to remove each preview from the cache 30 minutes after it was created.
|kpi#3787||Allow an in-app message to appear on each reload…
Lets those who manage instances of KoboToolbox create persistent in-app messages that reappear whenever the application is loaded. Previously, the only way to display a message repeatedly to users who’d already read it was to create a new in-app message with the same content. This feature is available in the Django admin interface.
|formpack#293||Pin pyxform to
|formpack#297||Add support to Python 3.9 and 3.10|
|kobocat#785||Build Docker images with GitLab CI and deploy to beta instance
- Build docker images on commit, tag as both short sha hash and ref (branch/tag). Push to gitlab docker registry.
|kobocat#794||Dockerfile: move copying src to runtime image, instead of build step|
|kobocat#796||Add django-environ and refactor environment variable setting|
|kobocat#797||Fix django-redis-sessions url|
|kpi#3600||Build Docker images with GitLab CI and deploy to beta instance
Build internal docker images on GitLab CI automatically. Deploy them automatically to kf.beta.kobotoolbox.org
New component for handling simple select dropdowns. Also changes
Depends on #3540
|kpi#3701||Add API support for fetching submissions by UUID
|kpi#3709||Add django-environ and refactor environment variable setting
Refactor code on how environment variables are set. Reduces code complexity.
For error monitoring, update to latest Sentry client SDK.
|kpi#3717||Pass REDIS connection as an URL to
|kpi#3720||Quick magical hack fix for crashing tests
Fixes a crash
|Part of #3719|
|kpi#3723||Fixes broken sessions
Fixed an unreleased problem related to invalid sessions that occurred only in
|kpi#3733||Update environment endpoint API test for new export-status-check timeouts
Goes with #3711
|kpi#3737||Status filter for hook log API|
|kpi#3742||Ignore env in docker and git
For development environments, ignore env directory in git and docker. env is commonly used for python virtual environments.
|kpi#3747||Debug toolbar enable
For development, add
|kpi#3749||Add elemMatch support to mongo helper
Adds $elemMatch support to form data api filtering
|kpi#3754||Use reports endpoints from v2 API
Updates reports endpoint url to use v2.
|Uses endpoint added with #3009|
|kpi#3765||Upgrade pyxform to
Upgrade pyxform to
blocked by kobotoolbox/formpack#296