2
2
3
3
# Create your views here.
4
4
import json
5
+ import datetime
5
6
from itertools import groupby
6
7
from django .http import HttpResponse
7
8
from .models import OwnTrackLog
@@ -38,7 +39,27 @@ def manage_owntrack_log(request):
38
39
39
40
@login_required
40
41
def show_maps (request ):
41
- return render (request , 'owntracks/show_maps.html' )
42
+ if request .user .is_superuser :
43
+ defaultdate = str (datetime .datetime .now ().date ())
44
+ date = request .GET .get ('date' , defaultdate )
45
+ context = {
46
+ 'date' : date
47
+ }
48
+ return render (request , 'owntracks/show_maps.html' , context )
49
+ else :
50
+ from django .http import HttpResponseForbidden
51
+ return HttpResponseForbidden ()
52
+
53
+
54
+ @login_required
55
+ def show_log_dates (request ):
56
+ dates = OwnTrackLog .objects .values_list ('created_time' , flat = True )
57
+ results = list (set (map (lambda x : x .strftime ('%Y-%m-%d' ), dates )))
58
+
59
+ context = {
60
+ 'results' : results
61
+ }
62
+ return render (request , 'owntracks/show_log_dates.html' , context )
42
63
43
64
44
65
def convert_to_amap (locations ):
@@ -52,14 +73,20 @@ def convert_to_amap(locations):
52
73
'coordsys' : 'gps'
53
74
}
54
75
rsp = requests .get (url = api , params = query )
55
- logger . info ( type ( rsp . text ))
76
+
56
77
result = json .loads (rsp .text )
57
78
return result ['locations' ]
58
79
59
80
60
81
@login_required
61
82
def get_datas (request ):
62
- models = OwnTrackLog .objects .all ()
83
+ now = datetime .datetime .now ()
84
+ querydate = datetime .datetime (now .year , now .month , now .day , 0 , 0 , 0 )
85
+ if request .GET .get ('date' , None ):
86
+ date = list (map (lambda x : int (x ), request .GET .get ('date' ).split ('-' )))
87
+ querydate = datetime .datetime (date [0 ], date [1 ], date [2 ], 0 , 0 , 0 )
88
+ nextdate = querydate + datetime .timedelta (days = 1 )
89
+ models = OwnTrackLog .objects .filter (created_time__range = (querydate , nextdate ))
63
90
result = list ()
64
91
if models and len (models ):
65
92
for tid , item in groupby (sorted (models , key = lambda k : k .tid ), key = lambda k : k .tid ):
@@ -72,4 +99,4 @@ def get_datas(request):
72
99
paths .append (i .split (',' ))
73
100
d ["path" ] = paths
74
101
result .append (d )
75
- return JsonResponse (result , safe = False )
102
+ return JsonResponse (result , safe = False )
0 commit comments