2022-09-09 16:59:13 +00:00
|
|
|
from django.views import View
|
|
|
|
from django.contrib.auth.mixins import LoginRequiredMixin
|
|
|
|
from django.shortcuts import get_object_or_404
|
|
|
|
from django.utils import timezone
|
|
|
|
from django.contrib.gis.geos import Point
|
2022-09-07 16:15:22 +00:00
|
|
|
|
2022-09-09 16:59:13 +00:00
|
|
|
from .models import GPSTrack, GPSToken, GPSPoint
|
|
|
|
|
|
|
|
|
|
|
|
class GPSLogView(LoginRequiredMixin, View):
|
|
|
|
def dispatch(self, request, *args, **kwargs):
|
|
|
|
self.gps_track = get_object_or_404(GPSTrack, id=self.kwargs["track"])
|
|
|
|
self.gps_token = get_object_or_404(
|
|
|
|
GPSToken, track=self.gps_track, token=self.kwargs["token"])
|
|
|
|
|
|
|
|
if request.method == "POST" and not self.gps_token.write:
|
|
|
|
return self.http_method_not_allowed(request, *args, **kwargs)
|
|
|
|
|
|
|
|
return super().dispatch(request, *args, **kwargs)
|
|
|
|
|
|
|
|
# ?lat=47.07047834&lon=15.45140181&alt=427.04833984375&tst=1043419092&batt=23.0&acc=14.692631721496582&spd=0.0&dir=&sat=6
|
|
|
|
|
|
|
|
def get(self, request, *args, **kwargs):
|
|
|
|
if self.gps_token.write and all(field in request.GET for field in ("lat", "lon")):
|
|
|
|
lat = request.GET["lat"]
|
|
|
|
lon = request.GET["lon"]
|
|
|
|
|
|
|
|
alt = request.GET.get("alt", None)
|
|
|
|
|
|
|
|
point = Point(lat, lon, alt)
|
|
|
|
|
|
|
|
tst = request.GET.get("tst", timezone.now().timestamp())
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def post(self, request, *args, **kwargs):
|
|
|
|
pass
|