From 7532fc39edb4a8714864b7360583f72f81ccf0cb Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Laura=20Kl=C3=BCnder?=
Date: Sun, 31 Mar 2024 17:28:35 +0200
Subject: [PATCH] fix scancollector with wifi and ibeacon
---
src/c3nav/editor/static/editor/css/editor.scss | 18 +++++++++++++-----
src/c3nav/editor/static/editor/js/editor.js | 11 +++++------
src/c3nav/editor/templates/editor/base.html | 10 ++++++++--
src/c3nav/mapdata/models/geometry/space.py | 2 +-
4 files changed, 27 insertions(+), 14 deletions(-)
diff --git a/src/c3nav/editor/static/editor/css/editor.scss b/src/c3nav/editor/static/editor/css/editor.scss
index c90400ca..bf3702e0 100644
--- a/src/c3nav/editor/static/editor/css/editor.scss
+++ b/src/c3nav/editor/static/editor/css/editor.scss
@@ -407,24 +407,32 @@ body > .scancollector {
.scancollector:not(.running) .btn.stop,
.scancollector:not(.done) .btn.reset,
.scancollector.empty .count-line,
+.scancollector.empty table,
+.abcdefg,
body:not(.mobileclient) .scancollector .btn {
display: none;
}
+.scancollector .count-line {
+ font-style: italic;
+}
.scancollector .btn {
margin: 0 5px 0 0;
}
.scancollector p:first-child {
height: 26px;
- margin: 0;
}
.scancollector table {
width: 100%;
- border-style: solid;
- border-width: 0 0 1px;
- border-color: #666666;
+ margin-top: -8px;
+ &:not(:last-child) {
+ margin-bottom: 15px;
+ }
+}
+.scancollector table {
+
}
.scancollector table td {
- padding: 5px 5px 0 0;
+ padding: 2px 2px 0 0;
}
.scancollector table td:last-child {
padding-right: 0;
diff --git a/src/c3nav/editor/static/editor/js/editor.js b/src/c3nav/editor/static/editor/js/editor.js
index 3b2b0386..23a4c68e 100644
--- a/src/c3nav/editor/static/editor/js/editor.js
+++ b/src/c3nav/editor/static/editor/js/editor.js
@@ -1341,7 +1341,7 @@ editor = {
},
_scancollector_reset: function () {
var $collector = $('#sidebar').find('.scancollector');
- $collector.removeClass('done').removeClass('running').addClass('empty').find('table').forEach(function(elem) {elem.html('');});
+ $collector.removeClass('done').removeClass('running').addClass('empty').find('table tbody').each(function(elem) {elem.html('');});
$collector.siblings('[name=data]').val('');
$collector.closest('form').addClass('scan-lock');
},
@@ -1349,7 +1349,7 @@ editor = {
_scancollector_wifi_last_result: 0,
_scancollector_wifi_result: function(data) {
var $collector = $('#sidebar').find('.scancollector.running'),
- $table = $collector.find('.wifi-table'),
+ $table = $collector.find('.wifi-table tbody'),
item, i, line, apid, color, max_last = 0, now = Date.now();
editor._wifi_scan_waits = false;
@@ -1402,7 +1402,7 @@ editor = {
},
_scancollector_ibeacon_result: function(data) {
var $collector = $('#sidebar').find('.scancollector.running'),
- $table = $collector.find('.ibeacon-table'),
+ $table = $collector.find('.ibeacon-table tbody'),
item, i, line, beaconid, color = Date.now();
if (!data.length) return;
@@ -1410,8 +1410,7 @@ editor = {
$table.find('tr').addClass('old');
for (i=0; i < data.length; i++) {
item = data[i];
-
- beaconid = 'beacon-'+item.uuid+'-'+item.major+'-'+item-minor;
+ beaconid = 'beacon-'+item.uuid+'-'+item.major+'-'+item.minor;
line = $table.find('tr.'+beaconid);
color = Math.max(0, Math.min(50, item.distance));
color = 'rgb('+String(color*5)+', '+String(200-color*4)+', 0)';
@@ -1443,7 +1442,7 @@ function nearby_stations_available() {
}
function ibeacon_results_available() {
- c3nav._scancollector_ibeacon_result(mobileclient.getNearbyBeacons());
+ editor._scancollector_ibeacon_result(JSON.parse(mobileclient.getNearbyBeacons()));
}
LevelControl = L.Control.extend({
diff --git a/src/c3nav/editor/templates/editor/base.html b/src/c3nav/editor/templates/editor/base.html
index 9c3754a9..f83ad458 100644
--- a/src/c3nav/editor/templates/editor/base.html
+++ b/src/c3nav/editor/templates/editor/base.html
@@ -79,9 +79,15 @@
{% trans 'mobileclient not found. Please install the c3nav app for wifi scanning support.' %}
0 WiFi scans
-
+
0 iBeacon scans
-
+
diff --git a/src/c3nav/mapdata/models/geometry/space.py b/src/c3nav/mapdata/models/geometry/space.py
index 8ebd538a..80b6cdee 100644
--- a/src/c3nav/mapdata/models/geometry/space.py
+++ b/src/c3nav/mapdata/models/geometry/space.py
@@ -461,7 +461,7 @@ class BeaconMeasurement(SpaceGeometryMixin, models.Model):
author = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.SET_NULL, null=True, blank=True,
verbose_name=_('author'))
comment = models.TextField(null=True, blank=True, verbose_name=_('comment'))
- data = models.JSONField(_('Measurement list'), default=list) # would be nice if this used pydantic
+ data = models.JSONField(_('Measurement list'), default=dict) # would be nice if this used pydantic
class Meta:
verbose_name = _('Beacon Measurement')