Merge changes I242abbf2,Ib3e68103,I8c324c1d,Id8967468

* changes:
  scouting: Add explanations on the app for docked/engaged
  scouting: Convert actions to stats when submitted
  Make the scouting webserver accept prescouting data
  Add pre-scouting support in the scouting database
diff --git a/y2023/constants/971.json b/y2023/constants/971.json
index b9351fd..6e7bc4d 100644
--- a/y2023/constants/971.json
+++ b/y2023/constants/971.json
@@ -1,16 +1,16 @@
 {
   "cameras": [
     {
-      "calibration": {% include 'y2023/vision/calib_files/calibration_pi-971-1_cam-23-05_ext_2023-03-05.json' %}
+      "calibration": {% include 'y2023/vision/calib_files/calibration_pi-971-1_cam-23-05_ext_2023-04-12.json' %}
     },
     {
-      "calibration": {% include 'y2023/vision/calib_files/calibration_pi-971-2_cam-23-06_ext_2023-03-25.json' %}
+      "calibration": {% include 'y2023/vision/calib_files/calibration_pi-971-2_cam-23-06_ext_2023-04-12.json' %}
     },
     {
-      "calibration": {% include 'y2023/vision/calib_files/calibration_pi-971-3_cam-23-04_ext_2023-04-10.json' %}
+      "calibration": {% include 'y2023/vision/calib_files/calibration_pi-971-3_cam-23-04_ext_2023-04-12.json' %}
     },
     {
-      "calibration": {% include 'y2023/vision/calib_files/calibration_pi-971-4_cam-23-08_ext_2023-02-22.json' %}
+      "calibration": {% include 'y2023/vision/calib_files/calibration_pi-971-4_cam-23-08_ext_2023-04-14.json' %}
     }
   ],
   "robot": {
diff --git a/y2023/vision/calib_files/calibration_pi-971-1_cam-23-05_ext_2023-03-05.json b/y2023/vision/calib_files/calibration_pi-971-1_cam-23-05_ext_2023-03-05.json
deleted file mode 100644
index f585519..0000000
--- a/y2023/vision/calib_files/calibration_pi-971-1_cam-23-05_ext_2023-03-05.json
+++ /dev/null
@@ -1 +0,0 @@
-{ "node_name": "pi1", "team_number": 971, "intrinsics": [ 890.980713, 0.0, 619.298645, 0.0, 890.668762, 364.009766, 0.0, 0.0, 1.0 ], "fixed_extrinsics": { "data": [ -0.487918, 0.221538, 0.844309, 0.190808, 0.866039, 0.00192, 0.499972, -0.218036, 0.109142, 0.97515, -0.192797, 0.544037, 0.0, 0.0, 0.0, 1.0 ] }, "dist_coeffs": [ -0.449172, 0.252318, 0.000881, -0.000615, -0.082208 ], "calibration_timestamp": 1358501902915096335, "camera_id": "23-05" }
\ No newline at end of file
diff --git a/y2023/vision/calib_files/calibration_pi-971-1_cam-23-05_ext_2023-04-12.json b/y2023/vision/calib_files/calibration_pi-971-1_cam-23-05_ext_2023-04-12.json
new file mode 100644
index 0000000..55641ae
--- /dev/null
+++ b/y2023/vision/calib_files/calibration_pi-971-1_cam-23-05_ext_2023-04-12.json
@@ -0,0 +1 @@
+{ "node_name": "pi1", "team_number": 971, "intrinsics": [ 888.821655, 0.0, 616.580811, 0.0, 888.336731, 366.017395, 0.0, 0.0, 1.0 ], "fixed_extrinsics": { "data": [ -0.487918, 0.221538, 0.844309, 0.190808, 0.866039, 0.00192, 0.499972, -0.218036, 0.109142, 0.97515, -0.192797, 0.544037, 0.0, 0.0, 0.0, 1.0 ] }, "dist_coeffs": [ -0.4493, 0.25223, 0.000471, -0.00003, -0.079545 ], "calibration_timestamp": 1358501902915096335, "camera_id": "23-05" }
diff --git a/y2023/vision/calib_files/calibration_pi-971-2_cam-23-06_ext_2023-02-22.json b/y2023/vision/calib_files/calibration_pi-971-2_cam-23-06_ext_2023-02-22.json
deleted file mode 100644
index 4759fda..0000000
--- a/y2023/vision/calib_files/calibration_pi-971-2_cam-23-06_ext_2023-02-22.json
+++ /dev/null
@@ -1 +0,0 @@
-{ "node_name": "pi2", "team_number": 971, "intrinsics": [ 893.242981, 0.0, 639.796692, 0.0, 892.498718, 354.109344, 0.0, 0.0, 1.0 ], "fixed_extrinsics": { "data": [ 0.852213, 0.227336, 0.471224, 0.220072, 0.485092, -0.005909, -0.874443, -0.175232, -0.196008, 0.973799, -0.115315, 0.61409, 0.0, 0.0, 0.0, 1.0 ] }, "dist_coeffs": [ -0.451751, 0.252422, 0.000531, 0.000079, -0.079369 ], "calibration_timestamp": 1358501526409252911, "camera_id": "23-06" }
\ No newline at end of file
diff --git a/y2023/vision/calib_files/calibration_pi-971-2_cam-23-06_ext_2023-03-25.json b/y2023/vision/calib_files/calibration_pi-971-2_cam-23-06_ext_2023-03-25.json
deleted file mode 100644
index d8b5227..0000000
--- a/y2023/vision/calib_files/calibration_pi-971-2_cam-23-06_ext_2023-03-25.json
+++ /dev/null
@@ -1 +0,0 @@
-{ "node_name": "pi2", "team_number": 971, "intrinsics": [ 893.242981, 0.0, 639.796692, 0.0, 892.498718, 354.109344, 0.0, 0.0, 1.0 ], "fixed_extrinsics": { "data": [ 0.858536,    0.224804,    0.460847,    0.198133, 0.473832, -0.00434901,   -0.880604,   -0.221657, -0.195959,    0.974394,   -0.110253,    0.593406, 0.0, 0.0, 0.0, 1.0 ] }, "dist_coeffs": [ -0.451751, 0.252422, 0.000531, 0.000079, -0.079369 ], "calibration_timestamp": 1358501526409252911, "camera_id": "23-06" }
diff --git a/y2023/vision/calib_files/calibration_pi-971-2_cam-23-06_ext_2023-04-12.json b/y2023/vision/calib_files/calibration_pi-971-2_cam-23-06_ext_2023-04-12.json
new file mode 100644
index 0000000..e334884
--- /dev/null
+++ b/y2023/vision/calib_files/calibration_pi-971-2_cam-23-06_ext_2023-04-12.json
@@ -0,0 +1 @@
+{ "node_name": "pi2", "team_number": 971, "intrinsics": [ 891.706848, 0.0, 640.791931, 0.0, 890.630981, 358.582306, 0.0, 0.0, 1.0 ], "fixed_extrinsics": { "data": [ 0.858536,    0.224804,    0.460847,    0.198133, 0.473832, -0.00434901,   -0.880604,   -0.221657, -0.195959,    0.974394,   -0.110253,    0.593406, 0.0, 0.0, 0.0, 1.0 ] }, "dist_coeffs": [ -0.451473, 0.257519, 0.000337, -0.000298, -0.086102 ], "calibration_timestamp": 1358501526409252911, "camera_id": "23-06" }
diff --git a/y2023/vision/calib_files/calibration_pi-971-3_cam-23-04_ext_2023-04-10.json b/y2023/vision/calib_files/calibration_pi-971-3_cam-23-04_ext_2023-04-10.json
deleted file mode 100644
index f76623c..0000000
--- a/y2023/vision/calib_files/calibration_pi-971-3_cam-23-04_ext_2023-04-10.json
+++ /dev/null
@@ -1,2 +0,0 @@
-{ "node_name": "pi3", "team_number": 971, "intrinsics": [ 890.071899, 0.0, 620.69519, 0.0, 890.307434, 365.158844, 0.0, 0.0, 1.0 ], "fixed_extrinsics": { "data": [ 0.482409, -0.181339, -0.85697, -0.115455, -0.871457, -0.000440151, -0.490471, -0.175596, 0.0885639, 0.983421, -0.158241, 0.61873, 0.0, 0.0, 0.0, 1.0 ] }, "dist_coeffs": [ -0.449088, 0.25594, 0.000415, 0.000142, -0.084656 ], "calibration_timestamp": 1358501982039874176, "camera_id": "23-04" }
-
diff --git a/y2023/vision/calib_files/calibration_pi-971-3_cam-23-04_ext_2023-04-12.json b/y2023/vision/calib_files/calibration_pi-971-3_cam-23-04_ext_2023-04-12.json
new file mode 100644
index 0000000..b62d3f5
--- /dev/null
+++ b/y2023/vision/calib_files/calibration_pi-971-3_cam-23-04_ext_2023-04-12.json
@@ -0,0 +1 @@
+{ "node_name": "pi3", "team_number": 971, "intrinsics": [ 888.213257, 0.0, 622.755371, 0.0, 887.352905, 365.591736, 0.0, 0.0, 1.0 ], "fixed_extrinsics": { "data": [ 0.482409, -0.181339, -0.85697, -0.115455, -0.871457, -0.000440151, -0.490471, -0.175596, 0.0885639, 0.983421, -0.158241, 0.61873, 0.0, 0.0, 0.0, 1.0 ] }, "dist_coeffs": [ -0.447815, 0.251622, 0.001888, -0.000286, -0.081473 ], "calibration_timestamp": 1358501982039874176, "camera_id": "23-04" }
diff --git a/y2023/vision/calib_files/calibration_pi-971-4_cam-23-08_ext_2023-02-22.json b/y2023/vision/calib_files/calibration_pi-971-4_cam-23-08_ext_2023-02-22.json
deleted file mode 100644
index 92ab69c..0000000
--- a/y2023/vision/calib_files/calibration_pi-971-4_cam-23-08_ext_2023-02-22.json
+++ /dev/null
@@ -1 +0,0 @@
-{ "node_name": "pi4", "team_number": 971, "intrinsics": [ 891.88385, 0.0, 642.268616, 0.0, 890.626465, 353.272919, 0.0, 0.0, 1.0 ], "fixed_extrinsics": { "data": [ -0.865915, -0.186983, -0.463928, -0.014873, -0.473362, 0.006652, 0.880843, -0.215738, -0.161617, 0.982341, -0.094271, 0.676433, 0.0, 0.0, 0.0, 1.0 ] }, "dist_coeffs": [ -0.448426, 0.246817, 0.000002, 0.000948, -0.076717 ], "calibration_timestamp": 1358501265150551614, "camera_id": "23-08" }
\ No newline at end of file
diff --git a/y2023/vision/calib_files/calibration_pi-971-4_cam-23-08_ext_2023-04-14.json b/y2023/vision/calib_files/calibration_pi-971-4_cam-23-08_ext_2023-04-14.json
new file mode 100644
index 0000000..bc5f065
--- /dev/null
+++ b/y2023/vision/calib_files/calibration_pi-971-4_cam-23-08_ext_2023-04-14.json
@@ -0,0 +1 @@
+{ "node_name": "pi4", "team_number": 971, "intrinsics": [ 890.962952, 0.0, 656.281555, 0.0, 890.707336, 353.938538, 0.0, 0.0, 1.0 ], "fixed_extrinsics": { "data": [ -0.865915, -0.186983, -0.463928, -0.014873, -0.473362, 0.006652, 0.880843, -0.215738, -0.161617, 0.982341, -0.094271, 0.676433, 0.0, 0.0, 0.0, 1.0 ] }, "dist_coeffs": [ -0.450961, 0.256988, -0.000348, -0.00042, -0.083559 ], "calibration_timestamp": 1358501265150551614, "camera_id": "23-08" }