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

kobotoolbox / kpi / 30362429149
82%
master: 76%

Build:
Build:
LAST BUILD BRANCH: dependabot/github_actions/actions-deps-8dc637349b
DEFAULT BRANCH: master
Ran 28 Jul 2026 01:16PM UTC
Jobs 10
Files 894
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

28 Jul 2026 01:12PM UTC coverage: 81.975%. Remained the same
30362429149

push

github

web-flow
feat(bulkProcessing): disable bulk option if no data DEV-2496 DEV-2499 (#7325)

### đŸ“Ŗ Summary

The `Transcribe selected audio files` and `Translate selected
transcriptions` options in the data table column menu are now greyed out
when none of the selected submissions has anything to work with.

### 💭 Notes

Changes here:

- `bulkProcessingUtils.ts`
- new `hasTranscribableAudio()` / `hasAnyTranscribableAudio()` — a
non-deleted attachment for the given question xpath
- new `hasTranslatableTranscript()` / `hasAnyTranslatableTranscript()` —
a transcript with an actual `value`.
- `alerts/alertEvaluators.ts`
- `evaluateNoSource()` now calls those shared helpers instead of doing
its own inline checks.
- `tableColumnSortDropdown.tsx`
- new `isBulkTranscriptionDisabled` and `isBulkTranslationDisabled`
props, added into each item's existing `disabled` condition.
- `table.tsx`
- extracted `getSelectedSubmissions()` (the column header needs the
selected rows now, not just the modal opener) and passes both new props
per column.
- `bulkProcessingUtils.tests.ts`
- unit tests for all four helpers, including the deleted-attachment and
pending-review cases.

### 👀 Preview steps

1. â„šī¸ have an account and a project with an audio question,
transcription/translation enabled in admin
2. add `?ff_bulkProcessingEnabled=true` to the URL to turn on the bulk
processing feature flag
3. submit three responses: **A** and **B** with an audio recording, and
**C** with the audio question skipped
4. go to Project → Data → Table
5. tick the checkbox for **C** only, then open the column menu (the
caret in the header) of the audio question
6. 🔴 [on main] `Transcribe selected audio files` is clickable — click
through the modal and get told there are no eligible submissions at the
end
7. đŸŸĸ [on PR] `Transcribe selected audio files` is greyed out
8. now tick **A** only and use `Transcribe selected audio files`, run
the job, and wait for the transcript column to appear — leave the new
transcr... (continued)

9551 of 12864 branches covered (74.25%)

30911 of 37708 relevant lines covered (81.97%)

5.51 hits per line

Coverage Regressions

Lines Coverage ∆ File
97
30.58
-47.09% kobo/apps/project_ownership/models/transfer.py
64
12.36
-71.91% kobo/apps/reports/report_data.py
63
32.52
-51.22% kobo/apps/accounts/forms.py
46
43.91
-9.66% kobo/apps/audit_log/models.py
38
34.52
-44.05% kobo/apps/audit_log/base_views.py
27
0.0
-72.97% kobo/apps/accounts/adapter.py
27
15.52
-15.52% kobo/apps/project_ownership/utils.py
26
77.37
-13.68% kobo/apps/openrosa/apps/api/viewsets/xform_list_api.py
22
44.0
-44.0% kobo/apps/data_collectors/authentication.py
22
79.66
-18.64% kobo/apps/openrosa/apps/api/viewsets/xform_submission_api.py
20
52.38
-31.75% hub/models/extra_user_detail.py
20
0.0
-68.97% kobo/apps/audit_log/tasks.py
17
46.99
-10.24% kobo/apps/organizations/views.py
16
60.0
-9.29% kobo/apps/audit_log/signals.py
13
37.14
-18.57% hub/utils/i18n.py
12
42.11
-31.58% kobo/apps/data_collectors/signals.py
12
43.06
-16.67% kobo/apps/project_ownership/serializers/invite.py
10
60.71
-35.71% kobo/apps/audit_log/utils.py
10
40.0
-40.0% kobo/apps/openrosa/apps/api/utils/xml.py
10
66.2
-14.08% kobo/apps/project_ownership/models/invite.py
10
14.8
-5.1% kobo/apps/subsequences/utils/versioning.py
9
47.62
-21.43% kobo/apps/markdownx_uploader/models.py
7
67.74
-22.58% kobo/apps/data_collectors/models.py
7
61.76
-20.59% kobo/apps/storage_backends/base.py
7
21.6
-5.6% kobo/apps/stripe/utils/subscription_limits.py
7
32.14
-25.0% kobo/apps/subsequences/utils/supplement_data.py
6
57.58
-3.64% kobo/apps/organizations/models.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
5
30.0
-7.14% kobo/apps/organizations/permissions.py
5
47.22
-13.89% kobo/apps/organizations/tasks.py
4
53.85
-30.77% kobo/apps/accounts/templatetags/customize_email_content.py
4
77.5
-10.0% kobo/apps/kobo_auth/signals.py
4
50.0
-10.53% kobo/apps/organizations/utils.py
3
67.5
-7.5% kobo/apps/openrosa/apps/django_digest_backends/cache.py
3
89.19
-8.11% kobo/apps/project_views/models/project_view.py
2
81.54
-1.03% kobo/apps/openrosa/apps/logger/models/instance.py
2
64.21
-2.11% kobo/apps/openrosa/libs/utils/middleware.py
2
91.3
-8.7% kobo/apps/project_ownership/views/invite.py
1
44.44
-5.56% kobo/apps/accounts/templatetags/get_provider_appname.py
1
92.52
-0.93% kobo/apps/openrosa/apps/api/viewsets/briefcase_api.py
1
86.11
-2.78% kobo/apps/openrosa/apps/logger/fields.py
1
87.11
-0.39% kobo/apps/openrosa/apps/logger/xform_instance_parser.py
Jobs
ID Job ID Ran Files Coverage
1 30362429149.1 28 Jul 2026 01:16PM UTC 890
49.35
2 30362429149.2 28 Jul 2026 01:17PM UTC 890
44.13
3 30362429149.3 28 Jul 2026 01:17PM UTC 890
52.72
4 30362429149.4 28 Jul 2026 01:18PM UTC 890
58.84
5 30362429149.5 28 Jul 2026 01:19PM UTC 892
45.48
6 30362429149.6 28 Jul 2026 01:20PM UTC 892
53.97
7 30362429149.7 28 Jul 2026 01:20PM UTC 892
67.12
8 30362429149.8 28 Jul 2026 01:22PM UTC 892
50.68
9 30362429149.9 28 Jul 2026 01:22PM UTC 892
59.99
10 30362429149.10 28 Jul 2026 01:24PM UTC 894
69.46
Source Files on build 30362429149
  • Tree
  • List 894
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • 557f919e on github
  • Prev Build on main (#30351010515)
  • Next Build on main (#30374295798)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc