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

akvo / akvo-mis / #863
89%

Build:
DEFAULT BRANCH: main
Ran 20 Aug 2026 05:28AM UTC
Jobs 1
Files 117
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

20 Aug 2026 05:21AM UTC coverage: 89.355% (-0.09%) from 89.445%
#863

push

coveralls-python

web-flow
[#283] feat(forms): XLSForm & Cascade CSV Export for ODK Collect and KoboToolbox (#317)

* [#268] Stop baking TopoJSON into the frontend config

config.min.js was ~149 KB, of which the fiji.topojson blob was ~148 KB,
served on every cold page load. The frontend stops consuming the global
in the next commits; levels, appConfig and roleFeatures stay baked.

source/fiji.topojson itself is retained because the administration
seeder's production path still reads it; it goes away together with
that path in a future step.

* [#268] Rewrite lib/geo.js without the window.topojson global

geo.js dereferenced window.topojson at module scope and is re-exported
through the lib barrel, so every page importing anything from lib would
white-screen the moment the global disappears from config.js.

The surviving exports (tile, getColorScale, coordinate fixers) never
depended on polygons. defaultPos() becomes a neutral world viewport but
keeps its { coordinates, bbox } return shape so callers need no change.
components/map and components/maps were exported but imported nowhere,
and were the only consumers of the deleted helpers.

* [#268] Drop the polygon layer and zoom-to-selection from map screens

The polygon join matched feature.properties[level_name] against
administration names — it only worked because the database was seeded
from the same shapefile the polygons came from. With customer-defined
administrative units that guarantee is gone, so the layer is removed
rather than left silently unstyled.

Markers, legends and colour gradation are untouched. Selecting an
administration keeps the default viewport instead of zooming to its
shape; marker-derived bounds can restore that later without geometry.

* [#268] Add Tenant model and link SystemUser to it

First slice of the free-tier SaaS work: one Tenant row per sign-up,
identified by a unique subdomain for future routing. The FK is nullable
so every existing user (and the seeders) is untouched, and PROTECT so
removi... (continued)

6181 of 7134 branches covered (86.64%)

Branch coverage included in aggregate %.

11749 of 12932 relevant lines covered (90.85%)

0.91 hits per line

Coverage Regressions

Lines Coverage ∆ File
44
80.66
0.0% api/v1/v1_forms/views.py
31
90.17
-1.65% api/v1/v1_forms/services/xlsform_export.py
17
88.16
-0.17% api/v1/v1_users/views.py
5
97.81
-0.76% api/v1/v1_forms/serializers.py
1
98.7
-0.43% api/v1/v1_profile/models.py
1
93.72
-1.45% utils/custom_generator.py
Jobs
ID Job ID Ran Files Coverage
1 #863.1 20 Aug 2026 05:28AM UTC 117
89.36
Source Files on build #863
  • Tree
  • List 117
  • Changed 6
  • Source Changed 0
  • Coverage Changed 6
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • 0d2ca5d5 on github
  • Prev Build on main
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