The venv's bin directory gets overwritten when the docker copies the
backend directory into the image. This moves the venv outside of the
backend so that it does not get overwritten.
Dockerize the full stack so developers can run everything with
`docker compose up`. Replaces the outdated Dockerfile and
docker-compose.yml with a working 6-service setup: PostgreSQL,
Redis, Django backend, Celery worker, Celery beat, and SvelteKit
frontend.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* added models contacts, contactlists, campaigns for marketing module & completed crud operations for email templates model in marketing, added contact list crud operations, sample csv file added for reference, updated actions icons in all list pages, fixed issue of getting closed leads in accounts create/edit pages
* completed crud operations to use email templates model, displaying contact list contacts and faile/invalid contacts, completed changes for new campaign, removed firstname and lastname as required and added title as required in leads create page, completed changes for Campaign email send with attachment
* added test cases in marketing, common modules, updated documentation and changed jquery plugin in campaign
* added mentions in comments section for all modules, added email templates when assigining a case or account, changed validation error messages in documents create and edit pages, added thumbnails for attachments in all detail pages
* added tags field for campaign, changed styles for marketing module, added loading spinner and validation for file fields in campaign list create page, changes in marketing module
Add db.env --> store shared database environment variables
Add wait-for-postgres.sh --> let crm container run django server after
database being ready to connect