- add app.storage.ManifestStaticFilesStorage tolerating directory static
refs (jazzmin renders {% static 'vendor/bootswatch' %}), still strict
for genuinely missing files
- point STORAGES staticfiles backend at it
- guard empty EMAIL_PORT/EMAIL_USE_TLS env values in production settings
- route admin under /backend/, use sqlite in production, add create_admin
- add pillow and django-tinymce deps
DRF viewsets for career, contact, homepage, org, products, projects, team, testimonials. Contact create is public (AllowAny) with list admin-only to close PII leak; pagination applies. Products prefetch features to kill N+1. Wire routes under /api/.
Add Career, Contact, HeroSection, Stats, MarqueeService, Product(+Features), Project, Events, Team, Testimonial models. Export all models in __init__.py. Rework Organization into a fixed-PK singleton so concurrent creates collide on the PK index instead of racing a check-then-insert; replaces lat/long with google_map_link, adds Working hour default. Add title/subtitle to about sections, plus WhatWeDo, SisterCompanies, OurService.