Update to v0.7.0 #30

Merged
serversdown merged 31 commits from dev into main 2026-03-08 03:13:20 -04:00
Owner

[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

[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
serversdown added 31 commits 2026-03-08 03:12:52 -04:00
-feat: ability to hard delete projects, plus a soft delete with auto pruning.
- 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>
fix: chart formating and styling tweaks to match typical reports.
Feat: add complete combined sound report creation tool (wizard), add new slm schema for each model

feat: update project header link for combined report wizard

feat: add migration script to backfill device_model in monitoring_sessions

feat: implement combined report preview template with spreadsheet functionality

feat: create combined report wizard template for report generation.
add: rebuild script for prod.

fix: Improved data parsing, now filters out unneeded Lp files and .xlsx files.
Docs: Update readme/changelog for 0.7.0
serversdown merged commit 1dd396acd8 into main 2026-03-08 03:13:20 -04:00
Sign in to join this conversation.