now working with crude confirmation page
This commit is contained in:
@@ -79,6 +79,15 @@
|
||||
</a>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% if not request.GET.selectworkouts %}
|
||||
<span>
|
||||
<a href="./?selectworkouts=true">Bulk Actions</a>
|
||||
</span>
|
||||
{% else %}
|
||||
<span>
|
||||
<a href="./">Close Bulk Actions</a>
|
||||
</span>
|
||||
{% endif %}
|
||||
</span>
|
||||
</li>
|
||||
|
||||
@@ -87,6 +96,7 @@
|
||||
<li class="grid_4">
|
||||
<form enctype="multipart/form-data" method="post">
|
||||
<h3>Bulk Operation</h3>
|
||||
<p>Please select workouts from the list to do a bulk operation on.</p>
|
||||
<select name="selectworkouts_operation" id="selectworkouts_operation">
|
||||
<option value="">--Please choose an option--</option>
|
||||
<option value="remove">Remove</option>
|
||||
|
||||
@@ -292,6 +292,9 @@ urlpatterns = [
|
||||
views.agegrouprecordview, name='agegrouprecordview'),
|
||||
re_path(r'^agegrouprecords/$',
|
||||
views.agegrouprecordview, name='agegrouprecordview'),
|
||||
re_path(r'^workouts/actions/$',
|
||||
views.workouts_bulk_actions,
|
||||
name='workouts_bulk_actions'),
|
||||
re_path(r'^workouts/setrpe/$', views.workouts_setrpe_view,
|
||||
name='workouts_setrpe_view'),
|
||||
re_path(r'^workouts/setrpe/user/(?P<userid>\d+)/$', views.workouts_setrpe_view,
|
||||
|
||||
@@ -2031,6 +2031,34 @@ def workouts_setrpe_view(request,userid=0):
|
||||
})
|
||||
|
||||
|
||||
# Workout bulk actions
|
||||
@login_required()
|
||||
def workouts_bulk_actions(request):
|
||||
r = getrower(request.user)
|
||||
action = request.session['action']
|
||||
workoutids = request.session['ids']
|
||||
workouts = []
|
||||
try:
|
||||
for encid in workoutids:
|
||||
print(encid)
|
||||
w = get_workout_by_opaqueid(request, encid)
|
||||
if w.user == r:
|
||||
workouts.append(w)
|
||||
except KeyError:
|
||||
pass
|
||||
|
||||
if request.method == 'POST':
|
||||
if action == 'remove':
|
||||
for w in workouts:
|
||||
messages.info(request,'Removed workout '+str(encoder.encode_hex(w.id)))
|
||||
w.delete()
|
||||
url = reverse('workouts_view')
|
||||
return HttpResponseRedirect(url)
|
||||
|
||||
return render(request,'workout_bulk_actions.html',
|
||||
{'action':action,
|
||||
'workouts':workouts})
|
||||
|
||||
# List Workouts
|
||||
@login_required()
|
||||
def workouts_view(request, message='', successmessage='',
|
||||
@@ -2049,14 +2077,11 @@ def workouts_view(request, message='', successmessage='',
|
||||
query = None
|
||||
|
||||
if request.method == 'POST':
|
||||
print(request.POST)
|
||||
if 'selectworkouts' in request.POST:
|
||||
if 'remove' in request.POST.get('selectworkouts_operation'):
|
||||
remove_ids = request.POST.getlist('workoutid')
|
||||
for id in remove_ids:
|
||||
w = Workout.objects.get(id=encoder.decode_hex(id))
|
||||
messages.info(request,'Removed workout '+str(id))
|
||||
w.delete()
|
||||
request.session['action']=request.POST['selectworkouts_operation']
|
||||
request.session['ids'] = request.POST.getlist('workoutid')
|
||||
url = reverse('workouts_bulk_actions')
|
||||
return HttpResponseRedirect(url)
|
||||
dateform = DateRangeForm(request.POST)
|
||||
searchform = SearchForm(request.POST)
|
||||
if dateform.is_valid(): # pragma: no cover
|
||||
|
||||
Reference in New Issue
Block a user