Update to v0.7.0 #30
Reference in New Issue
Block a user
Delete Branch "dev"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
[0.7.0] - 2026-03-07
Added
Project Status Management: Projects can now be placed on_hold or archived, with automatic cancellation of pending scheduled actions
Hard Delete Projects: Support for permanently deleting projects, in addition to soft-delete with auto-pruning
Vibration Location Detail: New dedicated template for vibration project location detail views
Vibration Project Isolation: Vibration projects no longer show SLM-specific project tabs
Manual SD Card Data Upload: Upload offline NRL data directly from SD card via ZIP or multi-file select
Accepts .rnd/.rnh files; parses .rnh metadata for session start/stop times, serial number, and store name
Creates MonitoringSession and DataFile records automatically; no unit assignment required
Upload panel on NRL detail Data Files tab with inline feedback and auto-refresh via HTMX
Standalone SLM Type: New SLM device mode that operates without a modem (direct IP connection)
NL32 Data Support: Report generator and web viewer now support NL32 measurement data format
Combined Report Wizard: Multi-session combined Excel report generation tool
Wizard UI grouped by location with period type badges (day/night)
Each selected session produces one .xlsx in a ZIP archive
Period type filtering: day sessions keep last calendar date (7AM–6:59PM); night sessions span both days (7PM–6:59AM)
Combined Report Preview: Interactive spreadsheet-style preview before generating combined reports
Chart Preview: Live chart preview in the report generator matching final report styling
SLM Model Schemas: Per-model configuration schemas for NL32, NL43, NL53 devices
Data Collection Mode: Projects now store a data collection mode field with UI controls and migration
Changed
MonitoringSession rename: RecordingSession renamed to MonitoringSession throughout codebase; DB table renamed from recording_sessions to monitoring_sessions
Migration: backend/migrate_rename_recording_to_monitoring_sessions.py
Combined Report Split Logic: Separate days now generate separate .xlsx files; NRLs remain one per sheet
Mass Upload Parsing: Smarter file filtering — no longer imports unneeded Lp files or .xlsx files
SLM Start Time Grace Period: 15-minute grace window added so data starting at session start time is included
NL32 Date Parsing: Date now read from start_time field instead of file metadata
Project Data Labels: Improved Jinja filters and UI label clarity for project data views
Fixed
Dev/Prod Separation: Dev server now uses Docker Compose override; production deployment no longer affected by dev config
SLM Modal: Bench/deploy toggle now correctly shown in SLM unit modal
Auto-Downloaded Files: Files downloaded by scheduler now appear in project file listings
Duplicate Download: Removed duplicate file download that occurred following a scheduled stop
SLMM Environment Variables: TCP_IDLE_TTL and TCP_MAX_AGE now correctly passed to SLMM service via docker-compose
Technical Details
session_label and period_type stored on monitoring_sessions table (migration: migrate_add_session_period_type.py)
device_model stored on monitoring_sessions table (migration: migrate_add_session_device_model.py)
Upload endpoint: POST /api/projects/{project_id}/nrl/{location_id}/upload-data
ZIP filename format: {session_label}_{project_name}_report.xlsx (label first)
Migration Notes
Run the following migration scripts once per database before deploying:
python backend/migrate_rename_recording_to_monitoring_sessions.py
python backend/migrate_add_session_period_type.py
python backend/migrate_add_session_device_model.py
- Add POST /api/projects/{project_id}/nrl/{location_id}/upload-data endpoint accepting a ZIP or multi-file select of .rnd/.rnh files from an SD card. Parses .rnh metadata for session start/stop times, serial number, and store name. Creates a MonitoringSession (no unit assignment required) and DataFile records for each measurement file. - Add Upload Data button and collapsible upload panel to the NRL detail Data Files tab, with inline success/error feedback and automatic file list refresh via HTMX after import. - Rename RecordingSession -> MonitoringSession throughout the codebase (models.py, projects.py, project_locations.py, scheduler.py, roster_rename.py, main.py, init_projects_db.py, scripts/rename_unit.py). DB table renamed from recording_sessions to monitoring_sessions; old indexes dropped and recreated. - Update all template UI copy from Recording Sessions to Monitoring Sessions (nrl_detail, projects/detail, session_list, schedule_oneoff, roster). - Add backend/migrate_rename_recording_to_monitoring_sessions.py for applying the table rename on production databases before deploying this build. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>