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

kobotoolbox / kpi / 28195029459
81%
master: 76%

Build:
Build:
LAST BUILD BRANCH: main
DEFAULT BRANCH: master
Ran 25 Jun 2026 07:30PM UTC
Jobs 10
Files 890
Run time 3min
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

25 Jun 2026 07:25PM UTC coverage: 81.343% (+0.02%) from 81.325%
28195029459

push

github

web-flow
refactor(massEmails): simplify inactive/active user queries DEV-2271 (#7170)

### 📣 Summary

Internal only — no user-visible change.

### 👷 Description for instance maintainers

Builds on #7167 (adds `ExtraUserDetail.last_project_activity`) and
simplifies the mass email and Django admin user activity queries to use
that field directly, replacing the previous multi-table queries on
`Instance` and `Asset` that could time out on large deployments.

The `get_inactive_users` and `get_active_users` functions now each issue
a single query using `last_project_activity`, which is kept up to date
automatically on every submission, submission edit, asset creation, and
asset modification, for both the actor and the form owner.

### 💭 Notes

- `get_users_with_recent_activity()` removed — its logic is now a single
`Q(extra_details__last_project_activity__gt=...)` filter inlined into
each caller
- `get_inactive_users` / `get_active_users` now issue two DB queries
instead of four, with no Python-side set materialisation
- `InactiveUsersAsOfFilter` (Django admin) passes the QuerySet directly
instead of calling `.values_list('pk', flat=True)` first
- Depends on #7167 being merged into `release/2.026.25` first

9091 of 12382 branches covered (73.42%)

0 of 4 new or added lines in 2 files covered. (0.0%)

29844 of 36689 relevant lines covered (81.34%)

5.54 hits per line

Uncovered Changes

Lines Coverage ∆ File
3
34.18
1.21% kobo/apps/mass_emails/user_queries.py
1
46.45
0.0% hub/admin/extend_user.py
Jobs
ID Job ID Ran Files Coverage
1 28195029459.1 25 Jun 2026 07:30PM UTC 886
44.77
2 28195029459.2 25 Jun 2026 07:30PM UTC 886
53.33
3 28195029459.3 25 Jun 2026 07:31PM UTC 886
50.0
4 28195029459.4 25 Jun 2026 07:31PM UTC 888
46.15
5 28195029459.5 25 Jun 2026 07:32PM UTC 888
54.61
6 28195029459.6 25 Jun 2026 07:33PM UTC 888
66.38
7 28195029459.7 25 Jun 2026 07:33PM UTC 886
59.37
8 28195029459.8 25 Jun 2026 07:34PM UTC 888
51.35
9 28195029459.9 25 Jun 2026 07:35PM UTC 888
60.54
10 28195029459.10 25 Jun 2026 07:35PM UTC 890
68.72
Source Files on build 28195029459
  • Tree
  • List 890
  • Changed 3
  • Source Changed 0
  • Coverage Changed 3
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • 77d93442 on github
  • Prev Build on release/2.026.26 (#28188330232)
  • Next Build on release/2.026.26 (#28203977109)
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