• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

kobotoolbox / kpi / 25542682493
82%
master: 76%

Build:
Build:
LAST BUILD BRANCH: beccagraber/dev-2180-fix-admin-add-user
DEFAULT BRANCH: master
Ran 08 May 2026 07:24AM UTC
Jobs 10
Files 912
Run time 2min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

08 May 2026 07:19AM UTC coverage: 81.914%. Remained the same
25542682493

push

github

web-flow
refactor(dropzone): update react-dropzone and migrate out of mixin DEV-2081 (#6987)

### 📣 Summary

Upgrade react-dropzone to v15, migrate all Dropzone usages to the
current API, remove legacy droppable mixin usage.

### 💭 Notes

This PR modernizes all Dropzone instances and shared utilities after
upgrade.

Changes here:
- Upgraded `react-dropzone` from `v5` to `v15`
- Migrated all affected Dropzone components to the render-prop API and
modern props
- Replaced className/activeClassName/rejectClassName and disableClick
patterns with getRootProps and dynamic classes
- Removed legacy `mixins.droppable` usage and moved the remaining upload
logic to shared utility functions
- Added a defensive deduplication on `CustomViewStore` until DEV-2082 is
done

### 👀 Preview steps

This is mainly about testing if drag and drop still works after update

1. Open My Library
2. Drag and drop one XLS file, select Upload as template in modal,
confirm Upload
3. Drag and drop multiple XLS files at once
4. Ensure you have at least 30 projects
5. Open My Projects and drag and drop multiple (more than 1) XLS files
6. After imports are created, scroll to load another page
7. 🟢 [on PR] Duplicate append is guarded and list remains stable (no
console errors)
8. 🔴 [on main] Console errors say there are duplicate keys in the list
- This happens because after import finishes on backend the first page
of results (on backend) shifts down because the imported projects are on
the top now, so the few last projects from the first page are now pushed
to second page of results, and after FE loads the (new) second list, the
(old) first page still contains thos shifted projects
9. Open Project → Form, choose "Replace form" icon-button and Upload an
XLSForm; drop file and verify it works
10. Open Project → Settings → Media and drop few files
11. For a project with geopoint question and submissions open Project →
Data → Map; open "Map display settings" and go to "Overlays" tab in
modal; drop-upl... (continued)

9100 of 12254 branches covered (74.26%)

29987 of 36608 relevant lines covered (81.91%)

5.75 hits per line

Coverage Regressions

Lines Coverage ∆ File
193
57.89
-21.44% kpi/utils/query_parser/canopy_autogenerated_parser/__init__.py
117
61.51
-19.66% kpi/models/import_export_task.py
97
29.35
-48.26% kobo/apps/project_ownership/models/transfer.py
77
0.0
-77.78% kpi/password_validation.py
70
23.4
-74.47% kpi/utils/xlsform_preprocessors/kobomatrix_handler.py
66
59.08
-10.8% kpi/serializers/v2/asset.py
63
32.52
-51.22% kobo/apps/accounts/forms.py
50
35.5
-25.0% kpi/utils/xml.py
44
60.05
-10.92% kpi/deployment_backends/base_backend.py
43
84.63
-7.78% kpi/models/asset.py
39
40.36
-6.43% kpi/deployment_backends/openrosa_backend.py
39
35.2
-31.2% kpi/models/paired_data.py
36
58.92
-9.73% kpi/views/v2/asset.py
35
18.75
-72.92% kpi/utils/xlsform_preprocessors/koborank_handler.py
29
64.65
-29.29% kpi/utils/django_orm_helper.py
29
21.95
-70.73% kpi/utils/xlsform_preprocessors/koboscore_handler.py
27
0.0
-72.97% kobo/apps/accounts/adapter.py
27
16.67
-18.0% kobo/apps/project_ownership/utils.py
26
50.0
-37.14% kpi/utils/cache.py
26
71.72
-17.93% kpi/utils/query_parser/query_parser.py
24
40.0
-53.33% kpi/fields/jsonschema_form_field.py
23
60.41
-11.68% kpi/mixins/formpack_xlsform_utils.py
23
52.38
-18.25% kpi/utils/autoname.py
23
51.06
-48.94% kpi/views/v2/authorized_application_user.py
22
31.58
-38.6% kpi/utils/mailer.py
21
0.0
-70.0% kobo/apps/audit_log/tasks.py
21
23.08
-53.85% kpi/utils/asset_translation_utils.py
21
40.58
-30.43% kpi/utils/data_exports.py
21
26.47
-61.76% kpi/utils/export_cleanup.py
18
35.56
-40.0% kpi/fields/file.py
18
64.66
-15.52% kpi/paginators.py
18
37.84
-48.65% kpi/serializers/v2/create_user.py
18
37.93
-62.07% kpi/views/token.py
17
46.99
-10.24% kobo/apps/organizations/views.py
14
67.27
-25.45% kpi/signals.py
13
37.14
-18.57% hub/utils/i18n.py
13
52.87
-14.94% kpi/tasks.py
12
42.11
-31.58% kobo/apps/data_collectors/signals.py
12
43.06
-16.67% kobo/apps/project_ownership/serializers/invite.py
12
71.83
-16.9% kpi/utils/sluggify.py
11
70.41
-5.61% kobo/apps/openrosa/apps/logger/models/instance.py
11
91.36
-3.06% kpi/mixins/object_permission.py
11
28.09
-3.09% kpi/serializers/v2/asset_permission_assignment.py
11
69.76
-5.37% kpi/utils/mongo_helper.py
11
55.56
-40.74% kpi/utils/xlsform_preprocessors/base_handlers.py
9
47.62
-21.43% kobo/apps/markdownx_uploader/models.py
9
67.61
-12.68% kobo/apps/project_ownership/models/invite.py
9
35.29
-52.94% kpi/serializers/v1/authorized_application_user.py
8
35.71
-4.76% kobo/apps/openrosa/apps/main/models/meta_data.py
8
48.94
-8.51% kobo/apps/openrosa/libs/utils/middleware.py
8
52.94
-47.06% kpi/utils/strings.py
7
67.74
-22.58% kobo/apps/data_collectors/models.py
7
76.4
-7.87% kobo/apps/reports/report_data.py
7
53.33
-46.67% kpi/maintenance_tasks.py
7
70.37
-25.93% kpi/models/extra_project_metadata_field.py
7
82.26
-11.29% kpi/utils/kobo_to_xlsform.py
7
80.0
-6.67% kpi/utils/object_permission.py
6
30.19
-3.77% kobo/apps/openrosa/apps/api/permissions.py
6
43.75
-37.5% kobo/apps/project_ownership/filters.py
6
72.09
-13.95% kobo/apps/project_ownership/serializers/transfer.py
6
0.0
-100.0% kobo/apps/project_views/tasks.py
6
74.51
-11.76% kpi/context_processors.py
6
42.86
-42.86% kpi/mixins/asset.py
6
50.0
-14.29% kpi/utils/urls.py
5
64.98
-1.21% kobo/apps/audit_log/models.py
5
30.0
-7.14% kobo/apps/organizations/permissions.py
5
47.22
-13.89% kobo/apps/organizations/tasks.py
5
90.2
-4.9% kpi/models/asset_file.py
5
81.03
-4.31% kpi/models/asset_snapshot.py
5
75.0
-20.83% kpi/models/authorized_application.py
5
24.1
-6.02% kpi/utils/storage.py
4
53.85
-30.77% kobo/apps/accounts/templatetags/customize_email_content.py
4
89.47
-7.02% kpi/deployment_backends/mixin.py
4
94.25
-4.6% kpi/utils/asset_content_analyzer.py
4
33.33
-66.67% kpi/utils/chunked_delete.py
4
86.67
-13.33% kpi/utils/project_views.py
4
64.29
-14.29% kpi/utils/submission.py
4
70.87
-3.88% kpi/utils/usage_calculator.py
3
78.43
-5.88% hub/models/extra_user_detail.py
3
61.21
0.0% kobo/apps/organizations/models.py
3
88.57
-8.57% kobo/apps/project_views/models/project_view.py
3
73.95
47.9% kobo/apps/stripe/utils/subscription_limits.py
2
57.09
-0.79% kobo/apps/openrosa/apps/viewer/models/parsed_instance.py
2
91.3
-8.7% kobo/apps/project_ownership/views/invite.py
2
85.84
-1.77% kpi/exceptions.py
1
44.44
-5.56% kobo/apps/accounts/templatetags/get_provider_appname.py
1
45.72
-0.37% kobo/apps/openrosa/apps/viewer/models/data_dictionary.py
1
65.79
5.26% kobo/apps/organizations/utils.py
1
57.89
-2.63% kpi/db_routers.py
1
79.49
-2.56% kpi/deployment_backends/kc_access/storage.py
1
95.51
-1.12% kpi/deployment_backends/mock_backend.py
1
78.71
-0.5% kpi/filters.py
1
67.74
-3.23% kpi/mixins/standardize_searchable_field.py
1
92.0
-2.0% kpi/models/asset_version.py
1
72.73
-4.55% kpi/utils/bugfix.py
Jobs
ID Job ID Ran Files Coverage
1 25542682493.1 08 May 2026 07:24AM UTC 908
52.24
2 25542682493.2 08 May 2026 07:25AM UTC 910
53.44
3 25542682493.3 08 May 2026 07:26AM UTC 910
55.07
4 25542682493.4 08 May 2026 07:26AM UTC 908
59.8
5 25542682493.5 08 May 2026 07:27AM UTC 908
52.54
6 25542682493.6 08 May 2026 07:27AM UTC 910
65.86
7 25542682493.7 08 May 2026 07:28AM UTC 910
60.9
8 25542682493.8 08 May 2026 07:28AM UTC 912
68.07
9 25542682493.9 08 May 2026 07:29AM UTC 910
53.86
10 25542682493.10 08 May 2026 07:39AM UTC 908
53.84
Source Files on build 25542682493
  • Tree
  • List 912
  • Changed 2
  • Source Changed 0
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • a2634749 on github
  • Prev Build on main (#25517080521)
  • Next Build on main (#25559272496)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc