Release Notes - versions 2.021.45, 2.021.45a, 2.021.45b

Greetings, everyone. We present to you our next release that includes the changes listed below. It

As always, please do not hesitate to report any problems that you find. Thanks for using KoBoToolbox!

New features

PR Description Related Issues
kpi#3502 formpack#267 Add option to advanced XLS and CSV exports to include media URLs. Enabled by default. closes kpi#3501

Enhancements and bug fixes

PR Description Related Issues
kpi#3522 Fix JSON form view in the UI (hidden view for debugging)
https://your-kpi-host/#/forms/your-asset-uid/json now displays the form JSON within the UI again as it should.
Fixes kpi#3518
kpi#3512 Fix tooltips animation by animating also “visibility” property
Fixes the tooltip animation - now it fades out correctly, not disappearing abruptly.
kpi#3510 Synchronize permissions with KoBoCAT when copying team’s permissions from another project
Permissions on source form will be removed in KPI and KoBoCAT before applying copied team’s permissions.
Fixes kpi#3453
kpi#3498 Fix dropdown memory leak causing console errors
Leaving Data route with dropdown opened was causing a console error.
Fixes kpi#3497
kpi#3493 Revise wording of “Delete selected submissions” dialog Fixes kpi#3486
kpi#3492 Table view improvements
Stylistic improvements to Table View to make it display more data at once.
Fixes kpi#3491
kpi#3487 Fix unnecessary table reloads
Table View was fetching the data unnecessarily when a modal was being opened other than Single Submission Modal.
kpi#3464 formpack#262 Extend exports and export settings to accept a query and submission_ids parameter for submission filtering before exports. Allows for a defined subset of data to be exported rather than all submissions. closes kpi#3463
kpi#3462 Fix JSON parse error when saving in formbuilder
Attempting to save a form in formbuilder was causing a crash at JSON.parse(...) in the translations hack. This is due to an unfinished attempt at reverting some changes to the translations hack, see revert translations hack cleanup · kobotoolbox/kpi@6bb852c · GitHub
kpi#3457 Fix Enketo edit url pattern closes #3456
kpi#3447 Removed support for duplicate names in XLSForms
Removed the support for duplicate name in the names columns for imported XLS files and URLs so the user will be aware if there is a problem with their XLSForms.
Fixes kpi#1017
kpi#3434 Smaller REST services icons
kpi#3412 Fix validation logic mangling bug
Fixes the problem for validation logic with double quotes being mangled on save.
Fixes kpi#466
kpi#3407 Improve login guidance and non authorized user experience
Cleaner and better handling of non authorized user (or user without permissions) accessing different part of UI. Also improves behind the scenes of how we handle routes.
Fixes kpi#3318
kpi#3337 Fix Add from Library search form filter and counter
Make subscribed public collections appear as a filter option in Form Builder’s “Add from Library” search form. Also fix the count in same place.
Fixes kpi#3335
kobocat#774 Fix media list endpoint
Fixed the media list endpoint (/api/v1/media) that was returning 500 due to Python2.7-Python3 compatibility issues.
closes kobocat#773
kobocat#775 Fix broken attachment downloads with ODK Briefcase v1.16+
With versions newer than v1.15, attachments and encrypted submissions could not be pulled with ODK Briefcase anymore.
closes kobocat#772
formpack#274 Fix handling of inf and nan values when attempting to export types to XLS format. closes formpack#272
formpack#276 Fix combining fields for repeat groups across versions closes formpack#275

Of interest to self-hosters

PR Description Related Issues
kpi#3503 Install wait-for-it (to later replace Dockerize)
Use a different tool that works with a variety of CPU architectures when waiting for needed services to start
kpi#3440 Allow setting Celery worker count in Django admin
When lots of I/O-bound tasks are enqueued, like REST Services pushes to slow external servers, it can be helpful to increase the number of asynchronous worker processes well beyond the number of CPU cores. This allows that without modifying environment variables or having to restart server processes for changes to take effect.
kpi#3431 Rename ENKETO_SERVER and make it consistent with other app urls
To be consistent with KOBOCAT_URL and KOBOFORM_URL:

- Rename ENKETO_SERVER to ENKETO_URL
- Remove its trailing slash (and add a leading slash to every concatenation)
Fixes kpi#3430
kpi#3414 Remove double slash in Enketo preview API call, which failed in some uncommon self-hosted setups Fixes kpi#3413
kpi#3297 Optimize sync_kobocat_form_media
Reduce memory usage while command is executing.
closes kpi#3296
kobocat#769 Install wait-for-it (to later replace Dockerize)

