Task-by-task plan for the design at 30d0991. 6 tasks, 1 checkpoint after Task 4 (all pill interactions demoable, modal still as fallback). Tasks: 1. Backend: project_team_pairs_json context + 2 tests 2. Template: popover shells + Apply button + json_script embeds 3. CSS: pill-editable, pill-dirty, popover, apply-group, toast (~150 lines) 4. JS: pill-popover interactive module (~300 lines, scoped IIFE) --- CHECKPOINT 1 --- 5. Retire modal: delete _report_config_modal.html, update index + report templates, keep backend context keys (still used by pill markup) 6. QA + shipped note Scope: ~480 LOC net added (not the ~330 estimated — JS came out larger once written with proper state management + cross-filter). Tests grow 42 -> 44. One new CDN-loaded library? No — Choices.js already loaded from Executive Report v2. Zero model changes, zero migrations. Noted trade-off in Task 5: selected_project_ids / selected_team_ids context keys were KEPT despite design doc suggesting removal — the pill popovers still use them for pre-selection + URL-diff init. Only the modal markup was retired. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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 collectstaticbefore serving through Apache.
Description
Languages
JavaScript
42.5%
SCSS
41.7%
CSS
11.9%
Python
3.2%
HTML
0.6%