Greetings, everyone. We present to you our next release that includes the changes listed below. It
- has been deployed on kf.kobotoolbox.org as of 22:00 UTC on 8 November.
- has been deployed on kobo.humanitarianresponse.info as of 22:00 UTC on 15 November.
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 urlsTo 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 |