Konrad du Plessis 6905703492 feat(adjustments): Team -> Workers cross-filter in the popover JS
When Team(s) are selected via the Teams popover, the Workers popover
now only shows workers who belong to at least one of those teams.
URL-selected workers stay visible regardless (so the user can see
and untick them).

Backend adds one context key: team_worker_pairs_json — raw Python
list of {team_id, worker_id} dicts from Team.workers.through;
template renders via |json_script (safe, no double-encoding).

Frontend reads the JSON once, builds a team_id -> Set(worker_id)
index, and on every Workers-popover open (and on Teams-popover OK)
hides rows whose worker is out-of-team. display:none on the <label>
row is visually cleaner than disabling the checkbox alone.

Scope: entire roster (not date-range-scoped) — cross-filter is
about data possibility, not data in this period.

One new test locks in the pairs-context-key shape (asserts it's a
raw Python list of dicts, not a pre-serialised JSON string —
guards against the double-encoding regression from Feature 1).
65/65 tests pass.
2026-04-23 19:13:10 +02:00
2026-02-22 12:14:54 +00:00
2026-02-22 12:14:54 +00:00
2026-02-22 12:14:54 +00:00
2026-02-22 12:14:54 +00:00
2026-02-22 12:14:54 +00:00
2026-02-22 12:14:54 +00:00
2026-02-22 12:14:54 +00:00
2026-02-22 12:14:54 +00:00

Flatlogic Python Template Workspace

This workspace houses the Django application scaffold used for Python-based templates.

Requirements

  • Python 3.11+
  • MariaDB (or MySQL-compatible server) with the credentials prepared by setup_mariadb_project.sh
  • System packages: pkg-config, libmariadb-dev (already installed on golden images)

Getting Started

python3 -m pip install --break-system-packages -r requirements.txt
python3 manage.py migrate
python3 manage.py runserver 0.0.0.0:8000

Environment variables are loaded from ../.env (the executor root). See .env.example if you need to populate values manually.

Project Structure

  • config/ Django project settings, URLs, WSGI entrypoint.
  • core/ Default app with a basic health-check route.
  • manage.py Django management entrypoint.

Next Steps

  • Create additional apps and views according to the generated project requirements.
  • Configure serving via Apache + mod_wsgi or gunicorn (instructions to be added).
  • Run python3 manage.py collectstatic before serving through Apache.
Description
No description provided
Readme 8.5 MiB
Languages
JavaScript 42.5%
SCSS 41.7%
CSS 11.9%
Python 3.2%
HTML 0.6%