diff --git a/rowers/dataprep.py b/rowers/dataprep.py index 393c5fc1..8e907486 100644 --- a/rowers/dataprep.py +++ b/rowers/dataprep.py @@ -2038,7 +2038,7 @@ def dataprep(rowdatadf, id=0, bands=True, barchart=True, otwpower=True, if barchart: # time increments for bar chart time_increments = rowdatadf.ix[:, ' ElapsedTime (sec)'].diff() - time_increments[0] = time_increments[1] + time_increments.ix[0] = time_increments.ix[1] time_increments = 0.5 * time_increments + 0.5 * np.abs(time_increments) x_right = (t2 + time_increments.apply(lambda x: timedeltaconv(x))) diff --git a/rowers/interactiveplots.py b/rowers/interactiveplots.py index 6c465eba..9cde76f4 100644 --- a/rowers/interactiveplots.py +++ b/rowers/interactiveplots.py @@ -1482,13 +1482,14 @@ def interactive_cpchart(rower,thedistances,thesecs,theavpower, # fitting the data to three parameter CP model - + success = 0 p1 = p0 if len(thesecs)>=4: p1, success = optimize.leastsq(errfunc, p0[:], args = (thesecs,theavpower)) else: factor = fitfunc(p0,thesecs.mean())/theavpower.mean() p1 = [p0[0]/factor,p0[1]/factor,p0[2],p0[3]] + success = 0 # Get stayer score diff --git a/rowers/models.py b/rowers/models.py index 5e0af42b..0a9a7eda 100644 --- a/rowers/models.py +++ b/rowers/models.py @@ -1238,38 +1238,59 @@ class RowerForm(ModelForm): try: rest = self.cleaned_data['rest'] except: - rest = int(self.data['rest']) + try: + rest = int(self.data['rest']) + except ValueError: + rest = 0 try: ut2 = self.cleaned_data['ut2'] except: - ut2 = self.data['ut2'] + try: + ut2 = self.data['ut2'] + except ValueError: + ut2 = 0 try: ut1 = self.cleaned_data['ut1'] except: - ut1 = self.data['ut1'] + try: + ut1 = self.data['ut1'] + except ValueError: + ut1 = 0 try: at = self.cleaned_data['at'] except: - at = self.data['at'] + try: + at = self.data['at'] + except ValueError: + at = 0 try: an = self.cleaned_data['an'] except: - an = self.data['an'] + try: + an = self.data['an'] + except ValueError: + an = 0 try: tr = self.cleaned_data['tr'] except: - tr = self.data['tr'] + try: + tr = self.data['tr'] + except ValueError: + tr = 0 try: max = self.cleaned_data['max'] except: - max = self.data['max'] - + try: + max = self.data['max'] + except ValueError: + max = 0 + if rest>=ut2: raise forms.ValidationError("Resting heart rate should be lower than UT2") if ut2>=ut1: diff --git a/rowers/templates/list_workouts.html b/rowers/templates/list_workouts.html index d82399c7..4a1963a9 100644 --- a/rowers/templates/list_workouts.html +++ b/rowers/templates/list_workouts.html @@ -133,8 +133,7 @@ {% else %} - No Name + No Name {% endif %} {% else %} diff --git a/rowers/views.py b/rowers/views.py index 745cc37b..09571a41 100644 --- a/rowers/views.py +++ b/rowers/views.py @@ -3585,7 +3585,7 @@ def rankings_view2(request,theuser=0, promember=0 if not request.user.is_anonymous(): - r = getrower(theuser) + r = getrower(request.user) wcdurations = [] wcpower = [] @@ -4129,7 +4129,7 @@ def otwrankings_view(request,theuser=0, request.session['async_tasks'] += [(job.id,'updatecpwater')] except KeyError: request.session['async_tasks'] = [(job.id,'updatecpwater')] - messages.info(request,'New calculation queued. Refresh page or resubmit the date form to get the result') + messages.info(request,'New calculation queued. Page will reload automatically. You can check the status of your calculations here') powerdf = pd.DataFrame({ 'Delta':delta, @@ -4137,7 +4137,7 @@ def otwrankings_view(request,theuser=0, }) if powerdf.empty: - messages.info(request,'Your calculations are running in the background. Please reload this page.') + messages.info(request,'Your calculations are running in the background. Page will reload automatically. You can check the status of your calculations here') powerdf = powerdf[powerdf['CP']>0] powerdf.dropna(axis=0,inplace=True) @@ -4383,7 +4383,7 @@ def oterankings_view(request,theuser=0, request.session['async_tasks'] += [(job.id,'updatecp')] except KeyError: request.session['async_tasks'] = [(job.id,'updatecp')] - messages.info(request,'New calculation queued.') + messages.info(request,'New calculation queued. Page will reload automatically. You can check the status of your calculations here') powerdf = pd.DataFrame({ 'Delta':delta, @@ -4391,7 +4391,7 @@ def oterankings_view(request,theuser=0, }) if powerdf.empty: - messages.info(request,'Your calculations are running in the background. Please reload this page.') + messages.info(request,'Your calculations are running in the background. Page will reload automatically. You can check the status of your calculations here') powerdf = powerdf[powerdf['CP']>0] powerdf.dropna(axis=0,inplace=True) @@ -6884,7 +6884,7 @@ def workout_otwsetpower_view(request,id=0,message="",successmessage=""): except KeyError: request.session['async_tasks'] = [(job.id,'otwsetpower')] - successmessage = 'Your calculations have been submitted. You will receive an email when they are done. You can check the status of your calculations here' + successmessage = 'Your calculations have been submitted. You will receive an email when they are done. You can check the status of your calculations here' messages.info(request,successmessage) kwargs = { 'id':int(id)} @@ -10182,7 +10182,13 @@ def workout_split_view(request,id=id): else: url = reverse(workouts_view) - qdict = {'q':row.name} + rowname = row.name + if isinstance(rowname,unicode): + rowname = rowname.encode('utf8') + elif isinstance(rowname, str): + rowname = rowname.decode('utf8') + + qdict = {'q':rowname} url+='?'+urllib.urlencode(qdict) return HttpResponseRedirect(url)