Of interest to developers

PR Description Related Issues
kpi#3521 Cleanup button styles
Internal cleanup of button styles.
kpi#3507 Typescriptize envStore
Internal improvements.
Needed for kpi#3376
kpi#3495 Icon component
Introduces a reusable icon component.
Fixes kpi#3477
kpi#3494 Refactor custom input range
Move the custom input and its styles to an extensible component to avoid duplicating work
Needed for kpi#3097
kpi#3490 Migrate part of SASS files to use @use
Internal improvement of our SASS styles handling.
Part of kpi#3489
kpi#3485 Typescriptize KoboDropdown and KoboDropdownActions
Typescriptize the KoboDropdown component. Needed for kpi#3097
kpi#3472 Typescriptize AudioPlayer component
Move AudioPlayer component to TypeScript.
kpi#3471 Stop using node-sass
Switch our SASS engine from Node-powered node-sass to JS-powered sass.
kpi#3469 Make BEM modifiers more flexible
With the merging of kpi#3452 we have a revamped way to use BEM in KPI.
Fixes kpi#3467
kpi#3466 Typescriptize textbox component
Moves part of code to TypeScript
kpi#3458 Typescriptize submissionUtils
Move submissionUtils file to TypeScript.
Contains code from PRs:
- kpi#3439 (and thus also some other PRs)
kpi#3455 Fix Python requirements for GitHub Actions
kpi#3452 New bem utility
A followup TypeScriptization of bem utility. It turned out that the previous code was too complex to create types for them and too complex for our usage. I wrote it from scratch with a bit changed usage.
kpi#3450 Fix parseBackendData for partial permissions
Fix front-end tests related to UI changes for row-level write permissions
kpi#3449 Migrate from Travis CI to GitHub Actions
Run tests using GitHub Actions instead of Travis CI, which is now owned by a private equity firm and has abandoned support for testing non-profit, open-source projects
Closes kpi#2898
kpi#3448 add m prop to bem component type
Internal improvement - fix BEMComponent type by adding missing m property type.
Improves kpi#3425
kpi#3446 Update PR template closes kpi#3445
kpi#3441 Remove old way to get server env from allRoutes.es6
kpi#3391 refactored the way we use the server environment, that PR did not have the allRoutes.es6 file so that file was missing this change:
Cleanup environment related stores by magicznyleszek · Pull Request #3391 · kobotoolbox/kpi · GitHub
crashing the page at startup.

PR applies the change to allRoutes.es6
kpi#3439 Typescriptize assetUtils file
Adds types to assetUtils file.
Contains the work from these PRs:

- kpi#3429
- kpi#3435
kpi#3435 Improve types for question types enum
Internal types improvement for QUESTION_TYPES and ASSET_TYPES.
kpi#3429 Typescriptize asset store
Internal refactor - splitting out stores.asset to separate file as assetStore, in TypeScript of course. Also some required typings added around it and cleaned up utils.ts file of unused code.
Needed for kpi#3374
kpi#3411 Cleanup patch asset calls
Makes the patch asset calls use a consistent JSON way.
Cleanup branch related to kpi#466
kpi#3390 Cleanup pre-work for login guidance improvement
Cleanup routes related files as a pre-work for kpi#3318
Part of kpi#3318
kpi#3368 Do not return MongoDB documents count when validating partial permissions
The evaluation of submissions count is skipped when partial permissions are validated.
kpi#3362 Cleanup stylesheets
Move around frontend files in a more logical fashion. Just a file cleanup changes.
Fixes kpi#3248
kpi#3344 Remove unused coffee code
Removed some old and unused code.
formpack#263 Drop Python2 support for FormPack closes formpack#239
1 Like

We’ve released a small update (2.021.45a) to the HHI server with the following fix:

PR Description
kpi#3544 Revert “Removed support for duplicate names in XLSForms”
Go back to the old behavior of silently renaming duplicate questions (kpi#1017) until we exclude $given_name and __version__ from XLSForm downloads (kpi#3539).
1 Like

We’ve released another small update (2.021.45b ) with the following fix:

PR Description Related Issues
#3553 Fix broken disaggregate button for map view
Fixes the “Disaggregate by survey responses” button weirdly/unusable positioned bug.
Fixes #3550
1 Like