Bug fixes and map page banner

This commit is contained in:
Ian Renton
2026-07-25 15:06:19 +01:00
parent 4353c9ebf9
commit 7ee08e2fcd
11 changed files with 62 additions and 24 deletions
+12 -6
View File
@@ -502,9 +502,12 @@ class LookupHelper:
# Try the call as given, then fall back to the base call (strips /P, /M etc.)
calls_to_try = [call]
home_call = callinfo.Callinfo.get_homecall(call)
if home_call != call:
calls_to_try.append(home_call)
try:
home_call = callinfo.Callinfo.get_homecall(call)
if home_call != call:
calls_to_try.append(home_call)
except ValueError:
logging.debug("Could not look up home call for callsign %s", call)
for lookup_call in calls_to_try:
try:
@@ -574,9 +577,12 @@ class LookupHelper:
# Try the call as given, then fall back to the base call (strips /P, /M etc.)
calls_to_try = [call]
home_call = callinfo.Callinfo.get_homecall(call)
if home_call != call:
calls_to_try.append(home_call)
try:
home_call = callinfo.Callinfo.get_homecall(call)
if home_call != call:
calls_to_try.append(home_call)
except ValueError:
logging.debug("Could not look up home call for callsign %s", call)
for lookup_call in calls_to_try:
try:
+10 -1
View File
@@ -159,13 +159,22 @@
modify it however you like, you can claim you wrote it and charge people £1000 for a copy, I don't really mind.
(Please don't do the last one. But if you're using my code for something cool, it would be nice to hear from
you!)</p>
<h2 class="mt-4">Data Accuracy</h2>
<h2 id="accuracy" class="mt-4">Data Accuracy</h2>
<p>Please note that the data coming out of Spothole is only as good as the data going in. People mis-hear and make
typos when spotting callsigns all the time. There are also plenty of cases where Spothole's data, particularly
location data, may be inaccurate. For example, there are POTA parks that span multiple US states, countries that
span multiple CQ zones, portable operators with no requirement to sign /P, etc. If you are doing something where
accuracy is important, such as contesting, you should not rely on Spothole's data to fill in any gaps in your
log.</p>
<p>In the Spothole user interface, under "Your Data", you can enter your credentials for QRZ.com and/or HamQTH if
you have them. This allows Spothole to augment its data with lookups from these services. See the following
section, Privacy, for details of how these are handled. If you are looking at the map and see lots of spots in
the geographic centre of countries, allowing these lookups will help. For QRZ.com a paid account is required to
look up operator locations.</p>
<p>IOTA in particular causes a mapping problem, firstly that there is no official set of geodata beyond the names of
islands. We also have no way of telling whether priority should be given to IOTA reference or e.g. QRZ lookup,
for example for a G callsign in EU-005 Great Britain the QRZ home address is probably more accurate, but in
EU-002 Aaland islands, it's more likely a DXpedition and the IOTA would be more accurate.</p>
<h2 id="privacy" class="mt-4">Privacy</h2>
<p>Spothole collects no data about you on a permanent basis. All spots and alerts are "timed out" and deleted from
the system after a set interval, which by default is one hour for spots and one week for alerts.</p>
+1 -1
View File
@@ -76,7 +76,7 @@
</div>
<script src="/js/add-spot.js?v=1784986996"></script>
<script src="/js/add-spot.js?v=1784988379"></script>
<script>$(document).ready(function () {
$("#nav-link-add-spot").addClass("active");
}); <!-- highlight active page in nav --></script>
+1 -1
View File
@@ -75,7 +75,7 @@
</div>
<script src="/js/alerts.js?v=1784986996"></script>
<script src="/js/alerts.js?v=1784988379"></script>
<script>$(document).ready(function () {
$("#nav-link-alerts").addClass("active");
}); <!-- highlight active page in nav --></script>
+2 -2
View File
@@ -75,8 +75,8 @@
<script>
let spotProvidersEnabledByDefault = {% raw json_encode(web_ui_options["spot-providers-enabled-by-default"]) %};
</script>
<script src="/js/spotsbandsandmap.js?v=1784986996"></script>
<script src="/js/bands.js?v=1784986996"></script>
<script src="/js/spotsbandsandmap.js?v=1784988379"></script>
<script src="/js/bands.js?v=1784988379"></script>
<script>$(document).ready(function () {
$("#nav-link-bands").addClass("active");
}); <!-- highlight active page in nav --></script>
+5 -5
View File
@@ -1,6 +1,6 @@
{% extends "skeleton.html" %}
{% block head_extra %}
<link rel="stylesheet" href="/css/style.css?v=1784986996" type="text/css">
<link rel="stylesheet" href="/css/style.css?v=1784988379" type="text/css">
<link href="/vendor/css/bootstrap-5.3.8.min.css" rel="stylesheet">
<link href="/vendor/css/fontawesome-6.7.2.min.css" rel="stylesheet">
<link href="/vendor/css/solid-6.7.2.min.css" rel="stylesheet">
@@ -10,10 +10,10 @@
<script src="/vendor/js/bootstrap-5.3.8.bundle.min.js"></script>
<script src="/vendor/js/tinycolor2-1.6.0.min.js"></script>
<script src="/js/utils.js?v=1784986996"></script>
<script src="/js/ui-ham.js?v=1784986996"></script>
<script src="/js/geo.js?v=1784986996"></script>
<script src="/js/common.js?v=1784986996"></script>
<script src="/js/utils.js?v=1784988379"></script>
<script src="/js/ui-ham.js?v=1784988379"></script>
<script src="/js/geo.js?v=1784988379"></script>
<script src="/js/common.js?v=1784988379"></script>
{% end %}
{% block body %}
<div class="container">
+1 -1
View File
@@ -284,7 +284,7 @@
</div>
<script src="/vendor/js/chart-4.4.9.umd.min.js"></script>
<script src="/js/conditions.js?v=1784986996"></script>
<script src="/js/conditions.js?v=1784988379"></script>
<script>$(document).ready(function () {
$("#nav-link-conditions").addClass("active");
}); <!-- highlight active page in nav --></script>
+15 -2
View File
@@ -1,6 +1,19 @@
{% extends "base.html" %}
{% block content %}
<div id="map-intro-box" class="permanently-dismissible-box mt-3">
<div class="alert alert-primary alert-dismissible fade show" role="alert">
<i class="fa-solid fa-circle-info"></i> <strong>Spothole's map</strong><br/>Spothole pulls in location data from
a number of sources to try and provide the best map possible. However, please don't trust them to be anything
other than a rough guide. In particular, if you are seeing lots of spots in the centre of a country, please
consider opening the "Your Data" menu and providing QRZ.com and/or HamQTH credentials so that Spothole can find
more accurate locations for these spots. More information can be found in the
<a href="/about#accuracy" class="alert-link">Data Accuracy section of the About page</a>.
<button type="button" id="map-intro-box-dismiss" class="btn-close" data-bs-dismiss="alert"
aria-label="Close"></button>
</div>
</div>
<div id="map">
<div id="settingsButtonRowMap" class="mt-3 px-3">
<div class="row mb-3">
@@ -95,8 +108,8 @@
<script>
let spotProvidersEnabledByDefault = {% raw json_encode(web_ui_options["spot-providers-enabled-by-default"]) %};
</script>
<script src="/js/spotsbandsandmap.js?v=1784986996"></script>
<script src="/js/map.js?v=1784986996"></script>
<script src="/js/spotsbandsandmap.js?v=1784988379"></script>
<script src="/js/map.js?v=1784988379"></script>
<script>$(document).ready(function () {
$("#nav-link-map").addClass("active");
}); <!-- highlight active page in nav --></script>
+2 -2
View File
@@ -116,8 +116,8 @@
<script>
let spotProvidersEnabledByDefault = {% raw json_encode(web_ui_options["spot-providers-enabled-by-default"]) %};
</script>
<script src="/js/spotsbandsandmap.js?v=1784986996"></script>
<script src="/js/spots.js?v=1784986996"></script>
<script src="/js/spotsbandsandmap.js?v=1784988379"></script>
<script src="/js/spots.js?v=1784988379"></script>
<script>$(document).ready(function () {
$("#nav-link-spots").addClass("active");
}); <!-- highlight active page in nav --></script>
+1 -1
View File
@@ -59,7 +59,7 @@
</div>
</div>
<script src="/js/status.js?v=1784986996"></script>
<script src="/js/status.js?v=1784988379"></script>
<script>
$(document).ready(function () {
$("#nav-link-status").addClass("active");
+12 -2
View File
@@ -68,8 +68,6 @@ function loadSpots() {
// now
startSSEConnection();
}
// Start the ongoing SSE connection
startSSEConnection();
});
}
@@ -594,6 +592,16 @@ function setUpMap() {
map.setView([30, 0], 3);
}
// Display the intro box, unless the user has already dismissed it once.
function displayIntroBox() {
if (localStorage.getItem("map-intro-box-dismissed") == null) {
$("#map-intro-box").show();
}
$("#map-intro-box-dismiss").click(function () {
localStorage.setItem("map-intro-box-dismissed", true);
});
}
// Startup
$(document).ready(function () {
// Close SSE connection cleanly when navigating away
@@ -609,6 +617,8 @@ $(document).ready(function () {
setUpMap();
// Call loadOptions(), this will then trigger loading spots and setting up timers.
loadOptions();
// Display intro box
displayIntroBox();
// Prevent mouse scroll and touch actions in the popup menus being passed through to the map
L.DomEvent.disableScrollPropagation(document.getElementById('settingsButtonRowMap'));
L.DomEvent.disableClickPropagation(document.getElementById('settingsButtonRowMap'));