- money filter: format via Decimal(str(...)) instead of float — money never passes through binary floating point on its way to the screen - preview_payslip / worker_lookup_ajax: accumulate totals in Decimal, convert to float only at the JsonResponse boundary, so previews are bit-identical to what _process_single_payment records - price_overtime: explicit .quantize(0.01) instead of letting the DB engine silently round the 3rd decimal place - stacked-chart wage rollup: Decimal(str(salary)) — on SQLite dev the value arrives as float and Decimal(float) keeps the binary noise - payroll_dashboard fmt(): en-ZA space-separated thousands like every other money helper on the page (was the one comma-format outlier) - base.html admin gate: '(auth and staff) or superuser' precedence trap replaced with 'staff or superuser' — exact same truth table (both flags False on AnonymousUser), matches server-side is_admin() - attendance_log.html: worker day-rates now ship via the house json_script pattern instead of |safe-rendering a Python dict repr into the script block Co-Authored-By: Claude Fable 5 <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%