diff --git a/static/css/attendance.css b/static/css/attendance.css
index eba85ac..d2f7c55 100644
--- a/static/css/attendance.css
+++ b/static/css/attendance.css
@@ -993,40 +993,16 @@
opacity: 0.8;
}
-/* Location accuracy level colors - based on distance */
-.location-accuracy-badge.accuracy-excellent {
- background: var(--success-light);
- color: var(--success-color);
- border: 1px solid rgba(5, 150, 105, 0.3);
-}
-
+/* Location accuracy level colors - 2-level system based on 0.5 mile threshold */
.location-accuracy-badge.accuracy-accurate {
- background: var(--success-light);
- color: var(--success-color);
- border: 1px solid rgba(5, 150, 105, 0.3);
-}
-
-.location-accuracy-badge.accuracy-good {
- background: #ecfdf5;
+ background: #dcfce7;
color: #059669;
- border: 1px solid rgba(5, 150, 105, 0.2);
-}
-
-.location-accuracy-badge.accuracy-fair {
- background: var(--warning-light);
- color: var(--warning-color);
- border: 1px solid rgba(245, 158, 11, 0.3);
-}
-
-.location-accuracy-badge.accuracy-poor {
- background: var(--danger-light);
- color: var(--danger-color);
- border: 1px solid rgba(220, 38, 38, 0.3);
+ border: 1px solid rgba(5, 150, 105, 0.3);
}
.location-accuracy-badge.accuracy-inaccurate {
- background: var(--danger-light);
- color: var(--danger-color);
+ background: #fee2e2;
+ color: #dc2626;
border: 1px solid rgba(220, 38, 38, 0.3);
}
diff --git a/static/js/attendance_report.js b/static/js/attendance_report.js
index cb7df51..2c93ba7 100644
--- a/static/js/attendance_report.js
+++ b/static/js/attendance_report.js
@@ -657,16 +657,14 @@ function extractLocationAccuracy(cell) {
}
function extractLocationAccuracyLevel(cell) {
- const text = cell.textContent.toLowerCase();
- if (
- text.includes("high") ||
- text.includes("excellent") ||
- text.includes("good")
- )
- return "High";
- if (text.includes("medium") || text.includes("fair")) return "Medium";
- if (text.includes("low") || text.includes("poor")) return "Low";
- return "Unknown";
+ // Get the numerical accuracy value from the cell
+ const accuracy = extractLocationAccuracy(cell);
+
+ // Return 2-level accuracy based on 0.5-mile threshold
+ if (accuracy !== null && accuracy !== undefined) {
+ return accuracy <= 0.5 ? "accurate" : "inaccurate";
+ }
+ return "unknown";
}
function createTableRow(record, displayIndex) {
@@ -690,17 +688,17 @@ function createTableRow(record, displayIndex) {
}"
title="Distance between QR location and check-in location: ${
record.location_accuracy
- } miles">
+ } miles - ${record.accuracy_level}">
${record.location_accuracy.toFixed(3)} mi
(${record.accuracy_level})
- `
+ `
: `
Unknown
- `;
+ `;
- // FIXED: Address display logic based on location accuracy
+ // Address display logic based on location accuracy
let addressDisplayHTML = "";
let addressToShow = record.checked_in_address;
let addressIcon = "fas fa-location-arrow";