some time zone stuff
This commit is contained in:
@@ -393,7 +393,7 @@ class Workout(models.Model):
|
||||
maxhr = models.IntegerField(blank=True,null=True)
|
||||
uploadedtostrava = models.IntegerField(default=0)
|
||||
uploadedtosporttracks = models.IntegerField(default=0)
|
||||
notes = models.CharField(blank=True,null=True,max_length=200)
|
||||
notes = models.CharField(blank=True,null=True,max_length=1000)
|
||||
summary = models.TextField(blank=True)
|
||||
privacy = models.CharField(default='visible',max_length=30,
|
||||
choices=privacychoices)
|
||||
|
||||
@@ -580,9 +580,7 @@ class ViewTest(TestCase):
|
||||
form = WorkoutForm(data=form_data)
|
||||
self.assertTrue(form.is_valid())
|
||||
response = self.c.post('/rowers/workout/1/edit', form_data, follow=True)
|
||||
self.assertRedirects(response,
|
||||
expected_url='/rowers/workout/1/edit/s/Changes%20saved',
|
||||
status_code=302,target_status_code=200)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
|
||||
w = Workout.objects.get(id=1)
|
||||
|
||||
228
rowers/views.py
228
rowers/views.py
@@ -3597,6 +3597,12 @@ def workout_comment_view(request,id=0):
|
||||
@login_required()
|
||||
def workout_edit_view(request,id=0,message="",successmessage=""):
|
||||
request.session[translation.LANGUAGE_SESSION_KEY] = USER_LANGUAGE
|
||||
|
||||
try:
|
||||
# check if valid ID exists (workout exists)
|
||||
row = Workout.objects.get(id=id)
|
||||
except Workout.DoesNotExist:
|
||||
raise Http404("Workout doesn't exist")
|
||||
|
||||
if request.method == 'POST':
|
||||
# Form was submitted
|
||||
@@ -3621,137 +3627,111 @@ def workout_edit_view(request,id=0,message="",successmessage=""):
|
||||
startdatetime = (str(date) + ' ' + str(starttime))
|
||||
startdatetime = datetime.datetime.strptime(startdatetime,
|
||||
"%Y-%m-%d %H:%M:%S")
|
||||
startdatetime = timezone.make_aware(startdatetime)
|
||||
try:
|
||||
# check if valid ID exists (workout exists)
|
||||
row = Workout.objects.get(id=id)
|
||||
# check if user is owner of this workout
|
||||
if checkworkoutuser(request.user,row):
|
||||
row.name = name
|
||||
row.date = date
|
||||
row.starttime = starttime
|
||||
row.startdatetime = startdatetime
|
||||
row.workouttype = workouttype
|
||||
row.notes = notes
|
||||
row.duration = duration
|
||||
row.distance = distance
|
||||
row.boattype = boattype
|
||||
row.privacy = privacy
|
||||
row.save()
|
||||
startdatetime = timezone.make_aware(startdatetime)
|
||||
# check if user is owner of this workout
|
||||
if checkworkoutuser(request.user,row):
|
||||
row.name = name
|
||||
row.date = date
|
||||
row.starttime = starttime
|
||||
row.startdatetime = startdatetime
|
||||
row.workouttype = workouttype
|
||||
row.notes = notes
|
||||
row.duration = duration
|
||||
row.distance = distance
|
||||
row.boattype = boattype
|
||||
row.privacy = privacy
|
||||
row.save()
|
||||
# change data in csv file
|
||||
|
||||
r = rdata(row.csvfilename)
|
||||
if r == 0:
|
||||
return HttpResponse("Error: CSV Data File Not Found")
|
||||
r.rowdatetime = startdatetime
|
||||
r.write_csv(row.csvfilename,gzip=True)
|
||||
dataprep.update_strokedata(id,r.df)
|
||||
successmessage = "Changes saved"
|
||||
url = "/rowers/workout/"+str(row.id)+"/edit"
|
||||
url = reverse(workout_edit_view,
|
||||
kwargs = {
|
||||
'id':str(row.id),
|
||||
'successmessage':str(successmessage),
|
||||
})
|
||||
response = HttpResponseRedirect(url)
|
||||
else:
|
||||
message = "You are not allowed to change this workout"
|
||||
|
||||
r = rdata(row.csvfilename)
|
||||
if r == 0:
|
||||
return HttpResponse("Error: CSV Data File Not Found")
|
||||
r.rowdatetime = startdatetime
|
||||
r.write_csv(row.csvfilename,gzip=True)
|
||||
dataprep.update_strokedata(id,r.df)
|
||||
successmessage = "Changes saved"
|
||||
url = "/rowers/workout/"+str(row.id)+"/edit"
|
||||
url = reverse(workout_edit_view,
|
||||
kwargs = {
|
||||
'id':str(row.id),
|
||||
'successmessage':str(successmessage),
|
||||
})
|
||||
response = HttpResponseRedirect(url)
|
||||
else:
|
||||
message = "You are not allowed to change this workout"
|
||||
url = reverse(workouts_view,args=[str(message)])
|
||||
|
||||
response = HttpResponseRedirect(url)
|
||||
except Workout.DoesNotExist:
|
||||
# create new workout
|
||||
r = Rower.objects.get(user=request.user)
|
||||
w = Workout(name=name,date=date,workouttype=workouttype,
|
||||
user=r)
|
||||
w.save()
|
||||
successmessage = "New Workout Created"
|
||||
url = reverse(workouts_view,
|
||||
kwargs = {
|
||||
'successmessage':str(successmessage),
|
||||
|
||||
response = HttpResponseRedirect(url)
|
||||
|
||||
response = HttpResponseRedirect(url)
|
||||
else:
|
||||
message = "Invalid Form"
|
||||
url = reverse(workouts_view,args=[str(message)])
|
||||
|
||||
else: # form not POSTed
|
||||
form = WorkoutForm(instance=row)
|
||||
|
||||
|
||||
try:
|
||||
row = Workout.objects.get(id=id)
|
||||
except Workout.DoesNotExist:
|
||||
raise Http404("Workout doesn't exist")
|
||||
|
||||
g = GraphImage.objects.filter(workout=row).order_by("-creationdatetime")
|
||||
# check if user is owner of this workout
|
||||
|
||||
if (checkworkoutuser(request.user,row)==False):
|
||||
raise Http404("You are not allowed to edit this workout")
|
||||
|
||||
# create interactive plot
|
||||
f1 = row.csvfilename
|
||||
u = request.user
|
||||
r = Rower.objects.get(user=u)
|
||||
rowdata = rdata(f1)
|
||||
hascoordinates = 1
|
||||
if rowdata != 0:
|
||||
try:
|
||||
latitude = rowdata.df[' latitude']
|
||||
if not latitude.std():
|
||||
hascoordinates = 0
|
||||
except KeyError,AttributeError:
|
||||
hascoordinates = 0
|
||||
|
||||
|
||||
else:
|
||||
try:
|
||||
row = Workout.objects.get(id=id)
|
||||
form = WorkoutForm(instance=row)
|
||||
g = GraphImage.objects.filter(workout=row).order_by("-creationdatetime")
|
||||
# check if user is owner of this workout
|
||||
|
||||
if (checkworkoutuser(request.user,row)==False):
|
||||
message = "You are not allowed to edit this workout"
|
||||
url = reverse(workouts_view,args=[str(message)])
|
||||
|
||||
return HttpResponseRedirect(url)
|
||||
|
||||
else:
|
||||
# create interactive plot
|
||||
f1 = row.csvfilename
|
||||
u = request.user
|
||||
r = Rower.objects.get(user=u)
|
||||
rowdata = rdata(f1)
|
||||
hascoordinates = 1
|
||||
if rowdata != 0:
|
||||
try:
|
||||
latitude = rowdata.df[' latitude']
|
||||
if not latitude.std():
|
||||
hascoordinates = 0
|
||||
except KeyError,AttributeError:
|
||||
hascoordinates = 0
|
||||
|
||||
else:
|
||||
hascoordinates = 0
|
||||
|
||||
|
||||
if hascoordinates:
|
||||
res = googlemap_chart(rowdata.df[' latitude'],
|
||||
rowdata.df[' longitude'],
|
||||
row.name)
|
||||
gmscript = res[0]
|
||||
gmdiv = res[1]
|
||||
else:
|
||||
gmscript = ""
|
||||
gmdiv = ""
|
||||
|
||||
|
||||
# render page
|
||||
if (len(g)<=3):
|
||||
return render(request, 'workout_form.html',
|
||||
{'form':form,
|
||||
'workout':row,
|
||||
'graphs1':g[0:3],
|
||||
'message': message,
|
||||
'successmessage': successmessage,
|
||||
'gmscript': gmscript,
|
||||
'gmdiv': gmdiv,
|
||||
})
|
||||
|
||||
else:
|
||||
return render(request, 'workout_form.html',
|
||||
{'form':form,
|
||||
'workout':row,
|
||||
'graphs1':g[0:3],
|
||||
'graphs2':g[3:6],
|
||||
'message': message,
|
||||
'successmessage': successmessage,
|
||||
'gmscript': gmscript,
|
||||
'gmdiv': gmdiv,
|
||||
else:
|
||||
hascoordinates = 0
|
||||
|
||||
|
||||
except Workout.DoesNotExist:
|
||||
message = "workout doesn't exist"
|
||||
url = reverse(workouts_view,
|
||||
kwargs = {
|
||||
'message': str(message)
|
||||
})
|
||||
|
||||
if hascoordinates:
|
||||
res = googlemap_chart(rowdata.df[' latitude'],
|
||||
rowdata.df[' longitude'],
|
||||
row.name)
|
||||
gmscript = res[0]
|
||||
gmdiv = res[1]
|
||||
else:
|
||||
gmscript = ""
|
||||
gmdiv = ""
|
||||
|
||||
|
||||
# render page
|
||||
if (len(g)<=3):
|
||||
return render(request, 'workout_form.html',
|
||||
{'form':form,
|
||||
'workout':row,
|
||||
'graphs1':g[0:3],
|
||||
'message': message,
|
||||
'successmessage': successmessage,
|
||||
'gmscript': gmscript,
|
||||
'gmdiv': gmdiv,
|
||||
})
|
||||
|
||||
else:
|
||||
return render(request, 'workout_form.html',
|
||||
{'form':form,
|
||||
'workout':row,
|
||||
'graphs1':g[0:3],
|
||||
'graphs2':g[3:6],
|
||||
'message': message,
|
||||
'successmessage': successmessage,
|
||||
'gmscript': gmscript,
|
||||
'gmdiv': gmdiv,
|
||||
})
|
||||
|
||||
|
||||
return HttpResponseRedirect(url)
|
||||
|
||||
# Create the chart image with wind corrected pace (OTW)
|
||||
|
||||
@@ -60,8 +60,6 @@ def get_metar_data(airportcode,unixtime):
|
||||
return [0,0,message,'',timestamp]
|
||||
|
||||
|
||||
print temp_c,wind_dir,wind_speed
|
||||
|
||||
windbearing = float(wind_dir)
|
||||
wind_knots = float(wind_speed)
|
||||
wind_ms = 0.514444*wind_knots
|
||||
|
||||
Reference in New Issue
Block a user