Skip to content

Latest commit

 

History

History
1047 lines (993 loc) · 46.3 KB

CHANGELOG.md

File metadata and controls

1047 lines (993 loc) · 46.3 KB

Changelog

2024.4.1 (2024-10-24)

Fix

  • backend: allow empty task id in entity statuses for new geopoint (#1822)
  • dockerfile warning such as Casing and whitespace separator (#1815)
  • updated osm-fieldwork -> 0.16.8 (#1814)
  • files: cleanup function remove
  • QrcodeComponent: reduce qrcode skeleton size
  • e2e: comment out test until CI fixed
  • dialogTaskActions: add task id filter on odk redirect
  • qrcode: increase qrcode size
  • createProject: xlsform key update, fix customForm upload issue
  • editor: solve editor empty issue on manageProject on initial render
  • submissionsTable: on filter reset, set task_id to null
  • backend: pyxform usage only allowing xls file extension (#1758)
  • backend: pyxform usage only allowing xls file extension (#1758)
  • map: set default baseLayer to OSM (#1600)

Refactor

  • update link to custom ODK build (renamed to -FMTM)
  • update link to custom ODK build (renamed to -FMTM)
  • update link to custom odk collect signed 2024.2.0
  • update link to custom odk collect signed 2024.2.0

2024.4.0 (2024-09-24)

Feat

  • frontend: allow selection of additional features during project creation (#1806)
  • backend: endpoint to create additional Entity lists on a project (#1799)
  • backend: endpoint to retreive submission photos (#1794)
  • backend: use XLSForm injection during project creation (#1792)
  • submissionDetails: if new feature point add then zoom to the point (#1797)
  • projectDetailsForm: tms url description text add (#1795)
  • update form by injecting mandatory fields and validate it (#1763)
  • frontend: project not found page (#1768)
  • mark tasks validated + start conflation UI (#1743)
  • add project not found page (#1762)
  • backend: capability to send messages to OSM users (notified via email) (#1747)
  • backend: ODK submission user photos to S3 for easy access (#1744)
  • frontend: add Playwright test for project creation workflow (#1700)

Fix

  • updating form, with disclaimer to use original form
  • frontend: only call additional-feature API if one is set by user
  • backend: submission route ordering causing 500 error
  • backend: error handling if submission download fails
  • backend: add DEBUG override to /refresh for tunnel testing
  • files: add pname, odkToken, osmUser as dependency (#1796)
  • backend: use latest pyxform syntax for xlsform conversion (fix xls ext usage) (#1789)
  • frontend: correct text in validation table to show the marked as validated (#1777)
  • backend: allow empty task id and osm id for new geopoint (#1774)
  • frontend: map ui alignment on various devices (#1772)
  • createProject: lineString validation remove (#1767)
  • backend: pyxform usage only allowing xls file extension (#1758)
  • remove id from the conflated geojson (#1735)
  • updateReviewStatusModal: remove error display & disable btn if no status selected (#1728)

Refactor

  • frontend: do not use debug=true flag on form validation
  • backend: remove task_id and task_filter params from XLSForm (#1805)
  • backend: remove xforms table from database, refactor project creation (#1804)
  • frontend: move QR code & improve base map layer selection component (#1788)
  • backend: rename public beta org to hotosm (#1784)
  • update link to custom odk collect v2024.2.4 download
  • update link to custom odk collect signed 2024.2.0
  • frontend: ui padding tweak & enhancements (#1750)
  • backend: correct username of contributors (#1751)
  • frontend: rename data extract file download (project id + 'map features')
  • frontend: further upgrades from JavaScript to TypeScript (#1746)
  • frontend: additional upgrades javascript --> typescript (#1737)
  • reword Data Extract --> Map Features (#1736)
  • remove usage of sqlalchemy-utils (db init done by sql script)

2024.3.2 (2024-07-31)

Feat

  • backend: delete s3 objects on project deletion (#1718)
  • backend: updated generate_project_files to bulk upload entities (#1714)
  • frontend: working submission comments to submission page (#1709)
  • backend: calculate overlap percentage for the conflation (#1687)
  • frontend: add user to task popup (#1670)
  • backend: add helper route to convert multipolygon geojson --> polygons
  • backend: update split-by-square to avoid creating tasks with no features in it (#1642)
  • backend: endpoint to conflate the submission with osm data (#1594)
  • implement global jwt token authentication for login (#1574)
  • add new endpoint to refresh the app user token (#1583)

Fix

  • frontend: increase maxZoom if project details map 20 --> 22 (drone imagery)
  • xlsform question ordering + pmtile generation when custom TMS (#1721)
  • frontend: submission map chloropeth updating (#1716)
  • uploadArea: allow to reset polygon even if its a geojson file on draw option selection (#1713)
  • projectTaskStatus: dialog task_status text update on task update (#1712)
  • backend: remove option for updating form category type
  • frontend: disable form category updates (#1704)
  • backend: generating project files passing project id to background task (#1708)
  • project: display error generated on the backend (#1693)
  • frontend: button click feedback on form update (#1692)
  • frontend: reduce task overlay opacity (#1682)
  • increased expiry of access token to 1 day (#1672)
  • manageProject: hide user tab until its api integration (#1669)
  • backend: ensure log level name is used (not Level 10, etc)
  • backend: ProjectUserDict usage and standardise geojson parsing/usage throughout (#1659)
  • backend: better handle invalid multipolygon geoms
  • backend: allow multipolygons to choose as task area (#1645)
  • backend: add hashtag to #domain-project_id during proj create
  • createNewProject: save current form step state on previous btn click (#1643)
  • selectForm: update select category description (#1644)
  • frontend: display submission point feature if feature not in extract (#1638)
  • frontend: avoid map legend overlay on small screens (dynamic size) (#1637)
  • prevent project generation if api failure (#1627)
  • replace lru_cache with async for getting odk creds
  • backend: addded created date on the project response, set expiry of access token to 1 hour (#1633)
  • hotfix: download of basemaps in ui, max zoom level 22 used for tms
  • backend: add INVALIDATED status option back in (#1618)
  • featureSelectionPopup: allow any users to map feature (#1612)
  • backend: parsing of hashtags (allow separation by comma, space, or semicolon) (#1607)
  • enums: uncomment previous get_action_for_status_change code (#1609)
  • map: set default baseLayer to OSM (#1600)

Refactor

  • backend: remove additional warning logs from check_crs function
  • backend: improve error message if no project submissions present (#1696)
  • backend: simplify logic for EXTRA_CORS_ORIGINS validation
  • run latest pre-commit hooks
  • run pyupgrade pre-commit hook
  • frontend: simplify infographics API usage (reuse Entities data) (#1601)
  • return access_token response to browser (in memory only)
  • access_token expiry --> 1hr, refresh_token expiry --> 7 days
  • remove redundant logic for refresh token func
  • use pydantic model_dump over .json method
  • replace RS256 jwt signing with simpler HS384 (#1622)
  • fix refs to project_admin --> project_manager after PR merge
  • frontend: update remaining JavaScript files to TypeScript (#1602)

2024.3.1 (2024-06-24)

Feat

  • add healthcare form category & minor fixes (#1555)
  • use Matomo tracking web component, with accept/disagree prompt (#1546)
  • frontend: upgrade React v17 --> v18 (#1542)

Fix

  • submissionDetails: retrieve task_id directly from submissionDetails (#1595)
  • frontend: set submission table task_id from submission task_id
  • ensure task_id field is always included with submissions (#1589)
  • frontend: replace getting task_id from submission with url param
  • ensure status Entity field is updated alongside survey form status field (#1586)
  • createProject: disable submit btn until redirection to details page (#1585)
  • customTable: misalignment via classname add (#1578)
  • frontend: recharts UI misalignment (#1575)
  • taskSubmissions: show task card of tasks even if no features, view submissions btn hide if no features (#1571)
  • charts: size state to track responsive container to fix charts misalignment (#1570)
  • projectDetailsV2: taskLayer color not update issue solve (#1569)
  • frontend: block project create if no extract features (#1561)
  • frontend: redirect user to requested page after login (#1559)
  • frontend: only display matomo tracking banner in prod
  • frontend: do not display pmtiles generated for another project
  • frontend: add tile format to basemaps table, only show cache icon if pmtile
  • backend: loading entity by intent using uuid xformid (#1538)
  • frontend: correctly invoke matomo & sentry tracking in prod

Refactor

  • frontend: update links for odk collect by intent task_id --> task_filter
  • frontend: update download url for custom ODK Collect APK
  • frontend: update link to custom odk collect from intent apk
  • frontend: import hotosm/ui styles.css --> style.css change
  • remove reference to 'topo' basemap imagery provider (usgs)
  • rename fmtm.dev --> docs.fmtm.dev for docs site

2024.3.0 (2024-05-28)

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)

2024.2.0 (2024-04-03)

Feat

  • OPFS-based offline-first PMTile basemaps (#1395)
  • endpoint to check the validity of login cookie (#1380)
  • add link to custom ODK Collect build in sidebar menu
  • toggleable debug console on mobile in local/dev/stage (#1371)
  • handle geo orientation crash firefox & safari (#1381)
  • raw sql replacing sqlalchemy in auth/me endpoint (#1334)
  • added marker blue dot
  • navigation icon changes
  • uploadArea edit AOI btn add (#1346)
  • navigation WIP
  • submission review status modal (#1246)

Fix

  • default UNDERPASS_API_URL no trailing slash
  • post message added undefined check
  • vite test
  • hotfix add top level id to geojson with it missing
  • replace custom pyxform with multi-stage bytesio usage
  • hotfix add top level id to geojson with it missing
  • reduce length of random id generated for data extract
  • fix random integer generation if missing in data extract
  • update user profile image (#1373)
  • log event for sensor
  • ui for basemap gen, tooltip titles (#1363)
  • blank space input validation (#1362)
  • issues on project summaries with no centroids
  • remove add org btn, redirect for submissions page (#1332)
  • hotfix: use centroids for extract division by task area (#1336)
  • return db user instead of auth user on /auth/me (#1247)
  • reduce length of random id generated for data extract
  • fix random integer generation if missing in data extract
  • hotfix: use centroids for extract division by task area (#1336)
  • default UNDERPASS_API_URL no trailing slash
  • hotfix add top level id to geojson with it missing
  • reduce length of random id generated for data extract
  • fix random integer generation if missing in data extract
  • hotfix: use centroids for extract division by task area (#1336)
  • hotfix: use centroids for extract division by task area

Refactor

  • separate response for comment and task status history (#1391)
  • update submission in s3 even if reviewstate is updated (#1379)
  • updated the version of fmtm-splitter -> 1.2.1 (#1375)

2024.1.0 (2024-03-05)

Feat

  • add rich text editor project creation instructions field (#1311)
  • add task_deps to get xform_name for a task
  • add simple ui to delete projects on frontend (#1314)
  • add helpers router to helper util endpoints
  • cookie check added for auth check
  • improve form validation logic, allow xform xml uploads (#1294)
  • implement opening the generate tiles modal when download in qr is clicked
  • replace local useState for generating mb tile modal with global state
  • add global state for toggleGenerateMbTiles modal and add types for it
  • add mbtiles btn back in, pie chart progress (#1278)
  • add helper route to convert fgb --> geojson
  • add map popups to data extract geometries (#1266)
  • manage-organisations: implement skeleton loader while Organizations are being fetched
  • manage-organizations: add OrganizationCardSkeleton component
  • flatgeobuf data extracts on frontend & backend (#1241)
  • added bbox in read project's outline (#1244)
  • added approved in get organisation response (#1226)
  • improve submissions dynamic filtering (#1217)
  • api returning details of unapproved org (#1218)
  • filters on submission table (#1191)
  • init public beta org and svcfmtm user migration (#1206)
  • endpoints for task comments (#1171)
  • add community_type for organisations, add unapproved org list endpoint (#1197)
  • osm-rawdata for generating data extracts (#1183)
  • create / edit organization form (#1178)
  • frontend: default organisation credentials during proj create (#1174)
  • task history end point with associated user (#1071)
  • manage / edit project UI (#1154)
  • mapper role (#1163)
  • project admin role (#1133)
  • frontend: project deletion capability
  • set project delete endpoint to org_admin only
  • project submissions page (#1150)
  • dynamic qrcode generation via frontend (#1143)
  • add AOI editing to map during project creation (#1135)
  • endpoint to return count of validated and mapped tasks (#1138)
  • added withcredential to include cookies on organization list api
  • paginated submissions per task (#1128)
  • organisation approval and admin endpoints (#1126)
  • add test coverage metric (#1129)
  • paginated submissions by project (#1110)
  • add basic user role support to backend (#1094)
  • cookie based authentication (#1091)
  • use flatgeobuf data extracts (#1047)
  • backend: form fields for the submision table (#1072)
  • new project details page (#1070)
  • get contributors by project (#1062)
  • endpoint for submission page count by date (#1051)
  • backend: project dashboard endpoint (#1054)
  • cache submissions in s3 (#1035)
  • add mamoto tracking to prod frontend (#1040)
  • integrate fmtm-splitter and remove splitting code in fmtm (#1037)
  • project info legend (#1017)
  • add profiler to calculate route execution time (#1020)
  • capacitor geolocation and orientation (#1016)
  • cluster spread on click (#1007)
  • frontend: edit draw AOI in create project (#999)
  • generic endpoint to get task status from db

Fix

  • update osm-fieldwork --> 0.5.3 for validateMedia fix
  • submission detail of each task's submission (#1324)
  • frontend: project details improve UI responsiveness (#1321)
  • redirect to loginPopup on Manage Organization click if user not signed in (#1322)
  • backend: format of task_id in xform_name for getting submissions
  • frontend: decrease generate-log interval 2s --> 5s (server load)
  • backend: only access db once during task creation
  • backend: do not overwrite form_category with form filename
  • backend: update form endpoint updates xform_category (not xform_title)
  • backend: generate project-log based on odk_token in tasks
  • backend: add xform_category during project creation
  • frontend: automatically use default odk org creds if present
  • use defusedxml for xml parsing, only parse one in proj creation (#1316)
  • frontend: revert change to ProtectedRoute attempting cookie access
  • frontend: remove 'use client' react/nextjs delcarations from files
  • backend: run xform update in background task
  • backend: bug with xform/xlsform reading with suffix appended
  • frontend: update odk collect qrcode task id in metadata_phonenumber
  • update-form endpoint working
  • frontend: form update page UI + correct post params
  • update project_admin role to return user/project dict
  • fix form validation check during project creation
  • fix form naming during creation, media upload, appuser set
  • update xform name to fetch submissions (#1306)
  • remove data extract upload type (#1261)
  • frontend: only load my organisations once on tab click (#1287)
  • frontend: hotfix allow access to project details without login (for qr codes)
  • fix xform name in task feature count dict
  • check for existing project name (#1285)
  • frontend: hotfix allow access to project details without login (for qr codes)
  • fix xform name in task feature count dict
  • updated the xform in form fields
  • frontend: hotfix disable aoi area check temp
  • frontend: hotfix allow access to project details without login (for qr codes)
  • xform name in task feature count dict (#1288)
  • default map background changed to white (#1281)
  • cast osm_id as string for geojson id
  • top level id in geojson Feature as osm_id
  • create odk projects with prepended 'FMTM xxx' to identify
  • frontend: update qrcode form_update_mode --> match_exactly for sync
  • double wrapped db.execute statement in text()
  • fix passing project id for odk creds proj deletion
  • wrap raw sql expressions in SQLAlchemy.text
  • update odk_central_url validation to prevent blank string
  • extra logs when extracting odk creds from proj/org
  • put feature id on top level of task geojson for odk collect
  • update logic getting default org odk creds
  • geojson task splitting props in odk collect format
  • logic to bypass project_admin if public beta
  • update public org checking logic as part of role check
  • allow public project creation during public beta (#1274)
  • set sqlalchemy connection max_overflow unlimited, until task queue
  • frontend: change console log msg check to type check
  • reduce db connections during project creation
  • frontend: console errors when msg prop is not defined
  • frontend: handle case when console error is not string
  • temporarily bundle minio in prod until minio instance profile
  • make data_extract_url optional for ReadProject schema
  • data extract splitting by task refined, update download endpoint (#1269)
  • console log errors during project creation
  • qrcode download from task popup
  • rendering of qrcode based on task_status
  • task splitting with custom data extract (#1255)
  • dynamic submissions legend chloropeth (#1250)
  • update initial_feature_count --> feature_count and populate values (#1265)
  • use raw sql for organisation crud (#1253)
  • file validity check on fileUpload only once (#1262)
  • send bbox from geojson properties to josm (#1256)
  • comment broken SubmissionMap import on frontend
  • move OdkDecrypted logic into project_deps (#1239)
  • qr popup on task status & styling (#1184)
  • add created_by user id to organisation table (#1232)
  • project org UI issues (#1230)
  • required odk credentials if no organisation default (#1205)
  • removed deps from delele org api (#1233)
  • update schema to edit only required fields (#1223)
  • first coordinate check when check_crs geojson
  • data extract generation and task splitting with polylines (#1219)
  • update task status when mapping starts (#1208)
  • org creation using Form params
  • add odk_central_url to org details returned
  • project creation workflow fixes (task splitting) (#1194)
  • axios interceptor testing
  • feature type not being saved as a geojson type
  • axios interceptors fixing test
  • project submission card UI enhancement (#1186)
  • update db relations for generating submissions (#1179)
  • remove approved flag from organisations endpoint
  • organisation routes role usage & approval
  • baselayer url changed with token
  • create popup outside of async request (fix ios login) (#1167)
  • organisation logo display full width (#1166)
  • map default odk credentials to organisations (#1123)
  • backend: append /v1/ to odk_token url for qrcodes
  • frontend: remove svcfmtm from loginSlice initialState
  • zlib compress dynamic QR codes from frontend (#1159)
  • project submission date and time formatted (#1160)
  • project creation draw and max boundary area (#1157)
  • frontend: do not render qrcode if odktoken is empty
  • API interceptor used in getOrganizationRequest
  • login_required decorator return value converted to AuthUser
  • all usage of AuthUser replace .get methods (#1142)
  • use optional params for extra AuthUser items
  • Depends usage for task_submissions endpoint
  • tile archive download for projects
  • use organization_manager table for org admins
  • limit project area during create (#1109)
  • editable vector layer in ol for project creation (#1102)
  • task split by square fail if data extract pending (#1095)
  • optimize the performance of project dashboard (#1079)
  • create & edit project UI fixes (#1078)
  • more robust method to support different date format
  • string based date to custom date format for over 7days
  • add image to user profile (#1053)
  • homepage height, split on square disable button (#1046)
  • authentication on delete projects api (#1042)
  • frontend: use task status string directly (#1032)
  • prevent generate building task without int (#1030)
  • serialize task status as string (#1031)
  • retriving field value directly using model object
  • task status var type, openlayers styling (#1026)
  • allow qr code access from all users (#1023)
  • error while using task splitting algorithm when drawing aoi
  • use async by default, with occasional def threading (#1015)
  • changed post request to get
  • add template data extract example (#1011)
  • improve logging if organization patch fails
  • setting S3_DOWNLOAD_ROOT if not debug
  • set S3_DOWNLOAD_ROOT if empty string
  • correctly set org logo url on update
  • upload organisation logo in S3 (distributed) (#1008)
  • frontend: project summary search all (#1005)
  • post task split type, dimension, num buildings (#1003)
  • solve pagination error (#997)
  • revert FastAPI UploadFile.getvalue(), use .read()
  • frontend: custom tms url input (#998)
  • rename upload-->project_geojson upload boundary
  • add_obj_to_bucket s3 method all args
  • use S3_DOWNLOAD_ROOT for s3 downloads
  • project.project_info as a dict, not list
  • set uselist=False for Project-->ProjectInfo relationship
  • get_form_full_details func not a json
  • refs BETAProjectUpload --> ProjectUpload
  • use sync def for non-io bound tasks
  • minor fixes, project_info dict, utils bg tasks
  • add uuid in read project and total_task in generate-log (#978)
  • add task_split_type to project when task splitting complete (#990)
  • sign in text, user profile (#996)
  • task id on task polygon and feature extracts (#976)
  • create new project aoi zoom (#989)
  • install-script: add DOCKER_HOST to top of bashrc
  • enforce https for osm oauth callbacks
  • add is_public option to s3 bucket init

Refactor

  • use pyxform fork for BytesIO XForm usage (#1327)
  • frontend: round creation progress to nearest percent
  • backend: add log after project xform update complete
  • remove projects.xform_title completely, in favour of xform_category
  • usage of form_category variable --> xform_title --> xform_name
  • remove redundant central endpoints
  • reduce API calls on home page and project details page (#1315)
  • remove verbose logs from task pydantic model
  • backend: remove verbose logs on project home page
  • backend: remove project boundary upload endpoint (not used)
  • remove categories from form list, update to raw sql
  • old organization creation page removed (#1299)
  • add ts types to store (#1286)
  • remove unneccessary consoles
  • update logic for odk form creation & media upload
  • correctly set project.project_name_prefix on creation
  • remove code for manual service worker registration
  • update sentry to only run on prod website
  • removing redundant code for removing extra closing tag (#1264)
  • reorganize the code to make it cleaner
  • changed sync to async gather_all_submission_csvs (#1258)
  • improve flatgeobuf loading and generation (#1235)
  • remove old edit-project code (#1210)
  • org creation page consent questions (#1185)
  • task status update endpoint to adjust mapper role (#1180)
  • cast all fields for sqlalchemy with python types (#1173)
  • add extra error handling if data extract download fails (#1158)
  • remove withCredentials from org endpoint (use interceptor)
  • frontend: use absolute (aliased) imports over relative imports (#1136)
  • fix return type for organisation url validator
  • update project dashboard to use deps functions (#1127)
  • add metadata_username to odk qr code as test
  • refactor odk appuser + qrcode function naming
  • fix linting errors in project_crud
  • renaming for consistency with database (#1114)
  • remove variable from docker install script
  • fix all pre-commit.ci linting errors (#1101)
  • organization routes/crud/schemas to use best practice (#1096)
  • replace project last active validator --> serializer
  • task status fetched from enums (#1082)
  • serialization for task_status and created project dashboard fields (#1076)
  • pydantic v2 deprecations (#1074)
  • rename mamoto --> matomo
  • replace get_user_by_id with get_user on login
  • remove /images/ endpoint, replaced by s3 logos (#1013)
  • remove endpoints specific to janakpur project (#1012)
  • use DEBUG param to determine S3_DOWNLOAD_ROOT local
  • bytesio .seek(0) & .read() methods with .getvalue() (#1001)
  • replace deprecated on_event with lifespan event
  • generate uuid for background tasks automatically
  • make get_odk_project_full_details synchronous
  • rename project route variables for clarity
  • default s3 bucket name --> fmtm-data
  • rename var S3_BUCKET_NAME_BASEMAPS --> S3_BUCKET_NAME
  • generate uuid for background tasks automatically
  • rename project_id --> odk_project_id for clarity
  • rename get odk project details for clarity
  • remove unused project_crud function
  • remove ref to project_export for now

0.1.0 (2023-11-08)

Feat

  • api to get data extracts for the given aoi and category (#960)
  • added Pagination info in the project summary (#959)
  • selection of basemap output formats, TMS input, mobile UI (#896)
  • add Minio to backend compose stack & CI (#908)
  • addressing of project using Nominatim (#913)
  • new UI for create project (#918)
  • backend tests for project endpoints (#900)
  • add map clustering on main page (#905)
  • returned required media name in a response of form validity (#871)
  • remove microfrontend (#831)
  • data extract custom
  • map integration on project list map
  • project centroid api integration on project summary
  • package changes of ol and added to main
  • added alchemy text on centroid api
  • map Component added to main
  • add script to generate openapi.json
  • Added a new function to perform the conversion of task_boundary from GeoJSON to .osm format.
  • download button for data extract on project details fix Add option to download the data extract fix #779
  • api for download data extract
  • added download data extract loading
  • Enhance GeoJSON Handling and Support for Multiple Formats during task spliting
  • added custom road extract
  • use loguru stdout + json file logging
  • form validation added on custom form
  • added organisation_id on create project frontend
  • organisation Id on create project api
  • added api to centroid logo
  • added projectId on projectbyid
  • Tailwindcss integrated
  • added mbtiles ui and functionality
  • scale reduced on map icon
  • order change define task and data extract
  • typescript integration
  • api to test the validity of custom form uploaded
  • tile generation process moved into fastapi background task
  • josm zoom and load added
  • bounds in geometry_to_geojson
  • josm zoom and load added
  • bounds in geometry_to_geojson
  • get all submissions
  • submission json of a project
  • Draw AOI
  • added react on import
  • draw in progress
  • Login signup handled for local docker
  • Log Status added on UI
  • edit form with form category WIP
  • HashTag Project Create
  • login osm added
  • removed serviceworker in development
  • app on scheme of intent for redirect to odk collect app
  • webpack changes for pwa
  • added manifest.json for pwa
  • integrated serviceworker for pwa
  • workbox config on webpack
  • added workbox for pwa
  • data extracts on the update project form
  • organization another page redirect
  • popup changed to another file
  • changed head title
  • fmtm dev and prod domain to tracepropagationtargets
  • sentry setup for production but dev dsn missing
  • removed glitchtip test button ui
  • integrated sentry alternative glitchtip
  • update project boundary added constant
  • added outline_geojson on project info
  • added EditProject Area on Webpack exposes
  • fix task_status to String
  • refactored typescript files
  • download form of project
  • forgot password route removed
  • eslint prettier setup
  • new tsconfig setup
  • added back icon on EditProject
  • added ArrowBackIcon on assetmodules
  • backbutton on projectinfo page
  • edit project details
  • added outline css to debug
  • slice for edit project
  • edit project validation
  • edit project sidebarContent constant
  • added patch for project details
  • added nodeenv on environment
  • Added Edit Project button
  • current location trigger
  • create organization button on create project
  • osm auth login completed
  • Improved Auto-Fill for ODK Central URL and Username Fields Resolve #566
  • added slice for uploading area geojson
  • added editproject component
  • set individual project details to slices
  • changed name of modal from create to default
  • individual project detail api
  • routes added for project edit
  • data extract step added
  • accept extension on input of upload area
  • added validation for dataextract step
  • data Extract step added on create project page
  • added input file accept extension
  • Data Extract Step added with functionality changes
  • Added Route For Data Extract Step
  • Modify AOI feature
  • redirected to project specific detail page after project creation
  • project creating loading
  • generate task loader and disable handled
  • organization logo required field removed
  • projection switched to EPSG:3857
  • implemented api logic for loading button of download
  • csv and json loader added with style changes
  • added mui/lab loadingbutton on coremodules
  • added mui/lab package
  • fixed project info download submission
  • condition for empty file submission api
  • form issue fixes on geojson upload
  • added padding on map layers
  • added task locking and disabled showing option to change task status
  • osm auth fix
  • package changes
  • osm auth fix 1
  • removed org type from backend
  • implemented new tab on sidebar
  • Tasks Page For Submission
  • env generation script for easier first setup
  • progress bar integrated
  • fixed form issues
  • submission json api
  • download submission to an individual submission
  • exception in creating a project in odk central
  • added osm extracts into fmtm db
  • submission points api
  • generate app user files is moved in background task
  • dynamic project id based submission
  • download submission api
  • avatar png added for submission by
  • added submission page on webpack to expose
  • form-list api, app users list api
  • basic typescript config will add more config
  • category removed from generate api . Category is taken from project table, of from form itself
  • list submission for the project api created
  • organization dropdown create project
  • route added for basemap selection
  • basemap selection page added
  • removed user input field and added central odk input field
  • added type on Validation of Create project
  • custom pagination function
  • prettier added
  • endpoint to get the qr code by task created
  • endpoint to list the xforms
  • end point to upload multi polygon file to create a task for each polygon in the file
  • missing validation on upload geojson
  • put and patch api for project informations
  • add endpoint load-test-data for local zip import
  • add test_data_path for test data dir
  • replace backend dotenv config with Pydantic BaseSettings
  • add config file for fastapi/pydantic env settings
  • removed listProjects during backend init, partial list central projects endpoint
  • add root_path option to FastAPI for serving behind proxy subpath

Fix

  • ads qr code to task list (#970)
  • create new project ux tweaks (#969)
  • create new project ui/ux improvements (#955)
  • align new organization button, replace total projects text (#947)
  • signin / out buttons on mobile (#939)
  • basemap modal closes menu (#938)
  • replace iterative approach for task feats, edit schema
  • move simplify features to get_project_features endpoint (#933)
  • simplify project features response & prep for flatgeobuf osm extracts (#932)
  • warning message before project creation action is cancelled (#924)
  • removed icon from activities
  • inform user if GeoJSON CRS is not EPSG:4326 (#919)
  • allow specifying API_PREFIX if behind proxy
  • optimise mobile UI - project info, home, organisation (#903)
  • feature count in task features count api (#904)
  • solved tasking splitting issue
  • issue when single feature polygon uploaded to upload multi polygon api
  • trim whitespace on schema check prior to migrate (#886)
  • solved unsupported multi-linestring custom feature issue in odk … (#865)
  • set underpass api url via env var
  • remove data extract on different dropdown selection
  • edit project symbol changes on regex
  • commented pagination for future
  • create project single AOI
  • outline geojson of project in project details api (#825)
  • project info on click
  • callback url
  • logs filters for project creation
  • raw sql query in tasks feature
  • remove pydantic Url in favour of str (#814)
  • tiles generation
  • map_url and main_url in config file
  • cors origin error
  • task split algorithm
  • updated category based on the available yaml file
  • pydantic defaults for ODK_CENTRAL vars (#806)
  • import error in json2osm
  • list forms api
  • import error in json2osm
  • upload media if the task has zero features, do not upload media
  • validate EXTRA_CORS_URLS before model validation
  • refactor pydantic v2 Config class (no orm_mode)
  • set default vals for all settingss pydantic v2
  • typing for pydantic validator Url
  • pydantic v1 BaseSettings --> v2 pydantic_settings
  • removed project detail from lazy loading white screen
  • Add support for Doxygen API output
  • Fix import path for read_xlsforms
  • Read in all the xlsforms at startup time
  • project name validation fix Project name should accept other characters too. #754
  • submission detail page
  • organization_id added on create project
  • minimum 5 of splitting algorithm
  • Project name should accept other characters too. #754
  • organization_id none case handled
  • task splitted is not shown in map, although the number of tasks are determined and generated #750
  • previous button wrong route issue
  • project_id added in the tile_instance
  • set tile_path_instance outside try, ref before assign
  • set tile download dir to volume path
  • task status updated issue
  • only set OAUTHLIB_INSECURE_TRANSPORT in DEBUG mode
  • questions order in odk collect
  • Generate mbtiles ux
  • removed async from background mbtiles task
  • project info page not showing projectarea
  • removed drawn geojson on route change
  • hashtag validation create project
  • Color Changes of Tasks and Lock added
  • user with existing username in osm login
  • submission detail page undefined
  • user with existing username in osm login
  • submission detail page undefined
  • if osm is None, return None
  • coonvert to osm function updated if the submission is not present
  • tasks features api
  • Draw AOI bug fix
  • create project value change on edit
  • task aplit algrithm for gojson type feature
  • features api
  • remove SQLALCHEMY_DB_URL in favour of FMTM_DB_URL
  • check for valid geometry in task generate
  • central api create odk form
  • task aplit algorithm, seek to the first object of in memory file
  • upload geojson type Polygon
  • update category api
  • workbox webpack fix for loop
  • submission logic to download json file of task changed
  • task-features api with undefined issue
  • seek for in memory file used in multipolygon upload
  • upload boundary, seek(0) used for in memory file
  • go to odk temp fix
  • intent
  • pwa fixes for icon
  • merge conflicts
  • data Cleaning fix
  • removed api listing static content
  • projects can be filter based on user_id and hashtags present in the project
  • filtering by hashtags check if project hashtags overlap with requested hashtags
  • task spliting for geojson with polygons instead of features
  • download task geometries
  • download project outline
  • merge xlsforms import from main --> development
  • multi polygon
  • merge conflict
  • generate_appuser_files json loads the one.outline instead of eval
  • generate files
  • width on Update form adjusted
  • removed prefix from project patch put api
  • organization list not populating
  • merge conflicts
  • query to split algorithm
  • osm extracts function
  • osm auth login
  • osm auth test 5
  • osm auth test 2
  • osm auth login test fix 1
  • removed unused import
  • removed organization actions
  • removed unwanted code on define area map
  • removed unwanted constant
  • Global View of map - Create Project : Initially the global map should be displayed by default. resolve#461
  • custom file upload not showing switching step
  • using favicon.ico instead of favicon.png for better cross browser support including firefox
  • project detail metadata not showing
  • legend fix on mobile view
  • task wise submission export download
  • file extension passed in generate files
  • download json and csv submission
  • changed default dimension number to 10
  • debug routes import error
  • deleting projectd. Passed odk credentials
  • task list
  • upload multi polygon fix
  • removed project details data after page changes
  • form file is required handled
  • add missing fmtm_images volume def to prod compose
  • task_feature_count api submission count
  • osm-fieldwork version issue
  • osm login
  • osm auth login fix
  • osm auth fix
  • osm auth fix
  • osm auth login fix
  • osm login test
  • osm login test 2
  • osm auth with json response added on /me/
  • osm auth fix 4
  • json response on osm callback url
  • osm auth fix
  • osm auth fix
  • osm auth login fix
  • osm authlogin test 1
  • error on Project info page
  • osm-fieldwork import
  • osm-fieldwork imports
  • Fixes Create Project Section : The input file name has design issues. #452
  • Create Project Section - Upload Area subsection : Alignment of the map elements need to be maintained. #451
  • handle click outside issue
  • organization post
  • adjusted map page of home
  • merge conflict
  • link fix on hotosm.org
  • remove lorem ipsum
  • typo
  • style chnaged
  • ExlploreProjectCard style changed
  • get_user in create project
  • indentatio n fixes
  • remove Multiple feature api
  • init submission xforms with OdkForm(odk_central)
  • load test data endpoint
  • references to central_crud global project/task
  • linting errors for backend
  • pydantic settings default DEBUG type bool
  • odkcentral api user init script variables
  • bug on select form upload
  • create project custom form issue
  • centroid extracts outside project area
  • imports
  • category error for custom form in generate osm data
  • xlsfile params in osm extracts
  • data extract ways for create project
  • osm extracts upload
  • form issue on create project
  • osm 6
  • osm auth 5
  • osm auth 3
  • Osm test 2
  • osmauth fix 1
  • continue loop only in extractPolygon type
  • upload custom xlsfrm in generate app files api
  • Multipolygon type in divide into square
  • logger error
  • changed tsx to jsx on openlayer map module
  • task list api
  • optional chaining operator added on dialogtaskactions.jsx
  • multipolygon issue in creating boundary
  • project details form dropdown changed from rsuite to material ui
  • removed project persist (causing issue)
  • changed outdir file to dist and tsconfig replaced
  • removed project id from upload xlsform
  • removed xform_title from generate appuser
  • osm_extracts in upload media
  • qr code generate url
  • added missed slash in the server url
  • odk collect QR read
  • generate working qr code
  • adding odk server credentials to the projects table
  • Change shapely from 1.8.5 to 2.0.1 to get the centroid function instad of the attribute
  • removed console log
  • all usages of odkconvert are now osm-fieldwork
  • login response issue
  • merge conflict
  • port binding for pytest workflow.
  • check for None type in cors origin validation
  • make BACKEND_CORS_ORIGINS optional, rename to EXTRA_CORS_ORIGINS
  • bug fix on project details
  • prettier fixes
  • linting
  • project summary api
  • merge conflict and instructions removed from load_test_data function
  • get_users throwing an error when no users in db
  • osm login
  • revert self --> cls in pydantic base settings, ignore N805
  • osm auth routes, json encode responses
  • add init file to test data dir to make discoverable
  • include task_status_str in status update response
  • remove symlinked frontend prod dockerfiles, builds failing
  • missed dockerfile for odkcentral in compose prod
  • QR insert w/ project zip upload, QR base64 w/ get project tasks
  • /central/appuser endpoint, return qr code
  • add fmtm.hotosm.org to backend cors origins (until configurable)
  • fmtm network for traefik in prod deploy
  • revert pytest run from src dir, run from root
  • add pytest to requirements-dev and lock all versions
  • add API_URL to frontend env in docker-compose
  • update imports to odkconvert using pip pkg
  • manually create StrEnum,IntEnum in python 3.11 (allow >3.9)

Refactor

  • update changelog path for commitizen
  • change version 0.1.0 --> 0.0.0 prior to first bump
  • add package.json to version control files
  • remove S3_BUCKET_NAME_OVERLAYS (handled by raw-data-api)
  • update final refs to GenerateMbTiles --> GenerateBasemap
  • remove package-lock.json (not used)
  • remove make_data_extract replace with osm-rawdata (#891)
  • remove console.log for import.meta.env
  • update refs to frontend/main --> frontend
  • use full links to hotosm logo in readme
  • remove ogr2osm in code
  • replace all instances of standard logging
  • add additional defaults to backend settings
  • remove api login/signup endpoints
  • remove manual login/logout from frontend
  • remove NODE_ENV check for login buttons
  • use postMessage OSM login, avoid CORS devserver
  • additional logs during proj creation
  • revert ports on debug compose config
  • add init file to backend images dir
  • odk init script to trigger workflow
  • move backend files back to /app after rebase
  • move backend out of /app prior to rebase
  • lint and format all markdown files
  • run pre-commit hooks on backend
  • move app backend server files to app dir
  • move backend code out of app dir for rebase
  • add additional logging to odkcentral connection
  • update version.py path in pyproject.toml
  • remove FMTM_TEST_DB_NAME, DB_URL --> FMTM_DB_URL
  • ignore osm-fieldwork local dir
  • remove tests dir in root (under src dirs)
  • run pre-commit hooks on backend files
  • move backend files to app dir
  • change useless root api path to redirect to /docs
  • move osm auth init to separate file, use Depends
  • move debug data import logic to crud, routes call method
  • remove read_xlsforms from project routes, moved to app start
  • move test data into backend directory, bundle in dockerfile
  • rename quay images in compose
  • remove logs dir clutter
  • remove learn_fastapi clutter
  • remove odkcentral api and proxy into separate dir
  • add log during central create_appuser return
  • temp add additional frontend hosts to api cors origins
  • remove unused frontend dockerfiles and compose
  • remove redundant flask tests (demo frontend)
  • remove custom traefik image, set via command & labels in compose
  • add image names to docker-compose file (github container reg)
  • add default for db .env vars, not required for dev setup
  • remove src/web demo flask app
  • remove demo flask app from prod docker-compose
  • removed LOCAL_DB_URL env var
  • cleanup .env example, remove config.py for flask demo
  • remove submodules (wiki --> docs, odkconvert --> pip pkg)
  • remove odkconvert from repo (install instead)