towerops/lib/towerops_web/live
Graham McIntire 1b6a548f3a refactor: imperial coverage form + Deygout/curvature propagation
Form simplification per user feedback. Form now shows only the
essentials (Name, Site, Antenna, Frequency, TX power, Range, Height,
Azimuth, Tilt, Foliage tuning) with imperial units throughout (ft, mi,
GHz). Defaults: TX power 18 dBm, height 100 ft, azimuth 0°, frequency
5.8 GHz, range 4 mi.

EIRP is calculated, not entered: shown as a live-updating badge in
the form header as `TX power + antenna.gain`.

Removed from the form (still on the schema with sensible defaults so
existing callers and the worker keep working): cell_size_m (auto-
computed from radius / 200, clamped 5–50 m), cable_loss_db, sm_gain_dbi,
tx_clearance_m, height_above_rooftop_m, receiver_height_m,
rx_threshold_dbm, latitude/longitude_override.

Schema:
- Six virtual imperial fields (height_agl_ft, height_above_rooftop_ft,
  receiver_height_ft, tx_clearance_ft, radius_mi, frequency_ghz). The
  changeset converts to SI before validation. Tests/workers/API keep
  sending SI directly.
- ensure_cell_size_m/1: defaults the cell size when callers omit it.

Show + index pages now display GHz / ft / mi.

Propagation accuracy upgrade:
- Earth-curvature correction (4/3-Earth model, ITU-R P.453) applied
  per profile sample. Important for paths over ~5 km.
- Replaced Bullington single-knife-edge with Deygout three-edge
  multi-obstacle method (ITU-R P.526 §4.5): catches multi-ridge
  terrain shadowing that a single dominant obstacle would miss.

Tests: 67 coverage tests pass (added Earth-curvature and Deygout
multi-obstacle reference checks). Full suite: 10817 tests.
2026-05-06 14:44:23 -05:00
..
account_live Fix dark mode inconsistencies across all pages 2026-02-16 10:31:52 -06:00
admin test: refactor LiveView tests to use HTML-aware element/form helpers 2026-04-29 11:14:20 -05:00
agent_live test: refactor LiveView tests to use HTML-aware element/form helpers 2026-04-29 11:14:20 -05:00
alert_live perf+refactor: codebase-wide query and antipattern audit 2026-04-28 16:58:51 -05:00
check_live tests: raise coverage to 70% via helper promotion + new unit/property tests 2026-04-24 09:49:06 -05:00
components logging fix and some other codex fixes 2026-03-10 15:04:28 -05:00
coverage_live refactor: imperial coverage form + Deygout/curvature propagation 2026-05-06 14:44:23 -05:00
device_live test: refactor LiveView tests to use HTML-aware element/form helpers 2026-04-29 11:14:20 -05:00
escalation_policy_live feat(on_call): drag-drop reorder + restrictions editor + new-schedule polish 2026-04-28 14:27:38 -05:00
graph_live tests: raise coverage to 70% via helper promotion + new unit/property tests 2026-04-24 09:49:06 -05:00
help_live Add GeoIP import HTTP tests 2026-03-10 16:02:49 -05:00
helpers refactor/dry-improvements (#202) 2026-03-28 10:56:34 -05:00
insights_live tests: raise coverage to 70% via helper promotion + new unit/property tests 2026-04-24 09:49:06 -05:00
maintenance_live tests: raise coverage to 70% via helper promotion + new unit/property tests 2026-04-24 09:49:06 -05:00
map_live fix: vendor Leaflet 1.9.4 locally instead of fetching from unpkg 2026-05-01 17:06:54 -05:00
mikrotik_backup_live tests: raise coverage to 70% via helper promotion + new unit/property tests 2026-04-24 09:49:06 -05:00
org test: refactor LiveView tests to use HTML-aware element/form helpers 2026-04-29 11:14:20 -05:00
org_live fix: org switching now correctly updates session 2026-03-04 17:04:49 -06:00
schedule_live perf+refactor: codebase-wide query and antipattern audit 2026-04-28 16:58:51 -05:00
site_live tests: raise coverage to 70% via helper promotion + new unit/property tests 2026-04-24 09:49:06 -05:00
trace_live tests: raise coverage to 70% via helper promotion + new unit/property tests 2026-04-24 09:49:06 -05:00
user_settings_live dialyzer: fix all unmatched_return warnings (154 → 0) 2026-04-21 10:03:55 -05:00
activity_feed_live.ex tests: raise coverage to 70% via helper promotion + new unit/property tests 2026-04-24 09:49:06 -05:00
activity_feed_live.html.heex tweaks (#85) 2026-03-19 13:51:02 -05:00
changelog_live.ex fix: add navigation and footer to changelog page 2026-03-09 15:59:13 -05:00
config_timeline_live.ex tests: raise coverage to 70% via helper promotion + new unit/property tests 2026-04-24 09:49:06 -05:00
dashboard_live.ex fix: deduplicate active issues count when device is down 2026-05-04 12:11:54 -05:00
dashboard_live.html.heex fix: deduplicate active issues count when device is down 2026-05-04 12:11:54 -05:00
mobile_qr_live.ex dialyzer: fix all unmatched_return warnings (154 → 0) 2026-04-21 10:03:55 -05:00
network_map_live.ex feat: WISP-tuned network map enhancements (TOW-16) 2026-03-15 14:06:06 -05:00
network_map_live.html.heex test: refactor LiveView tests to use HTML-aware element/form helpers 2026-04-29 11:14:20 -05:00
onboarding_live.ex tests: raise coverage to 70% via helper promotion + new unit/property tests 2026-04-24 09:49:06 -05:00
onboarding_live.html.heex Prevent Oban polling/monitoring job stacking per device 2026-02-16 16:37:48 -06:00
reports_live.ex tests: raise coverage to 70% via helper promotion + new unit/property tests 2026-04-24 09:49:06 -05:00
reports_live.html.heex fix: make sidebar sticky with header and resolve all credo issues (#32) 2026-03-15 18:19:09 -05:00
rf_link_health_live.ex tests: raise coverage to 70% via helper promotion + new unit/property tests 2026-04-24 09:49:06 -05:00
rf_link_health_live.html.heex fix: make sidebar sticky with header and resolve all credo issues (#32) 2026-03-15 18:19:09 -05:00
status_page_live.ex tests: raise coverage to 70% via helper promotion + new unit/property tests 2026-04-24 09:49:06 -05:00
status_page_live.html.heex fix: make sidebar sticky with header and resolve all credo issues (#32) 2026-03-15 18:19:09 -05:00
user_registration_live.ex tests: raise coverage to 70% via helper promotion + new unit/property tests 2026-04-24 09:49:06 -05:00
user_reset_password_live.ex fix: status emoji accumulating in page title and add missing page titles 2026-03-11 09:54:18 -05:00
user_settings_live.ex dialyzer: fix all unmatched_return warnings (154 → 0) 2026-04-21 10:03:55 -05:00
user_settings_live.html.heex test: refactor LiveView tests to use HTML-aware element/form helpers 2026-04-29 11:14:20 -05:00
weathermap_live.ex dialyzer: fix all unmatched_return warnings (154 → 0) 2026-04-21 10:03:55 -05:00
weathermap_live.html.heex reliability-audit-fixes (#181) 2026-03-26 14:10:36 -05:00