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

kobotoolbox / kpi / 28055000383
80%
master: 76%

Build:
Build:
LAST BUILD BRANCH: main
DEFAULT BRANCH: master
Ran 23 Jun 2026 08:35PM UTC
Jobs 10
Files 883
Run time 4min
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

23 Jun 2026 08:30PM UTC coverage: 81.558% (-0.1%) from 81.667%
28055000383

push

github

web-flow
feat(users): add last_project_activity field and backfill LRM DEV-2271 (#7167)

### 📣 Summary

Internal only — no user-visible change.

### 👷 Description for instance maintainers

A new `last_project_activity` field on `ExtraUserDetail` tracks the most
recent project-related activity for each user, including data
submissions, submission edits, and asset creation or modification. The
field is updated automatically on each relevant action and is throttled
(default: 1 hour) to avoid write storms.

A long-running migration (LRM 0026) backfills the field for existing
users. Users with a recent login are skipped as they are already
classified as active.

This lays the groundwork for optimizing mass email filters and the
Django admin user filters in the next release.

8910 of 12103 branches covered (73.62%)

22 of 78 new or added lines in 8 files covered. (28.21%)

1864 existing lines in 52 files now uncovered.

29259 of 35875 relevant lines covered (81.56%)

5.58 hits per line

Uncovered Changes

Lines Coverage ∆ File
53
0.0
kobo/apps/long_running_migrations/jobs/0026_backfill_extra_user_detail_last_activity.py
2
84.13
-0.19% hub/models/extra_user_detail.py
1
66.32
-0.71% kobo/apps/openrosa/libs/utils/middleware.py

Coverage Regressions

Lines Coverage ∆ File
312
0.0
-91.23% kobo/apps/openrosa/apps/viewer/pandas_mongo_bridge.py
209
19.15
-51.99% kobo/apps/openrosa/libs/utils/export_tools.py
206
0.0
-86.19% kobo/apps/openrosa/libs/utils/briefcase_client.py
142
59.16
-25.64% kobo/apps/openrosa/libs/utils/logger_tools.py
87
0.0
-87.88% kobo/apps/openrosa/libs/utils/backup_tools.py
66
33.33
-59.46% kobo/apps/openrosa/apps/viewer/views.py
58
0.0
-90.63% kobo/apps/openrosa/libs/data/query.py
50
0.0
-47.17% kobo/apps/openrosa/apps/logger/tasks.py
49
51.59
-38.89% kobo/apps/openrosa/apps/logger/signals.py
49
28.57
-43.75% kobo/apps/openrosa/apps/logger/views.py
42
46.47
-15.61% kobo/apps/openrosa/apps/viewer/models/data_dictionary.py
41
40.69
-6.75% kpi/deployment_backends/openrosa_backend.py
40
0.0
-40.82% kobo/apps/openrosa/apps/viewer/xls_writer.py
40
23.29
-54.79% kobo/apps/openrosa/libs/utils/image_tools.py
39
23.08
-30.0% kobo/apps/openrosa/apps/viewer/tasks.py
36
24.49
-73.47% kobo/apps/openrosa/apps/logger/import_tools.py
35
24.11
-31.25% kobo/apps/openrosa/apps/logger/utils/instance.py
33
49.51
-32.04% kobo/apps/openrosa/apps/viewer/models/export.py
32
58.33
-13.33% kobo/apps/openrosa/apps/viewer/models/parsed_instance.py
30
57.98
-25.21% kobo/apps/openrosa/apps/logger/models/attachment.py
28
30.14
-19.18% kobo/apps/openrosa/libs/utils/viewer_tools.py
27
61.5
-12.68% kpi/permissions.py
24
33.33
-66.67% kobo/apps/openrosa/libs/utils/decorators.py
20
29.67
-21.98% kobo/apps/openrosa/libs/utils/user_auth.py
17
16.22
-45.95% kobo/apps/openrosa/apps/logger/utils/database_query.py
15
31.71
-36.59% kobo/apps/openrosa/apps/logger/xform_fs.py
15
81.64
-5.86% kobo/apps/openrosa/apps/logger/xform_instance_parser.py
14
47.62
-8.33% kobo/apps/openrosa/apps/main/models/meta_data.py
14
44.0
-56.0% kobo/apps/openrosa/libs/utils/model_tools.py
12
44.9
-24.49% kobo/apps/openrosa/apps/logger/utils/counters.py
11
54.84
-35.48% kobo/apps/openrosa/libs/authentication.py
10
77.44
-5.04% kobo/apps/openrosa/apps/logger/models/instance.py
9
77.49
-4.71% kobo/apps/openrosa/apps/logger/models/xform.py
7
65.19
-1.73% kpi/deployment_backends/base_backend.py
5
84.21
-8.77% kobo/apps/openrosa/apps/logger/exceptions.py
5
72.22
-27.78% kobo/apps/openrosa/apps/logger/models/daily_xform_submission_counter.py
5
75.0
-25.0% kobo/apps/openrosa/apps/logger/models/monthly_xform_submission_counter.py
5
0.0
-38.46% kobo/apps/openrosa/apps/main/context_processors.py
4
45.45
-36.36% kobo/apps/openrosa/koboform/__init__.py
3
95.76
-2.54% kobo/apps/openrosa/apps/api/viewsets/xform_submission_api.py
3
80.0
-20.0% kobo/apps/openrosa/apps/viewer/signals.py
2
53.72
-0.15% kobo/apps/audit_log/models.py
2
83.33
-6.67% kobo/urls.py
2
91.21
-0.35% kpi/models/asset.py
2
80.49
3.41% kpi/utils/mongo_helper.py
1
78.57
-1.19% kobo/apps/audit_log/base_views.py
1
69.85
-0.74% kobo/apps/audit_log/signals.py
1
0.0
-100.0% kobo/apps/openrosa/apps/logger/constants.py
1
91.3
-4.35% kobo/apps/openrosa/libs/permissions.py
1
94.12
-1.18% kobo/apps/openrosa/libs/renderers/renderers.py
1
68.75
-6.25% kobo/apps/openrosa/libs/utils/string.py
1
67.95
-1.28% kpi/authentication.py
Jobs
ID Job ID Ran Files Coverage
1 28055000383.1 23 Jun 2026 08:35PM UTC 879
45.21
2 28055000383.2 23 Jun 2026 08:35PM UTC 879
53.92
3 28055000383.3 23 Jun 2026 08:37PM UTC 881
55.22
4 28055000383.4 23 Jun 2026 08:37PM UTC 881
66.31
5 28055000383.5 23 Jun 2026 08:37PM UTC 879
59.85
6 28055000383.6 23 Jun 2026 08:38PM UTC 881
46.61
7 28055000383.7 23 Jun 2026 08:38PM UTC 881
51.93
8 28055000383.8 23 Jun 2026 08:39PM UTC 883
68.69
9 28055000383.9 23 Jun 2026 08:39PM UTC 881
61.03
10 28055000383.10 23 Jun 2026 08:42PM UTC 879
50.55
Source Files on build 28055000383
  • Tree
  • List 883
  • Changed 8
  • Source Changed 0
  • Coverage Changed 8
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • f6886d32 on github
  • Prev Build on release/2.026.23 (#27643507099)
  • Next Build on release/2.026.23 (#28187712647)
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