예제 #1
0
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