Private
Public Access
1
0

first version erase column

This commit is contained in:
Sander Roosendaal
2021-02-09 17:32:55 +01:00
parent 7295e0e70d
commit d0ecd7ceea
5 changed files with 195 additions and 2 deletions

View File

@@ -3166,6 +3166,124 @@ def instroke_chart(request,id=0,metric=''):
return HttpResponseRedirect(url)
# erase column
@permission_required('workout.change_workout',fn=get_workout_by_opaqueid,raise_exception=True)
def workout_erase_column_view(request, id=0,column=''):
r = getrower(request.user)
w = get_workoutuser(id,request)
protected = ['time','pace','velo','cumdist','ftime','fpace',]
if column in protected:
messages.error(request,'You cannot erase this protected column')
url = reverse('workout_data_view',kwargs={
'id':encoder.encode_hex(w.id)
})
return HttpResponseRedirect(url)
try:
data = dataprep.getsmallrowdata_db([column],ids=[w.id])
except:
messages.error(request,'Invalid column')
url = reverse('workout_data_view',kwargs={
'id':encoder.encode_hex(w.id)
})
return HttpResponseRedirect(url)
try:
cdata = data[column]
except KeyError:
url = reverse('workout_data_view',kwargs={
'id':encoder.encode_hex(w.id)
})
return HttpResponseRedirect(url)
if not column:
url = reverse('workout_data_view',kwargs={
'id':encoder.encode_hex(w.id)
})
return HttpResponseRedirect(url)
if request.method == 'POST':
mms = {}
for m in rowingmetrics:
mms[m[0]] = m[1]
try:
defaultvalue = mms[column]['default']
except KeyError:
if not mms[column]['null']:
messages.error(request,'You cannot erase this protected column')
url = reverse('workout_data_view',kwargs={
'id':encoder.encode_hex(w.id)
})
return HttpResponseRedirect(url)
defaultvalue = 0
try:
columnl = dataprep.columndict[column]
except KeyError:
messages.error(request,'You cannot erase this column')
url = reverse('workout_data_view',kwargs={
'id':encoder.encode_hex(w.id)
})
return HttpResponseRedirect(url)
row,workout = dataprep.getrowdata(id=w.id)
row.df[columnl] = defaultvalue
print(row.df[columnl])
row.write_csv(w.csvfilename,gzip=True)
datadf = dataprep.dataprep(row.df,id=w.id)
messages.info(request,'Data for column '+column+' have been erased')
url = reverse('workout_data_view',kwargs={
'id':encoder.encode_hex(w.id)
})
return HttpResponseRedirect(url)
breadcrumbs = [
{
'url':'/rowers/list-workouts/',
'name':'Workouts'
},
{
'url':get_workout_default_page(request,id),
'name': w.name
},
{
'url':reverse('workout_data_view',kwargs={'id':id}),
'name': 'Data Explorer'
}
]
return render(request,
'workout_erase_column.html',
{
'column':column,
'teams':get_my_teams(request.user),
'workout': w,
'breadcrumbs': breadcrumbs,
}
)
# data explorer
@permission_required('workout.change_workout',fn=get_workout_by_opaqueid,raise_exception=True)
@@ -3268,6 +3386,8 @@ def workout_data_view(request, id=0):
'workout_data.html',
{
'htmltable': htmltable,
'data':datadf,
'cols':datadf.columns,
'form':form,
'teams':get_my_teams(request.user),
'workout': w,