diff --git a/core/constants.py b/core/constants.py index 7c38d93..640ed8d 100644 --- a/core/constants.py +++ b/core/constants.py @@ -16,139 +16,166 @@ SIGS = [ comment_names=["POTA"], description="Parks on the Air", ref_regex=r"[A-Z]{2}\-\d{4,5}|K\-TEST", + icon="fa-tree" ), SIG( name="SOTA", comment_names=["SOTA"], description="Summits on the Air", ref_regex=r"[A-Z0-9]{1,3}\/[A-Z]{2}\-\d{3}", + icon="fa-mountain-sun" ), SIG( name="WWFF", comment_names=["WWFF"], description="World Wide Flora & Fauna", ref_regex=r"[A-Z0-9]{1,3}FF\-\d{4}", + icon="fa-seedling" ), SIG( name="GMA", comment_names=["GMA"], description="Global Mountain Activity", ref_regex=r"[A-Z0-9]{1,3}\/[A-Z]{2}\-\d{3}", + icon="fa-person-hiking" ), SIG( name="WWBOTA", comment_names=["WWBOTA", "BOTA"], description="Worldwide Bunkers on the Air", ref_regex=r"B\/[A-Z0-9]{1,3}\-\d{3,4}", + icon="fa-radiation" ), SIG( name="HEMA", comment_names=["HEMA"], description="HuMPs Excluding Marilyns Award", ref_regex=r"[A-Z0-9]{1,3}\/[A-Z]{3}\-\d{3}", + icon="fa-mound" ), SIG( name="IOTA", comment_names=["IOTA"], description="Islands on the Air", ref_regex=r"[A-Z]{2}\-\d{3}", + icon="fa-book-atlas" ), SIG( name="GMA Islands", comment_names=[], description="Global Mountain Activity - Islands", ref_regex=r"(([A-Z]{2}\-\d{3})|([A-Z0-9]{1,3}\/[A-Z]{2}\-\d{3}))", + icon="fa-person-hiking" ), SIG( name="MOTA", comment_names=["MOTA"], description="Mills on the Air", ref_regex=r"X\d{4,6}", + icon="fa-fan" ), SIG( name="ARLHS", comment_names=["ARLHS"], description="Amateur Radio Lighthouse Society", ref_regex=r"[A-Z]{3}[\- ]\d{3,4}", + icon="fa-house-flood-water" ), SIG( name="ILLW", comment_names=["ILLW"], description="International Lighthouse & Lightship Weekend", ref_regex=r"[A-Z]{2}\d{4}", + icon="fa-house-flood-water" ), SIG( name="SIOTA", comment_names=["SIOTA"], description="Silos on the Air", ref_regex=r"[A-Z]{2}\-[A-Z]{3}\d", + icon="fa-wheat-awn" ), SIG( name="WCA", comment_names=["WCA"], description="World Castles Award", ref_regex=r"[A-Z0-9]{1,3}\-\d{5}", + icon="fa-chess-rook" ), SIG( name="ZLOTA", comment_names=["ZLOTA"], description="New Zealand on the Air", ref_regex=r"ZL[A-Z]/[A-Z]{2}\-\d{3,4}", + icon="fa-kiwi-bird" ), SIG( name="WOTA", comment_names=["WOTA"], description="Wainwrights on the Air", ref_regex=r"[A-Z]{3}-[0-9]{2}", + icon="fa-w" + ), + SIG(name="BOTA", + comment_names=[], + description="Beaches on the Air", + icon="fa-umbrella-beach" ), - SIG(name="BOTA", comment_names=[], description="Beaches on the Air"), SIG( name="KRMNPA", comment_names=["KRMNPA"], description="Keith Roget Memorial National Parks Award", ref_regex=r"VKFF\-\d{4}", + icon="fa-earth-oceania" ), SIG( name="SANPCPA", comment_names=["SANPCPA"], description="South Australian National Parks and Conservation Parks Award", ref_regex=r"VKFF\-\d{4}", + icon="fa-earth-oceania" ), SIG( name="LLOTA", comment_names=["LLOTA"], description="Lagos y Lagunas on the Air", ref_regex=r"LL[A-Z]{2}\-\d{4}", + icon="fa-water" ), SIG( name="Towers", comment_names=["TOTA"], description="Towers on the Air", ref_regex=r"[A-Z]{2,3}R\-\d{4}", + icon="fa-tower-observation" ), SIG( name="Tiles", comment_names=[], description="Tiles on the Air", ref_regex=r"[A-Za-z]{2}[0-9]{2}[A-Za-z]{2}", + icon="fa-square" ), SIG( name="WAB", comment_names=["WAB"], description="Worked All Britain", ref_regex=r"[A-Z]{1,2}[0-9]{2}", + icon="fa-table-cells-large" ), SIG( name="WAI", comment_names=["WAI"], description="Worked All Ireland", ref_regex=r"[A-Z][0-9]{2}", + icon="fa-table-cells-large" ), SIG( name="DME", comment_names=["DME"], description="Diploma Municipios de EspaƱa", ref_regex=r"\d{4,5}", + icon="fa-building" ), SIG( name="FEA", @@ -157,23 +184,27 @@ SIGS = [ # FEA references are technically [DE]\-\d{4}(\.\d)? but spotters always seem to miss out the D- or E- # prefix and just use FEA 1234, so we treat FEA reference IDs as if they were just the number. ref_regex=r"\d{4}(\.\d)?", + icon="fa-house-flood-water" ), SIG( name="DTMBA", comment_names=["DTMBA"], description="Diploma Teatri Musei e Belle Arti", ref_regex=r"I-?[0-9]{3,4}\s?[A-Z]{2}", + icon="fa-masks-theater" ), SIG( - name="BIOWTA", + name="BIWOTA", comment_names=["BIWOTA"], - description="British Inland Waterways on the Air" + description="British Inland Waterways on the Air", + icon="fa-ship" ), SIG( name="Toilets", comment_names=[], description="Toilets on the Air", ref_regex=r"T\-[0-9]{2}", + icon="fa-toilet" ), ] diff --git a/core/sig_lookup_helper.py b/core/sig_lookup_helper.py index 032ce5c..25e08be 100644 --- a/core/sig_lookup_helper.py +++ b/core/sig_lookup_helper.py @@ -78,6 +78,10 @@ def get_sig_ref_info(sig, ref_id): sig_ref.url = f"https://www.beachesontheair.com/beaches/{sig_ref.name.lower().replace(' ', '-')}" return sig_ref + elif sig.upper() == "BIWOTA": + # For BIWOTA there are no references, all we can set is a type + sig_ref.ref_type = "Waterway" + elif sig.upper() == "GMA Islands": # GMA Islands is a bit of a mess of GMA and IOTA references. Try looking them both up and see what returns # the best result. diff --git a/data/sig.py b/data/sig.py index 3a4b336..aa27b3b 100644 --- a/data/sig.py +++ b/data/sig.py @@ -19,3 +19,5 @@ class SIG: comment_names: list[str] = field(default_factory=list) # Regex matcher for references, e.g. for POTA r"[A-Z]{2}\-\d+". ref_regex: str | None = None + # Icon to use in the UI when referencing this SIG. Chosen from the Font Awesome set. + icon: str | None = None diff --git a/static/apidocs/openapi.yml b/static/apidocs/openapi.yml index 856d0a5..f4902da 100644 --- a/static/apidocs/openapi.yml +++ b/static/apidocs/openapi.yml @@ -19,6 +19,7 @@ info: * Added DTMBA, FEA and BIWOTA SIGs * Removed the distinction between LSB & USB (both will now show as SSB) and between the various digital voice modes, which will now show as DV. + * Added `icon` to SIG information ### 2.0 diff --git a/static/js/alerts.js b/static/js/alerts.js index fc4e37e..9c4461d 100644 --- a/static/js/alerts.js +++ b/static/js/alerts.js @@ -264,7 +264,7 @@ function addAlertRowsToTable(tbody, alerts) { $tr.append(`