diff --git a/htdocs/settings.html b/htdocs/settings.html index f06fce5..91eaa4b 100644 --- a/htdocs/settings.html +++ b/htdocs/settings.html @@ -21,6 +21,9 @@ ${header}
SDR device settings
+
+ Spotting and reporting +
Bookmark editor
diff --git a/owrx/controllers/settings/general.py b/owrx/controllers/settings/general.py index 2f1ff72..88db5e4 100644 --- a/owrx/controllers/settings/general.py +++ b/owrx/controllers/settings/general.py @@ -13,9 +13,7 @@ from owrx.form import ( Js8ProfileCheckboxInput, MultiCheckboxInput, ) -from owrx.form.converter import OptionalConverter from owrx.form.receiverid import ReceiverKeysConverter -from owrx.form.aprs import AprsBeaconSymbols, AprsAntennaDirections from owrx.form.wfm import WfmTauValues from owrx.form.wsjt import Q65ModeMatrix from owrx.form.gfx import AvatarInput, TopPhotoInput @@ -214,84 +212,6 @@ class GeneralSettingsController(SettingsFormController): ), ServicesCheckboxInput("services_decoders", "Enabled services"), ), - Section( - "APRS settings", - TextInput( - "aprs_callsign", - "APRS callsign", - infotext="This callsign will be used to send data to the APRS-IS network", - ), - CheckboxInput( - "aprs_igate_enabled", - "APRS I-Gate", - checkboxText="Send received APRS data to APRS-IS", - ), - TextInput("aprs_igate_server", "APRS-IS server"), - TextInput("aprs_igate_password", "APRS-IS network password"), - CheckboxInput( - "aprs_igate_beacon", - "APRS beacon", - checkboxText="Send the receiver position to the APRS-IS network", - infotext="Please check that your receiver location is setup correctly before enabling the beacon", - ), - DropdownInput( - "aprs_igate_symbol", - "APRS beacon symbol", - AprsBeaconSymbols, - ), - TextInput( - "aprs_igate_comment", - "APRS beacon text", - infotext="This text will be sent as APRS comment along with your beacon", - converter=OptionalConverter(), - ), - NumberInput( - "aprs_igate_height", - "Antenna height", - infotext="Antenna height above average terrain (HAAT)", - append="m", - converter=OptionalConverter(), - ), - NumberInput( - "aprs_igate_gain", - "Antenna gain", - append="dBi", - converter=OptionalConverter(), - ), - DropdownInput("aprs_igate_dir", "Antenna direction", AprsAntennaDirections), - ), - Section( - "pskreporter settings", - CheckboxInput( - "pskreporter_enabled", - "Reporting", - checkboxText="Enable sending spots to pskreporter.info", - ), - TextInput( - "pskreporter_callsign", - "pskreporter callsign", - infotext="This callsign will be used to send spots to pskreporter.info", - ), - TextInput( - "pskreporter_antenna_information", - "Antenna information", - infotext="Antenna description to be sent along with spots to pskreporter", - converter=OptionalConverter(), - ), - ), - Section( - "WSPRnet settings", - CheckboxInput( - "wsprnet_enabled", - "Reporting", - checkboxText="Enable sending spots to wsprnet.org", - ), - TextInput( - "wsprnet_callsign", - "wsprnet callsign", - infotext="This callsign will be used to send spots to wsprnet.org", - ), - ), ] def handle_image(self, data, image_id): diff --git a/owrx/controllers/settings/reporting.py b/owrx/controllers/settings/reporting.py new file mode 100644 index 0000000..dfd8c3c --- /dev/null +++ b/owrx/controllers/settings/reporting.py @@ -0,0 +1,91 @@ +from owrx.controllers.settings import SettingsFormController, Section +from owrx.form.converter import OptionalConverter +from owrx.form.aprs import AprsBeaconSymbols, AprsAntennaDirections +from owrx.form import TextInput, CheckboxInput, DropdownInput, NumberInput + + +class ReportingController(SettingsFormController): + def getTitle(self): + return "Spotting and Reporting" + + def getSections(self): + return [ + Section( + "APRS-IS reporting", + CheckboxInput( + "aprs_igate_enabled", + "APRS I-Gate", + checkboxText="Send received APRS data to APRS-IS", + ), + TextInput( + "aprs_callsign", + "APRS callsign", + infotext="This callsign will be used to send data to the APRS-IS network", + ), + TextInput("aprs_igate_server", "APRS-IS server"), + TextInput("aprs_igate_password", "APRS-IS network password"), + CheckboxInput( + "aprs_igate_beacon", + "APRS beacon", + checkboxText="Send the receiver position to the APRS-IS network", + infotext="Please check that your receiver location is setup correctly before enabling the beacon", + ), + DropdownInput( + "aprs_igate_symbol", + "APRS beacon symbol", + AprsBeaconSymbols, + ), + TextInput( + "aprs_igate_comment", + "APRS beacon text", + infotext="This text will be sent as APRS comment along with your beacon", + converter=OptionalConverter(), + ), + NumberInput( + "aprs_igate_height", + "Antenna height", + infotext="Antenna height above average terrain (HAAT)", + append="m", + converter=OptionalConverter(), + ), + NumberInput( + "aprs_igate_gain", + "Antenna gain", + append="dBi", + converter=OptionalConverter(), + ), + DropdownInput("aprs_igate_dir", "Antenna direction", AprsAntennaDirections), + ), + Section( + "pskreporter settings", + CheckboxInput( + "pskreporter_enabled", + "Reporting", + checkboxText="Enable sending spots to pskreporter.info", + ), + TextInput( + "pskreporter_callsign", + "pskreporter callsign", + infotext="This callsign will be used to send spots to pskreporter.info", + ), + TextInput( + "pskreporter_antenna_information", + "Antenna information", + infotext="Antenna description to be sent along with spots to pskreporter", + converter=OptionalConverter(), + ), + ), + Section( + "WSPRnet settings", + CheckboxInput( + "wsprnet_enabled", + "Reporting", + checkboxText="Enable sending spots to wsprnet.org", + ), + TextInput( + "wsprnet_callsign", + "wsprnet callsign", + infotext="This callsign will be used to send spots to wsprnet.org", + ), + ), + ] diff --git a/owrx/http.py b/owrx/http.py index 1ef8339..24af405 100644 --- a/owrx/http.py +++ b/owrx/http.py @@ -7,6 +7,7 @@ from owrx.controllers.metrics import MetricsController from owrx.controllers.settings import SettingsController from owrx.controllers.settings.general import GeneralSettingsController from owrx.controllers.settings.sdr import SdrSettingsController +from owrx.controllers.settings.reporting import ReportingController from owrx.controllers.bookmarks import BookmarksController from owrx.controllers.session import SessionController from owrx.controllers.profile import ProfileController @@ -118,6 +119,10 @@ class Router(object): StaticRoute("/settings/bookmarks", BookmarksController, method="POST", options={"action": "new"}), RegexRoute("/settings/bookmarks/(.+)", BookmarksController, method="POST", options={"action": "update"}), RegexRoute("/settings/bookmarks/(.+)", BookmarksController, method="DELETE", options={"action": "delete"}), + StaticRoute("/settings/reporting", ReportingController), + StaticRoute( + "/settings/reporting", ReportingController, method="POST", options={"action": "processFormData"} + ), StaticRoute("/login", SessionController, options={"action": "loginAction"}), StaticRoute("/login", SessionController, method="POST", options={"action": "processLoginAction"}), StaticRoute("/logout", SessionController, options={"action": "logoutAction"}),