nickviljoen
|
477780df09
|
Add client-specific output folders and 14-day auto-cleanup
## New Features
### Client-Specific Output Folders
- Files now saved in client-specific subdirectories (loreal/, diageo/, unilever/, general/)
- Automatic client detection from profile ID
- Better organization for multi-client environment
- Each client only sees their own QC reports
### Automatic File Cleanup
- Auto-delete reports older than 14 days on every file listing request
- Keeps output folder clean and manageable
- Configurable cleanup age (default: 14 days)
### File Filtering by Client
- API endpoint `/api/output_files` now accepts `?client=<client_id>` parameter
- Frontend automatically filters files by selected client
- No more cluttered file lists for clients
### Migration Script
- `migrate_output_files.py` - Move existing files to client folders
- Dry-run mode by default (use --execute to run)
- Deletes files older than 14 days during migration
- Supports both development (--dev) and production (--production)
## API Changes
### Modified Endpoints
- `GET /api/output_files?client=<client_id>` - List files filtered by client
- `GET /output/<client>/<filename>` - Serve files from client folders
- `GET /output/<filename>` - Legacy route for backward compatibility
### New Functions
- `get_client_from_profile(profile_id)` - Detect client from profile
- `ensure_client_output_folder(client)` - Create client folders
- `cleanup_old_files(max_age_days)` - Delete old files
## File Structure
```
output-dev/
├── loreal/
│ └── 20260202_102514_Missing_text_report.html
├── diageo/
│ └── 20260202_103423_Product_shot_report.html
├── unilever/
│ └── 20260202_104512_Key_visual_report.html
└── general/
└── 20260202_105634_Other_report.html
```
## Frontend Changes
- `loadSavedFiles()` now includes client parameter in API calls
- Automatically filters saved files by selected client
- Clean UI showing only relevant reports
## Usage
### Migration (Development)
```bash
# Dry-run (no changes)
python3 migrate_output_files.py
# Execute migration
python3 migrate_output_files.py --execute
```
### Migration (Production)
```bash
# Dry-run for production folder
python3 migrate_output_files.py --production
# Execute migration
python3 migrate_output_files.py --production --execute
```
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
|
2026-02-02 11:18:05 +02:00 |
|