def editTool(request, tool_id): """ Edits the tool's information obtained by the POST from editToolForm. form: form obtained by tool_id """ if request.user.is_authenticated(): if request.user.id == Tool.objects.get(pk=tool_id).owner_id: tool = Tool.objects.get(pk=tool_id) form = ToolForm(request.POST, instance=Tool.objects.get(pk=tool_id)) if tool.availability == 1: if form.is_valid(): form.save() tool = Tool.objects.get(pk=tool_id) setattr(tool, 'shed_string', Shed.objects.get(pk=tool.shed_id).name) #Sets the string name of the tool's shed setattr(tool, 'image', form.cleaned_data['image']) tool.save() messages.success(request, 'The tool has been edited.') return redirect('/../tools/viewTools') else: messages.error(request, 'The information you have entered is invalid.') return redirect('tools:editToolForm', tool_id) else: messages.error(request, 'Cannot edit tool. Tool is either in request or is unavailable.') return redirect('tools:editToolForm', tool_id) else: messages.error(request, 'You can only edit tools that you own.') return redirect('/../tools/viewTools/') #If the tool does not belong to the user. PLACEHOLDER else: return HttpResponseRedirect('/login') #If the user is not logged in. PLACEHOLDER