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

kobotoolbox / kpi / 29012112022 / 10
81%
master: 76%

Build:
Build:
LAST BUILD BRANCH: dependabot/github_actions/actions-deps-2d1112a488
DEFAULT BRANCH: master
Ran 09 Jul 2026 11:19AM UTC
Files 888
Run time 31s
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

09 Jul 2026 10:35AM UTC coverage: 58.962% (+9.3%) from 49.635%
29012112022.10

push

github

web-flow
feat(bulkProcessing): add audio duration estimate to bulk transcription modal DEV-2255 (#7177)

### đŸ“Ŗ Summary
Adds an estimated total time for all selected submissions' audio
attachments in the bulk transcription modal.

### 💭 Notes
Implemented with parallel batched requests with exponential backoff if
there is a 504. Pseudo-code:
```
for each batch of ≤50 UIDs:
    attempt = 0
    while attempt < 3:
        POST /api/v2/assets/{asset_uid}/attachments/audio-duration/
        if 200 → store results, break
        if 504 → attempt++, wait, retry
        if other error → surface error, break
    if attempt == 3 → abort, surface error
aggregate total client-side
```

### 👀 Preview steps
**In order to test everything, you may want to have the following:**
- create ways to generate multiple batches. This can be done with:
    - `mockobo` to generate many submissions with audio files (> 500)
- or you can generate a few, and change the constant in
`BulkTranscriptionModal`
- return a 504
[here](https://github.com/kobotoolbox/kpi/blob/1e86db2d5/kpi/views/v2/attachment_audio_duration.py#L56-L57)
in order to test the retries + exponential backoff

1. â„šī¸ have the above ready
2. set the number or rows displayed to 500
3. select all the rows and open the bulk transcription modal
5. đŸŸĸ [on PR] notice that there is a `...` until the audio duration loads
& the duration is accurate when it does
6. generate the `504` in the backend code
7. Open the bulk transcription modal the say way again
8. đŸŸĸ notice that in the network tab, there is maximum 3 tries then a
toast after the last try

---------

Co-authored-by: James Kiger <james.kiger@gmail.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Leszek <smutnyleszek@gmail.com>

5879 of 12525 branches covered (46.94%)

21836 of 37034 relevant lines covered (58.96%)

0.59 hits per line

Source Files on job 29012112022.10
  • Tree
  • List 888
  • Changed 219
  • Source Changed 0
  • Coverage Changed 219
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Build 29012112022
  • 602d82f9 on github
  • Prev Job for on main (#28995843859.1)
  • Next Job for on main (#29017735640.4)
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