diff --git a/app.py b/app.py index 1f48110..d4a6595 100644 --- a/app.py +++ b/app.py @@ -90,7 +90,7 @@ class QRCode(db.Model): def coordinates_display(self): """Get formatted coordinates for display""" if self.has_coordinates: - return f"{self.address_latitude:.6f}, {self.address_longitude:.6f}" + return f"{self.address_latitude:.8f}, {self.address_longitude:.8f}" return "Coordinates not available" def update_coordinates(self, latitude, longitude, accuracy='geocoded'): @@ -155,7 +155,7 @@ class AttendanceData(db.Model): def coordinates_display(self): """Get formatted coordinates for display""" if self.has_location_data: - return f"{self.latitude:.6f}, {self.longitude:.6f}" + return f"{self.latitude:.8f}, {self.longitude:.8f}" return "No GPS data" def to_dict(self): @@ -268,7 +268,7 @@ def get_coordinates_from_address_enhanced(address): accuracy = 'poor' print(f"✅ Enhanced geocoding successful:") - print(f" Coordinates: {lat:.6f}, {lng:.6f}") + print(f" Coordinates: {lat:.8f}, {lng:.8f}") print(f" Accuracy: {accuracy}") return lat, lng, accuracy @@ -324,7 +324,7 @@ def geocode_address_enhanced(address): accuracy = 'low' print(f"✅ Geocoded address: {address}") - print(f" Coordinates: {lat:.6f}, {lng:.6f}") + print(f" Coordinates: {lat:.8f}, {lng:.8f}") print(f" Accuracy: {accuracy} ({place_type})") return lat, lng, accuracy @@ -376,8 +376,8 @@ def calculate_distance_miles(lat1, lng1, lat2, lng2): distance = round(distance, 4) print(f"📏 Enhanced distance calculation:") - print(f" Point 1: {lat1*180/3.14159:.6f}, {lng1*180/3.14159:.6f}") - print(f" Point 2: {lat2*180/3.14159:.6f}, {lng2*180/3.14159:.6f}") + print(f" Point 1: {lat1*180/3.14159:.8f}, {lng1*180/3.14159:.8f}") + print(f" Point 2: {lat2*180/3.14159:.8f}, {lng2*180/3.14159:.8f}") print(f" Distance: {distance:.4f} miles") return distance @@ -455,7 +455,7 @@ def calculate_location_accuracy_enhanced(qr_address, checkin_address, checkin_la print(f"❌ Could not geocode QR address: {qr_address}") return None - print(f"✅ QR location coordinates: {qr_lat:.6f}, {qr_lng:.6f} (accuracy: {qr_accuracy})") + print(f"✅ QR location coordinates: {qr_lat:.8f}, {qr_lng:.8f} (accuracy: {qr_accuracy})") # Step 2: Determine check-in coordinates print(f"\n📱 Step 2: Determining check-in coordinates...") @@ -475,7 +475,7 @@ def calculate_location_accuracy_enhanced(qr_address, checkin_address, checkin_la checkin_coords_lat = lat_val checkin_coords_lng = lng_val checkin_source = "gps" - print(f"✅ Using GPS coordinates: {lat_val:.6f}, {lng_val:.6f}") + print(f"✅ Using GPS coordinates: {lat_val:.8f}, {lng_val:.8f}") else: print(f"⚠️ Invalid GPS coordinates: {lat_val}, {lng_val}") except (ValueError, TypeError): @@ -487,7 +487,7 @@ def calculate_location_accuracy_enhanced(qr_address, checkin_address, checkin_la checkin_coords_lat, checkin_coords_lng, checkin_accuracy = get_coordinates_from_address_enhanced(checkin_address) if checkin_coords_lat is not None: checkin_source = "address" - print(f"✅ Using geocoded coordinates: {checkin_coords_lat:.6f}, {checkin_coords_lng:.6f} (accuracy: {checkin_accuracy})") + print(f"✅ Using geocoded coordinates: {checkin_coords_lat:.8f}, {checkin_coords_lng:.8f} (accuracy: {checkin_accuracy})") # Check if we have valid coordinates for both locations if checkin_coords_lat is None or checkin_coords_lng is None: @@ -502,8 +502,8 @@ def calculate_location_accuracy_enhanced(qr_address, checkin_address, checkin_la if distance is not None: print(f"✅ Enhanced location accuracy calculated successfully!") - print(f" QR Location: {qr_lat:.6f}, {qr_lng:.6f}") - print(f" Check-in Location: {checkin_coords_lat:.6f}, {checkin_coords_lng:.6f}") + print(f" QR Location: {qr_lat:.8f}, {qr_lng:.8f}") + print(f" Check-in Location: {checkin_coords_lat:.8f}, {checkin_coords_lng:.8f}") print(f" Source: {checkin_source}") print(f" Distance: {distance:.4f} miles") print(f" Accuracy Level: {get_location_accuracy_level_enhanced(distance)}") @@ -1322,7 +1322,7 @@ def geocode_address(): 'latitude': lat, 'longitude': lng, 'accuracy': accuracy, - 'coordinates_display': f"{lat:.6f}, {lng:.6f}" + 'coordinates_display': f"{lat:.8f}, {lng:.8f}" }, 'message': f'Address geocoded successfully with {accuracy} accuracy' }) @@ -1680,7 +1680,7 @@ def create_qr_code(): new_qr_code.address_longitude = lng new_qr_code.coordinate_accuracy = coordinate_accuracy new_qr_code.coordinates_updated_date = datetime.utcnow() - print(f"✅ Added coordinates to QR code: {lat:.6f}, {lng:.6f}") + print(f"✅ Added coordinates to QR code: {lat:.8f}, {lng:.8f}") except (ValueError, TypeError) as e: print(f"⚠️ Invalid coordinates provided: {e}") @@ -1745,7 +1745,7 @@ def edit_qr_code(qr_id): qr_code.address_longitude = lng qr_code.coordinate_accuracy = coordinate_accuracy qr_code.coordinates_updated_date = datetime.utcnow() - print(f"✅ Updated coordinates for QR code: {lat:.6f}, {lng:.6f}") + print(f"✅ Updated coordinates for QR code: {lat:.8f}, {lng:.8f}") except (ValueError, TypeError) as e: print(f"⚠️ Invalid coordinates provided during edit: {e}") @@ -2242,7 +2242,7 @@ def attendance_report(): 'gps_accuracy': gps_accuracy, 'accuracy_level': get_location_accuracy_level(location_accuracy) if location_accuracy else 'unknown', 'has_location_data': record.latitude is not None and record.longitude is not None, - 'coordinates': f"{record.latitude:.6f}, {record.longitude:.6f}" if record.latitude and record.longitude else "No GPS data", + 'coordinates': f"{record.latitude:.8f}, {record.longitude:.8f}" if record.latitude and record.longitude else "No GPS data", 'has_location_accuracy_feature': has_location_accuracy } processed_records.append(record_dict) diff --git a/static/css/qr_destination.css b/static/css/qr_destination.css index 175bf2e..90d6d68 100644 --- a/static/css/qr_destination.css +++ b/static/css/qr_destination.css @@ -268,6 +268,13 @@ body { margin-top: 0.25rem; } +.form-actions { + display: flex; + justify-content: center; + align-items: center; + margin-top: 1rem; +} + /* Button Styles - Light Theme */ .btn { display: inline-flex; diff --git a/static/js/qr_destination.js b/static/js/qr_destination.js index 62537f4..cd9e9e8 100644 --- a/static/js/qr_destination.js +++ b/static/js/qr_destination.js @@ -459,8 +459,8 @@ function ensureLocationFormFields() { function updateLocationFormFields() { const fields = { - latitude: userLocation.latitude ? userLocation.latitude.toFixed(6) : "", - longitude: userLocation.longitude ? userLocation.longitude.toFixed(6) : "", + latitude: userLocation.latitude ? userLocation.latitude.toFixed(8) : "", + longitude: userLocation.longitude ? userLocation.longitude.toFixed(8) : "", accuracy: userLocation.accuracy || "", altitude: userLocation.altitude || "", locationSource: userLocation.source || "manual", @@ -493,8 +493,8 @@ function submitCheckin(employeeId) { const formData = new FormData(); formData.append("employee_id", employeeId); - formData.append("latitude", userLocation.latitude ? userLocation.latitude.toFixed(6) : ""); - formData.append("longitude", userLocation.longitude ? userLocation.longitude.toFixed(6) : ""); + formData.append("latitude", userLocation.latitude ? userLocation.latitude.toFixed(8) : ""); + formData.append("longitude", userLocation.longitude ? userLocation.longitude.toFixed(8) : ""); formData.append("accuracy", userLocation.accuracy || ""); formData.append("altitude", userLocation.altitude || ""); formData.append("location_source", userLocation.source || "manual"); diff --git a/templates/create_qr_code.html b/templates/create_qr_code.html index e3eeb63..b98f06c 100644 --- a/templates/create_qr_code.html +++ b/templates/create_qr_code.html @@ -719,8 +719,8 @@ const clearBtn = document.getElementById("clearCoordinatesBtn"); if (coordinatesData.latitude && coordinatesData.longitude) { - latDisplay.textContent = coordinatesData.latitude.toFixed(6); - lngDisplay.textContent = coordinatesData.longitude.toFixed(6); + latDisplay.textContent = coordinatesData.latitude.toFixed(8); + lngDisplay.textContent = coordinatesData.longitude.toFixed(8); clearBtn.style.display = "inline-flex"; } else { latDisplay.textContent = "---.------"; diff --git a/templates/qr_destination.html b/templates/qr_destination.html index c873e9e..dc23db6 100644 --- a/templates/qr_destination.html +++ b/templates/qr_destination.html @@ -132,7 +132,7 @@