diff --git a/rowers/c2stuff.py b/rowers/c2stuff.py index fc60be23..5d184895 100644 --- a/rowers/c2stuff.py +++ b/rowers/c2stuff.py @@ -347,9 +347,20 @@ def summaryfromsplitdata(splitdata,data,filename,sep='|'): timebased = False for interval in splitdata: - idist = interval['distance'] - itime = interval['time']/10. - ipace = 500.*itime/idist + try: + idist = interval['distance'] + except KeyError: + idist = 0 + + try: + itime = interval['time']/10. + except KeyError: + itime = 0 + try: + ipace = 500.*itime/idist + except (ZeroDivisionError,OverflowError): + ipace = 180. + try: ispm = interval['stroke_rate'] except KeyError: diff --git a/rowers/models.py b/rowers/models.py index 6d104f63..20a4b588 100644 --- a/rowers/models.py +++ b/rowers/models.py @@ -3072,9 +3072,9 @@ attrs.update(strokedatafields) # when the StrokeData are expanded. # No Django Instances of this model are managed. Strokedata table is # accesssed directly with SQL commands -StrokeData = type(str('StrokeData'), (models.Model,), - attrs - ) +#StrokeData = type(str('StrokeData'), (models.Model,), +# attrs +# ) # Storing data for the OTW CP chart class cpdata(models.Model): diff --git a/rowers/views/workoutviews.py b/rowers/views/workoutviews.py index e934b686..4415cdb1 100644 --- a/rowers/views/workoutviews.py +++ b/rowers/views/workoutviews.py @@ -2906,7 +2906,12 @@ def workout_data_view(request, id=0): else: form = DataFrameColumnsForm(initial = {'cols':tcols}) - datadf = datadf[tcols] + try: + datadf = datadf[tcols] + except KeyError: + tcols = list(set(datadf.columns(tolist)+tcols)) + datadf = datadf[tcols] + datadf = datadf.fillna(value=0) for col in cols: try: