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

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

Build:
Build:
LAST BUILD BRANCH: feature/523-backend-remove-drafts
DEFAULT BRANCH: main
Ran 09 Oct 2026 08:03AM UTC
Jobs 1
Files 148
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

08 Oct 2026 10:27AM UTC coverage: 90.747% (+0.2%) from 90.508%
#1426

push

coveralls-python

web-flow
Epic/478 viz global question filter (#532)

* [#478] Plan the global dashboard question filter, with pending tests

- Split the VIZ-027 design into a parent spec and backend/frontend
  parts, each task with user and technical acceptance criteria
- Check the design against the code (findings A1-A7) and prototype it
  on local Rural Water Project data
- Record decisions D-13 (filter out only), D-14 (same-named monitoring
  questions read as one, latest answer wins, merged options) and D-15
  (one global_criteria parameter per value; new option values may not
  contain ':' ',' '|', enforced by the backend validators only, so the
  form editor library does not change)
- Compare with the WAI SDG portal's advanced filter (prior art)
- Add backend and frontend tests written before the implementation.
  Backend feature tests carry @pending("<task>"): a failing assertion is
  reported as a skip, so CI stays green, and a test that passes while
  still marked fails the run until its marker is removed

Tests only and docs; no application code changes.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

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

* [#520] Implement the global dashboard question filter backend

- Parse repeated `global_criteria` (option_not_in:<qid>:<value>, split at
  most twice) in the four views after check_ids and the tenant-scoped
  form lookup; never via a serializer, so `global_criteria[0]` cannot
  bypass the public allowlist
- Family check and same-name groups across monitoring forms (D-14);
  400 for malformed entries, more than 50 values, or foreign questions
- Exclude filtered-out registrations with an SQL subquery on id or
  parent_id; "latest answered" is one DISTINCT ON (parent_id) pass,
  dates matched by question name
- Apply the exclusion to values, escalation, map, formula and table
- Validate and snapshot default_filters.questions (merged option labels),
  keep a separate filter_questions allowlist for public da... (continued)

8696 of 9812 branches covered (88.63%)

Branch coverage included in aggregate %.

15784 of 17164 relevant lines covered (91.96%)

0.92 hits per line

Coverage Regressions

Lines Coverage ∆ File
51
90.71
0.17% api/v1/v1_visualization/values_functions.py
35
92.81
0.41% api/v1/v1_forms/functions.py
33
87.14
0.09% api/v1/v1_forms/services/xlsform_import.py
21
92.88
4.22% api/v1/v1_visualization/functions.py
15
80.0
0.08% api/v1/v1_visualization/escalation_functions.py
11
95.85
0.54% api/v1/v1_visualization/dashboard_functions.py
9
93.44
0.02% api/v1/v1_visualization/dashboard_serializers.py
4
96.33
-3.67% api/v1/v1_visualization/dashboard_snapshot.py
4
95.76
0.52% api/v1/v1_visualization/public_scope.py
4
94.96
0.09% api/v1/v1_visualization/serializers.py
3
97.01
2.76% api/v1/v1_visualization/views.py
1
98.75
-0.42% api/v1/v1_profile/models.py
1
97.18
0.21% api/v1/v1_users/authentication.py
1
98.28
0.26% api/v1/v1_visualization/dashboard_views.py
Jobs
ID Job ID Ran Files Coverage
1 #1426.1 09 Oct 2026 08:03AM UTC 148
90.75
Source Files on build #1426
  • Tree
  • List 148
  • Changed 18
  • Source Changed 0
  • Coverage Changed 18
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • f7a0813c on github
  • Prev Build on HEAD
  • Next Build on feature/535-iwsims-sync-approval-tab-and-mobile-changes
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