2024.3.0
FMTM 2024.3.0: ODK Entities
Three months since the last release, this is a major FMTM increment.
There has been a complete re-write of the underlying link to ODK
(ODK Entities were released at the end of 2023, with rapid development since then).
🌟 New Features
-
Loading a feature in ODK Collect by clicking a button:
-
First the custom build of ODK Collect that allows this must be installed (first uninstall your current version):
-
Then ensure your project QR Code is loaded in ODK Collect at least once:
-
Each map feature that is clicked on will display the 'Map Feature in ODK' button:
-
Clicking this button will open ODK Collect, with the feature pre-selected in the form:
-
-
Caching offline basemaps directly in the browser:
The PMTiles format can be viewed when the user is offline or in the field, if they cache the basemap by clicking the ‘bolt’ icon below:
-
Mapping is now possible without an OSM account
We found this was a barrier for some mappers, so removed the dependency entirely.
FMTM is still based on OSM and uses OSM accounts for project management.
A ‘temporary login’ method was added for mappers wishing to just get started and map!
-
Extendable survey forms
Options to download and edit the the survey (XLSForm) interactively have been added.
Interactive editing allows for a spreadsheet like interface on the web.
🛠️ Improvements
-
Easier basemap configuration
For project managers, they can specify a TMS URL for basemap generation during project generation, which will be pre-filled when the user attempts to download a basemap.
This avoids the need to distribute the TMS URL to mappers via other communication channels. -
Integration of Concept of entities in FMTM Workflow
This enables loading ODK Form with features pre-selected. -
Refinements to the FMTM splitting algorithm
Better error handling in various scenarios and more accurate splitting. -
Validate features being mapped sufficiently before task completion is possible
-
Replaced OSM login popup with a login within the same web page, reducing possible issues with popup blockers.
-
Technical feature for self-hosted FMTM: added option for users to self-host FMTM with Kubernetes (via Helm Chart).
Technical Summary
Feat
- add link for interactive xlsform editing during project creation (#1480)
- update PWA config with 2023 icon requirements and caching (#1474)
- download submissions in geojson (#1517)
- add OpenTelemetry configuration for backend API (monitoring) (#1496)
- prompt user if task area is not fully mapped on mark complete (#1493)
- use task index as an user facing task_id (#1470)
- frontend: login options to frontend, OSM or temp auth (#1458)
- frontend buttons to load Entities in ODK Collect by intent (#1449)
- distinguish between tasks locked by the current user and tasks locked by others (#1469)
- append extra hashtag to projects with domain and project id identifier (#1454)
- endpoints for getting Entity data & updating Entity mapping status (#1445)
- temporary authentication login for mappers (svcfmtm) (#1410)
- add /projects/features endpoint for project FeatureCollection (disaster.ninja integration) (#1442)
- Playwright integration with test cases to be written (#1433)
- implement ODK Entities for project creation (#1383)
Fix
- lock map feature if 'Map Feature In ODK' clicked (#1516)
- pmtile basemap generation and remove temp workarounds (#1535)
- backend: generate location_str in model_validator instead of computed_field (#1534)
- backend: validation_exception_handler pass all required params
- valid matomo tracking script
- pass project aoi as a outline geojson (#1533)
- typo error in project name prefix in submission-download-geojson (#1523)
- download submissions(csv,json) & refactor submission endpoints (#1519)
- populate task_id correctly in feature properties (#1515)
- refactored project dashboard and submission graph (#1509)
- dialogTaskActions: same name variable conflict solve (#1506)
- backend: use task ids to count validated and mapped status (#1485)
- backend: get contributors count in project summary (#1484)
- task hover popup & disable splitting algo without linestring (#1481)
- login methods after temp cookie auth (#1471)
- frontend: do not call introspect endpoint on /osmauth callback
- basemap tile download, refactor to use /{project_id}/name (#1467)
- frontend: invalidate login if mismatch between existing and new user login (#1462)
- role mapper to login required in data extract (#1450)
- fix list-forms endpoint logic to return list of dicts
- activity comment api calls in frontend (#1435)
- handle multipolygon geometries for project area (#1430)
- XLSForm template download endpoint for specified categories (#1441)
- filter task_history endpoint using task_id (#1436)
- update logic for more flexible submission json --> geojson
- add optional auth to raw-data-api calls, plus folder structure for persistence (#1431)
- project details mobile UI, user details in header (#1407)
- backend: allow missing odk_token for project, but log warning
- add odk_token from projectInfo to qrcode creation
- project name editing validation (#1416)
- return proper error message if form edit is invalid (#1415)
- default UNDERPASS_API_URL no trailing slash
- more informative browser tab titles/details (#1411)
- update task activity endpoint (#1406)
- project edit form update validation (#1397)
Refactor
- remove missed warning log from update_survey_form
- remove broken submission code no longer used
- use HTTPStatus enum for helper route response codes
- fix ambiguous typos preventing pre-commit codespell passing
- run codespell spelling fixer
- replace unecessary outline_centroid for tasks with ol.extent.getCenter (#1447)
- merged multi polygon to single polygon (#1426)
- task comment response and schema (#1423)
- response of update task status and added user info in task history (#1419)
Full Changelog: 0.1.0...2024.3.0