def user_page(request, username): # check that user exists get_object_or_404(User, username=username) # get user activities if they do exist get_user_activity = StrongLifts.objects.filter(user__username=username).order_by('-added_at') if request.method == 'POST': form = StrongLiftsForm(request.POST) if form.is_valid(): # get form data added_at = form.cleaned_data['added_at'] exercise_name = form.cleaned_data['exercise_name'] exercise_sets = form.cleaned_data['exercise_sets'] exercise_reps = form.cleaned_data['exercise_reps'] exercise_weight = form.cleaned_data['exercise_weight'] new_workout = StrongLifts(added_at=added_at, exercise_name=exercise_name, exercise_sets=exercise_sets, exercise_reps=exercise_reps, exercise_weight=exercise_weight, user=request.user) new_workout.save() return HttpResponseRedirect('/stronglifts/u/{0}'.format(request.user.username)) else: form = StrongLiftsForm() return render(request, 'strong_lifts/user_page.html', context={ 'form': form, 'get_user_activity': get_user_activity[0:15], 'username': username, 'user_maxes': current_maxes(request.user, get_user_activity) } )
def update_exercise(request, username, exercise_id): # get the exercise object and make sure it belongs to the user exercise_edit = get_object_or_404(StrongLifts, id=exercise_id, user=request.user) if request.method == 'POST': form = StrongLiftsForm(request.POST, initial={ 'added_at': exercise_edit.added_at, 'exercise_name': exercise_edit.exercise_name, 'exercise_weight': exercise_edit.exercise_weight, 'exercise_sets': exercise_edit.exercise_sets, 'exercise_reps': exercise_edit.exercise_reps } ) if form.is_valid(): exercise_edit.added_at = form.cleaned_data['added_at'] exercise_edit.exercise_name = form.cleaned_data['exercise_name'] exercise_edit.exercise_sets = form.cleaned_data['exercise_sets'] exercise_edit.exercise_reps = form.cleaned_data['exercise_reps'] exercise_edit.exercise_weight = form.cleaned_data['exercise_weight'] exercise_edit.save() return HttpResponseRedirect('/stronglifts/u/{0}'.format(request.user.username)) else: form = StrongLiftsForm( initial={ 'added_at': exercise_edit.added_at, 'exercise_weight': exercise_edit.exercise_weight, 'exercise_sets': exercise_edit.exercise_sets, 'exercise_reps': exercise_edit.exercise_reps, 'exercise_name': exercise_edit.exercise_name } ) return render(request, 'strong_lifts/update_exercise.html', context={ 'form': form, 'exercise_edit': exercise_edit, 'username': username, 'exercise_id': exercise_id } )
def remove_exercise(request, username, exercise_id): # get the exercise object and make sure it belongs to the user exercise_to_delete = get_object_or_404(StrongLifts, id=exercise_id, user=request.user) if request.method == 'POST': form = StrongLiftsForm(request.POST) if form.is_valid(): exercise_to_delete.delete() return HttpResponseRedirect('/stronglifts/u/{0}'.format(request.user.username)) else: form = StrongLiftsForm( initial={ 'added_at': exercise_to_delete.added_at, 'exercise_weight': exercise_to_delete.exercise_weight, 'exercise_sets': exercise_to_delete.exercise_sets, 'exercise_reps': exercise_to_delete.exercise_reps, 'exercise_name': exercise_to_delete.exercise_name } ) # update form field attrs to be readonly # although any changes by the user won't be saved, its a better experience form.fields['exercise_weight'].widget.attrs['readonly'] = 'readonly' form.fields['exercise_sets'].widget.attrs['readonly'] = 'readonly' form.fields['exercise_name'].widget.attrs['readonly'] = 'readonly' form.fields['exercise_reps'].widget.attrs['readonly'] = 'readonly' form.fields['added_at'].widget.attrs['readonly'] = 'readonly' # disable select form dropdowns form.fields['exercise_name'].widget.attrs['disabled'] = 'disabled' form.fields['added_at'].widget.attrs['disabled'] = 'disabled' return render(request, 'strong_lifts/remove_exercise.html', context={ 'form': form, 'exercise_delete': exercise_to_delete, 'username': username, 'exercise_id': exercise_id } )