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

akvo / akvo-mis / #1467
91%
main: 91%

Build:
Build:
LAST BUILD BRANCH: feature/541-upgrade-prep-django-4.2
DEFAULT BRANCH: main
Ran 13 Oct 2026 12:07PM UTC
Jobs 1
Files 152
Run time 1min
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

13 Oct 2026 11:06AM UTC coverage: 90.778% (+0.04%) from 90.743%
#1467

push

coveralls-python

web-flow
Feature/547 bug edit mobile assignment (#549)

* [#547] Fix mobile assignment administration level selector

- Pre-fill the Level dropdown with the level id (not level number + 1) on
  edit, so it shows the level name instead of a raw number
- Pass maxLevel to AdministrationDropdown as a 1-indexed depth, and resolve
  currLevel / showSelectAll by level number instead of level id, so the
  cascade renders and re-selection works on tenants where level ids do not
  match their depth
- Cap the assignable level by the user's own role scope (not
  profile.administration, which is the tenant root for everyone), so a
  province-scoped user can no longer pick National

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* [#547] Fix add-user role and administration validation

- Surface nested role validation errors under the "roles" key instead of a
  bare list, so a role/administration level mismatch returns a readable
  message instead of crashing DRF with "need more than 1 value to unpack";
  remove the redundant validate_roles that returned a bool
- FormRoles passes the role's level + 1 (a depth) to AdministrationInput
  rather than administration_level (a Levels id), so the administration
  picker stops at the role's level and cannot produce a level mismatch

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* [#547] Fix tenant middleware 500 on mobile-assignment tokens

A mobile-assignment token resolves request.user to AnonymousUser (the
account lives in request.auth), which has no tenant_id. On a workspace
subdomain the middleware dereferenced it and 500'd every device endpoint.
_authenticated_user now returns None for an unauthenticated resolution, so
the request is treated as anonymous and skips tenant enforcement.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* [#547] Enforce user administration scope on data endpoints

A client-supplied administration filter replaced the caller's own scope
instead of narrowing within it, so... (continued)

8831 of 9964 branches covered (88.63%)

Branch coverage included in aggregate %.

16023 of 17415 relevant lines covered (92.01%)

0.92 hits per line

Coverage Regressions

Lines Coverage ∆ File
82
84.92
0.31% api/v1/v1_jobs/job.py
32
86.44
0.32% api/v1/v1_data/views.py
16
92.37
0.09% api/v1/v1_users/serializers.py
15
85.31
0.65% api/v1/v1_jobs/serializers.py
7
96.5
0.01% api/v1/v1_mobile/views.py
6
95.39
0.31% api/v1/v1_mobile/serializers.py
2
98.31
0.01% api/v1/v1_profile/management/commands/administration_csv_seeder.py
2
97.2
0.2% api/v1/v1_visualization/views.py
1
97.1
0.23% middleware/tenant.py
1
94.69
-0.48% utils/custom_generator.py
Jobs
ID Job ID Ran Files Coverage
1 #1467.1 13 Oct 2026 12:07PM UTC 152
90.78
Source Files on build #1467
  • Tree
  • List 152
  • Changed 11
  • Source Changed 0
  • Coverage Changed 11
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • 29162c02 on github
  • Prev Build on main
  • Next Build on HEAD
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