Merge branch 'release/v3.81'
This commit is contained in:
@@ -15,6 +15,7 @@ from pandas import DataFrame,Series
|
||||
from pytz import timezone as tz,utc
|
||||
from django.utils import timezone
|
||||
from time import strftime,strptime,mktime,time,daylight
|
||||
import arrow
|
||||
from django.utils.timezone import get_current_timezone
|
||||
thetimezone = get_current_timezone()
|
||||
from rowingdata import (
|
||||
@@ -1012,7 +1013,8 @@ def new_workout_from_df(r,df,
|
||||
|
||||
df.rename(columns = columndict,inplace=True)
|
||||
|
||||
starttimeunix = mktime(startdatetime.utctimetuple())
|
||||
#starttimeunix = mktime(startdatetime.utctimetuple())
|
||||
starttimeunix = arrow.get(startdatetime).timestamp
|
||||
df[' ElapsedTime (sec)'] = df['TimeStamp (sec)']
|
||||
|
||||
df['TimeStamp (sec)'] = df['TimeStamp (sec)']+starttimeunix
|
||||
|
||||
@@ -691,8 +691,23 @@ def leaflet_chart(lat,lon,name=""):
|
||||
if lat.empty or lon.empty:
|
||||
return [0,"invalid coordinate data"]
|
||||
|
||||
|
||||
# Throw out 0,0
|
||||
df = pd.DataFrame({
|
||||
'lat':lat,
|
||||
'lon':lon
|
||||
})
|
||||
|
||||
df = df.replace(0,np.nan)
|
||||
df = df.loc[(df!=0).any(axis=1)]
|
||||
lat = df['lat']
|
||||
lon = df['lon']
|
||||
if lat.empty or lon.empty:
|
||||
return [0,"invalid coordinate data"]
|
||||
|
||||
latmean = lat.mean()
|
||||
lonmean = lon.mean()
|
||||
|
||||
latbegin = lat[lat.index[0]]
|
||||
longbegin = lon[lon.index[0]]
|
||||
latend = lat[lat.index[-1]]
|
||||
@@ -796,6 +811,20 @@ def leaflet_chart2(lat,lon,name=""):
|
||||
if lat.empty or lon.empty:
|
||||
return [0,"invalid coordinate data"]
|
||||
|
||||
|
||||
# Throw out 0,0
|
||||
df = pd.DataFrame({
|
||||
'lat':lat,
|
||||
'lon':lon
|
||||
})
|
||||
|
||||
df = df.replace(0,np.nan)
|
||||
df = df.loc[(df!=0).any(axis=1)]
|
||||
lat = df['lat']
|
||||
lon = df['lon']
|
||||
if lat.empty or lon.empty:
|
||||
return [0,"invalid coordinate data"]
|
||||
|
||||
latmean = lat.mean()
|
||||
lonmean = lon.mean()
|
||||
latbegin = lat[lat.index[0]]
|
||||
|
||||
@@ -126,6 +126,10 @@
|
||||
expires,
|
||||
use the refresh token to refresh it.</p>
|
||||
|
||||
<p>The redirect URI for user authentication has to be <i>https</i>.
|
||||
Developers of iOS or Android apps should contact me directly if
|
||||
this doesn't work for them. I can add exceptions.</p>
|
||||
|
||||
<p>The POST call must have content-type: <i>x-www-form-urlencoded</i>.
|
||||
I set it this way to support the handy testing utility mentioned
|
||||
belower. However,
|
||||
|
||||
@@ -51,7 +51,7 @@
|
||||
<table width="100%" class="listtable shortpadded">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width:80px"> Date</th>
|
||||
<th style="width:80"> Date</th>
|
||||
<th> Time</th>
|
||||
<th> Name</th>
|
||||
<th> Type</th>
|
||||
@@ -76,9 +76,9 @@
|
||||
{% else %}
|
||||
<tr>
|
||||
{% endif %}
|
||||
<td> {{ workout.date |truncatechars:15}} </td>
|
||||
<td> {{ workout.starttime }} </td>
|
||||
<td>
|
||||
<td> {{ workout.date|date:"Y-m-d" }} </td>
|
||||
<td> {{ workout.starttime|date:"H:i" }} </td>
|
||||
<td>
|
||||
{% if workout.user.user == user or user == team.manager %}
|
||||
{% if workout.rankingpiece %}
|
||||
[RANKING PIECE]
|
||||
|
||||
@@ -4341,17 +4341,17 @@ def workouts_view(request,message='',successmessage='',
|
||||
if theteam.viewing == 'allmembers' or theteam.manager == request.user:
|
||||
workouts = Workout.objects.filter(team=theteam,
|
||||
startdatetime__gte=startdate,
|
||||
startdatetime__lte=enddate).order_by("-date", "-starttime")
|
||||
startdatetime__lte=enddate).order_by("-startdatetime")
|
||||
g_workouts = Workout.objects.filter(team=theteam,
|
||||
startdatetime__gte=activity_startdate,
|
||||
startdatetime__lte=activity_enddate).order_by("-date", "-starttime")
|
||||
elif theteam.viewing == 'coachonly':
|
||||
workouts = Workout.objects.filter(team=theteam,user=r,
|
||||
startdatetime__gte=startdate,
|
||||
startdatetime__lte=enddate).order_by("-date","-starttime")
|
||||
startdatetime__lte=enddate).order_by("-startdatetime")
|
||||
g_workouts = Workout.objects.filter(team=theteam,user=r,
|
||||
startdatetime__gte=activity_startdate,
|
||||
enddatetime__lte=activity_enddate).order_by("-date","-starttime")
|
||||
enddatetime__lte=activity_enddate).order_by("-startdatetime")
|
||||
|
||||
|
||||
else:
|
||||
@@ -4361,7 +4361,7 @@ def workouts_view(request,message='',successmessage='',
|
||||
startdatetime__lte=enddate).order_by("-date", "-starttime")
|
||||
g_workouts = Workout.objects.filter(user=r,
|
||||
startdatetime__gte=activity_startdate,
|
||||
startdatetime__lte=activity_enddate).order_by("-date","-starttime")
|
||||
startdatetime__lte=activity_enddate).order_by("-startdatetime")
|
||||
|
||||
query = request.GET.get('q')
|
||||
if query:
|
||||
|
||||
@@ -324,6 +324,9 @@ GMAPIKEY = CFG['gmapikey']
|
||||
OAUTH2_PROVIDER = {
|
||||
# this is the list of available scopes
|
||||
'SCOPES': {'read': 'Read scope', 'write': 'Write scope', 'groups': 'Access to your groups'},
|
||||
'ALLOWED_REDIRECT_URI_SCHEMES': ["http",
|
||||
"https",
|
||||
"rowingcoachexport"]
|
||||
# 'OAUTH2_BACKEND_CLASS': 'oauth2_provider.oauth2_backends.JSONOAuthLibCore'
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user