Beispiel #1
0
def view_profile(request, username=None):
    if request.user.is_anonymous():
        #tell user they need to be logged in to do that
        #add message flag that will display to user "you must be logged in to..."
        return HttpResponseRedirect(
            '/accounts/login/')  #redirect to login page
    else:
        if username is not None:
            try:
                userProfile = profileUtil.getProfileFromUser(
                    User.objects.get(username=username))
            except ObjectDoesNotExist:
                context = {}
                context['object'] = 'profile'
                context.update(content.genBaseLoggedIn(request))
                return render_to_response("dne.html", context)
        else:
            userProfile = profileUtil.getProfileFromUser(request.user)
        toolsOwned = toolUtil.getAllToolsOwnedBy(userProfile)
        toolsBorrowed = toolUtil.getAllToolsBorrowedBy(userProfile)
        sheds = shedUtil.getAllShedsJoinedBy(userProfile)
        context = {}
        context.update(csrf(request))
        context['currentUser'] = request.user
        context['userProfile'] = userProfile
        context['toolsOwned'] = toolsOwned
        context['toolsBorrowed'] = toolsBorrowed
        context['sheds'] = sheds
        context.update(content.genBaseLoggedIn(request))
        return render_to_response('view_profile.html', context)
Beispiel #2
0
def view_profile(request, username=None):
    if request.user.is_anonymous():
        #tell user they need to be logged in to do that
        #add message flag that will display to user "you must be logged in to..."
        return HttpResponseRedirect('/accounts/login/') #redirect to login page
    else:
        if username is not None:
            try:
                userProfile = profileUtil.getProfileFromUser(User.objects.get(username=username))
            except ObjectDoesNotExist:
                context = {}
                context['object'] = 'profile'
                context.update(content.genBaseLoggedIn(request))
                return render_to_response("dne.html", context)
        else:
            userProfile = profileUtil.getProfileFromUser(request.user)
        toolsOwned = toolUtil.getAllToolsOwnedBy(userProfile)
        toolsBorrowed = toolUtil.getAllToolsBorrowedBy(userProfile)
        sheds = shedUtil.getAllShedsJoinedBy(userProfile)
        context = {}
        context.update(csrf(request))
        context['currentUser'] = request.user
        context['userProfile'] = userProfile
        context['toolsOwned'] = toolsOwned
        context['toolsBorrowed'] = toolsBorrowed
        context['sheds'] = sheds
        context.update(content.genBaseLoggedIn(request))
        return render_to_response('view_profile.html', context)
Beispiel #3
0
def view_shed_page(
        request, id,
        contextArg):  #contextArg is a dict to be added to the content dict
    if request.user.is_anonymous():
        return HttpResponseRedirect("/accounts/login")
    else:
        if id is not None:
            try:
                shedObj = shedUtil.getShedFromID(id)
            except ObjectDoesNotExist:
                context = {}
                context['object'] = 'shed'
                context.update(content.genBaseLoggedIn(request))
                return render_to_response("dne.html", context)
        else:
            context = {}
            context['object'] = 'shed'
            context.update(content.genBaseLoggedIn(request))
            return render_to_response("dne.html", context)
        owner = shedUtil.getOwnerOfShed(shedObj)
        name = shedUtil.getNameOfShed(shedObj)
        admins = shedUtil.getAllAdminsOfShed(shedObj)
        isAdmin = False
        for admin in admins:
            if admin == profileUtil.getProfileFromUser(request.user):
                isAdmin = True
        members = shedUtil.getAllMembersOfShed(shedObj)
        tools = toolUtil.getAllToolsInShed(shedObj)
        userProfile = profileUtil.getProfileFromUser(request.user)
        meetsMinRep = userProfile.reputation >= shedObj.minimumReputation
        shedMembership = shedUtil.checkForMembership(userProfile, id)
        actions = actionUtil.getProfileAction(
            profileUtil.getProfileFromUser(request.user))
        actionRequest = None
        pendingRequest = False
        for action in actions:
            if action.shed == shedObj:
                actionRequest = action
        if actionRequest:
            if actionRequest.currrentState == "userShedRequest" or actionRequest.currrentState == "acceptDeny":
                pendingRequest = True
        context = {}
        context.update(csrf(request))
        context['shed'] = shedObj
        context['owner'] = owner
        context['currentUser'] = profileUtil.getProfileFromUser(request.user)
        context['name'] = name
        context['admins'] = admins
        context['members'] = members
        context['tools'] = tools
        context['meetsMin'] = meetsMinRep
        context['alreadyMember'] = shedMembership
        context['isAdmin'] = isAdmin
        context['pendingRequest'] = pendingRequest
        context.update(content.genBaseLoggedIn(request))
        if contextArg:
            context.update(contextArg)
        return render_to_response('shed_page.html', context)
Beispiel #4
0
def view_shed_page(request, id, contextArg):#contextArg is a dict to be added to the content dict
    if request.user.is_anonymous():
        return HttpResponseRedirect("/accounts/login")
    else:
        if id is not None:
            try:
                shedObj = shedUtil.getShedFromID(id)
            except ObjectDoesNotExist:
                context = {}
                context['object'] = 'shed'
                context.update(content.genBaseLoggedIn(request))
                return render_to_response("dne.html", context)
        else:
            context = {}
            context['object'] = 'shed'
            context.update(content.genBaseLoggedIn(request))
            return render_to_response("dne.html", context)
        owner = shedUtil.getOwnerOfShed(shedObj)
        name = shedUtil.getNameOfShed(shedObj)
        admins = shedUtil.getAllAdminsOfShed(shedObj)
        isAdmin = False
        for admin in admins:
            if admin == profileUtil.getProfileFromUser(request.user):
                isAdmin = True
        members = shedUtil.getAllMembersOfShed(shedObj)
        tools = toolUtil.getAllToolsInShed(shedObj)
        userProfile = profileUtil.getProfileFromUser(request.user)
        meetsMinRep = userProfile.reputation >= shedObj.minimumReputation
        shedMembership = shedUtil.checkForMembership(userProfile, id)
        actions = actionUtil.getProfileAction(profileUtil.getProfileFromUser(request.user))
        actionRequest = None
        pendingRequest = False
        for action in actions:
            if action.shed == shedObj:
                actionRequest = action
        if actionRequest:
            if actionRequest.currrentState == "userShedRequest" or actionRequest.currrentState == "acceptDeny":
                pendingRequest = True
        context = {}
        context.update(csrf(request))
        context['shed'] = shedObj
        context['owner'] = owner
        context['currentUser'] = profileUtil.getProfileFromUser(request.user)
        context['name'] = name
        context['admins'] = admins
        context['members'] = members
        context['tools'] = tools
        context['meetsMin'] = meetsMinRep
        context['alreadyMember'] = shedMembership
        context['isAdmin'] = isAdmin
        context['pendingRequest'] = pendingRequest
        context.update(content.genBaseLoggedIn(request))
        if contextArg:
            context.update(contextArg)
        return render_to_response('shed_page.html', context)
Beispiel #5
0
def view_current_profile(request, contextArg):
    """this view displays account information and allows users to edit their information
    """
    if request.user.is_anonymous():
        #tell user they need to be logged in to do that
        return HttpResponseRedirect('/accounts/login/') #redirect to login page
    else:
        currentUser = request.user
        userProfile = profileUtil.getProfileFromUser(currentUser)
        print(userProfile.personalShed)
        reputation = profileUtil.getReputation(userProfile)
        timeCreated = userProfile.timeCreated
        streetAddress = profileUtil.getAddress(userProfile)
        city = profileUtil.getCity(userProfile)
        state = profileUtil.getStateName(userProfile)
        shareZone = profileUtil.getSharezone(userProfile)
        context = {}
        context.update(csrf(request))
        context['userProfile'] = userProfile
        context['timeStamp'] = timeCreated
        context['streetAddress'] = streetAddress
        context['reputation'] = reputation
        context['city'] = city
        context['state'] = state
        context['sharezone'] = shareZone
        context.update(content.genBaseLoggedIn(request))
        if contextArg:
            context.update(contextArg)
        return render_to_response('my_account.html', context)
Beispiel #6
0
def view_current_profile(request, contextArg):
    """this view displays account information and allows users to edit their information
    """
    if request.user.is_anonymous():
        #tell user they need to be logged in to do that
        return HttpResponseRedirect(
            '/accounts/login/')  #redirect to login page
    else:
        currentUser = request.user
        userProfile = profileUtil.getProfileFromUser(currentUser)
        print(userProfile.personalShed)
        reputation = profileUtil.getReputation(userProfile)
        timeCreated = userProfile.timeCreated
        streetAddress = profileUtil.getAddress(userProfile)
        city = profileUtil.getCity(userProfile)
        state = profileUtil.getStateName(userProfile)
        shareZone = profileUtil.getSharezone(userProfile)
        context = {}
        context.update(csrf(request))
        context['userProfile'] = userProfile
        context['timeStamp'] = timeCreated
        context['streetAddress'] = streetAddress
        context['reputation'] = reputation
        context['city'] = city
        context['state'] = state
        context['sharezone'] = shareZone
        context.update(content.genBaseLoggedIn(request))
        if contextArg:
            context.update(contextArg)
        return render_to_response('my_account.html', context)
Beispiel #7
0
def create_tool_shed(request):
    if request.user.is_anonymous():
        #tell user they need to be logged in to do that
        #add message flag that will display to user "you must be logged in to..."
        return HttpResponseRedirect('/accounts/login/') #redirect to login page
    else:
        if request.method == 'POST':
            form = ShedCreationForm(request.user, request.POST)
            
            if form.is_valid():
                shed = form.save()
                profileObj = profileUtil.getProfileFromUser(request.user)
                shed.members.add(profileObj)
                shed.admins.add(profileObj)
                #send email
                sendMail(profileUtil.getProfileFromUser(request.user), \
                    "Your shed has been created! ", \
                    "Thanks for creating " + shed.name + \
                    " on ToolCloud.  We'll let you know when someone wants to join.")
                return HttpResponseRedirect('/sheds/' + str(shed.id) + '/success')
        else:
            form = ShedCreationForm(request.user)
        context = {}
        context.update(csrf(request))
        context['form'] = form
        context.update(content.genBaseLoggedIn(request))
        return render_to_response('shed_creation.html', context)
Beispiel #8
0
def create_tool_shed(request):
    if request.user.is_anonymous():
        #tell user they need to be logged in to do that
        #add message flag that will display to user "you must be logged in to..."
        return HttpResponseRedirect(
            '/accounts/login/')  #redirect to login page
    else:
        if request.method == 'POST':
            form = ShedCreationForm(request.user, request.POST)

            if form.is_valid():
                shed = form.save()
                profileObj = profileUtil.getProfileFromUser(request.user)
                shed.members.add(profileObj)
                shed.admins.add(profileObj)
                #send email
                sendMail(profileUtil.getProfileFromUser(request.user), \
                    "Your shed has been created! ", \
                    "Thanks for creating " + shed.name + \
                    " on ToolCloud.  We'll let you know when someone wants to join.")
                return HttpResponseRedirect('/sheds/' + str(shed.id) +
                                            '/success')
        else:
            form = ShedCreationForm(request.user)
        context = {}
        context.update(csrf(request))
        context['form'] = form
        context.update(content.genBaseLoggedIn(request))
        return render_to_response('shed_creation.html', context)
Beispiel #9
0
def tool_submission(request):
    if request.user.is_anonymous():
        #tell user they need to be logged in to do that
        #add message flag that will display to user "you must be logged in to..."
        return HttpResponseRedirect(
            '/accounts/login/')  #redirect to login page
    else:
        if request.method == 'POST':
            form = ToolCreationForm(request.user, request.POST)
            if form.is_valid():
                tool = form.save()
                tool.save()
                #send email
                sendMail(profileUtil.getProfileFromUser(request.user), \
                    "Your tool has been submitted! ",\
                     "Thanks for submitting your " + tool.name + \
                      " to ToolCloud.  We'll let you know when someone wants to borrow it.")
                return HttpResponseRedirect('/tools/' + str(tool.id) +
                                            '/success')
        else:
            form = ToolCreationForm(request.user)
        context = {}
        context.update(csrf(request))
        context.update(content.genBaseLoggedIn(request))
        context['form'] = form
        return render_to_response('tool_creation.html', context)
Beispiel #10
0
def view_community_page(request, sharezone):
    if request.user.is_anonymous():
        return HttpResponseRedirect("/accounts/login")
    else:
        if sharezone is not None:
            sheds = shedUtil.getAllShedsInSharezone(sharezone)
            users = profileUtil.getAllProfilesInSharezone(sharezone)
            context = {}
            context['sharezone'] = sharezone
            context['sheds'] = sheds
            context['users'] = users
            context.update(content.genBaseLoggedIn(request))
            return render_to_response('community_page.html', context)
        else:
            context = {}
            context['object'] = 'community'
            context.update(content.genBaseLoggedIn(request))
            return render_to_response('dne.html', context)
Beispiel #11
0
def view_community_page(request, sharezone):
    if request.user.is_anonymous():
        return HttpResponseRedirect("/accounts/login")
    else:
        if sharezone is not None:
            sheds = shedUtil.getAllShedsInSharezone(sharezone)
            users = profileUtil.getAllProfilesInSharezone(sharezone)
            context = {}
            context['sharezone'] = sharezone
            context['sheds'] = sheds
            context['users'] = users
            context.update(content.genBaseLoggedIn(request))
            return render_to_response('community_page.html', context)
        else:
            context = {}
            context['object'] = 'community'
            context.update(content.genBaseLoggedIn(request))
            return render_to_response('dne.html', context)
Beispiel #12
0
def search(request):
    if request.user.is_anonymous():
        return HttpResponseRedirect('/accounts/login')
    else:
        query_string = ''
        found_entries = None
        no_results = True
        tool_results = []
        profile_results = []
        shed_results = []
        if ('q' in request.GET) and request.GET['q'].strip():
            query_string = request.GET['q']
            if query_string == '' or query_string == None:
                tool_results = None
                profile_results = None
                shed_results = None
            else:
                entry_query = get_query(query_string, ['name'])
                found_tools = Tool.objects.filter(name__icontains=query_string)
                tool_results = list(found_tools)
                found_tools = Tool.objects.filter(tags__icontains=query_string)
                for tool in found_tools:
                    if tool not in tool_results:
                        tool_results.append(tool)
                found_tools = Tool.objects.filter(
                    description__icontains=query_string)
                for tool in found_tools:
                    if tool not in tool_results:
                        tool_results.append(tool)
                found_profiles = Profile.objects.filter(
                    user__username__icontains=query_string)
                profile_results = list(found_profiles)
                found_profiles = Profile.objects.filter(
                    user__first_name__icontains=query_string)
                for profile in found_profiles:
                    if profile not in profile_results:
                        profile_results.append(profile)
                found_profiles = Profile.objects.filter(
                    user__last_name__icontains=query_string)
                for profile in found_profiles:
                    if profile not in profile_results:
                        profile_results.append(profile)
                found_sheds = Shed.objects.filter(name__icontains=query_string)
                shed_results = list(found_sheds)
                all_results = shed_results + profile_results + tool_results
                no_results = False
                if all_results == []:
                    no_results = True
        context = {}
        context.update(csrf(request))
        context['p_results'] = profile_results
        context['t_results'] = tool_results
        context['s_results'] = shed_results
        context['no_results'] = no_results
        context.update(content.genBaseLoggedIn(request))
        return render_to_response('search.html', context)
Beispiel #13
0
def all_tools(request):
    if request.user.is_anonymous():
        return HttpResponseRedirect('/accounts/login')
    else:
        tools = toolUtil.getAllTools()
        context = {}
        context.update(csrf(request))
        context['tools'] = tools
        context.update(content.genBaseLoggedIn(request))
        return render_to_response('all_tools.html', context)
Beispiel #14
0
def all_tools(request):
    if request.user.is_anonymous():
        return HttpResponseRedirect('/accounts/login')
    else:
        tools = toolUtil.getAllTools()
        context = {}
        context.update(csrf(request))
        context['tools'] = tools
        context.update(content.genBaseLoggedIn(request))
        return render_to_response('all_tools.html', context)
Beispiel #15
0
def search(request):
    if request.user.is_anonymous():
        return HttpResponseRedirect('/accounts/login')
    else:
        query_string = ''
        found_entries = None
        no_results = True
        tool_results = []
        profile_results =[]
        shed_results = []
        if ('q' in request.GET) and request.GET['q'].strip():
            query_string = request.GET['q']
            if query_string == '' or query_string == None:
                tool_results = None
                profile_results = None
                shed_results = None
            else:
                entry_query = get_query(query_string, ['name'])
                found_tools = Tool.objects.filter(name__icontains=query_string)
                tool_results = list(found_tools)
                found_tools = Tool.objects.filter(tags__icontains=query_string)
                for tool in found_tools:
                    if tool not in tool_results:
                        tool_results.append(tool)
                found_tools = Tool.objects.filter(description__icontains=query_string)
                for tool in found_tools:
                    if tool not in tool_results:
                        tool_results.append(tool)
                found_profiles = Profile.objects.filter(user__username__icontains=query_string)
                profile_results = list(found_profiles)
                found_profiles = Profile.objects.filter(user__first_name__icontains=query_string)
                for profile in found_profiles:
                    if profile not in profile_results:
                        profile_results.append(profile)
                found_profiles = Profile.objects.filter(user__last_name__icontains=query_string) 
                for profile in found_profiles:
                    if profile not in profile_results:
                        profile_results.append(profile)
                found_sheds = Shed.objects.filter(name__icontains=query_string)
                shed_results = list(found_sheds)
                all_results = shed_results + profile_results + tool_results
                no_results = False
                if all_results == []:
                    no_results = True
        context = {}
        context.update(csrf(request))
        context['p_results'] = profile_results
        context['t_results'] = tool_results
        context['s_results'] = shed_results
        context['no_results'] = no_results
        context.update(content.genBaseLoggedIn(request))
        return render_to_response('search.html', context)
        
Beispiel #16
0
def edit_user_info(request):
    if request.user.is_anonymous():
        return HttpResponseRedirect('/accounts/login/')
    else:
        if request.method == 'POST':
            profileObj = profileUtil.getProfileFromUser(request.user)
            form = UserEditForm(profileObj, request.POST)
            if form.is_valid():
                profileObj = form.save()
                return HttpResponseRedirect('/accounts/my_account/account_updated')
        else:
            form = UserEditForm(profileUtil.getProfileFromUser(request.user))
        context = {}
        context.update(csrf(request))
        context.update(content.genBaseLoggedIn(request))
        context['form'] = form
        return render_to_response('user_update.html', context)
Beispiel #17
0
def edit_shed(request, id):
    if request.user.is_anonymous():
        return HttpResponseRedirect('/accounts/login/')
    else:
        if request.method == 'POST':
            shedObj = shedUtil.getShedFromID(id)
            form = ShedEditForm(shedObj, request.POST)
            if form.is_valid():
                shedObj = form.save()
                return HttpResponseRedirect('/sheds/' + str(shedObj.id) + '/edit/success')
        else:
            form = ShedEditForm(shedUtil.getShedFromID(id))
        context = {}
        context.update(csrf(request))
        context.update(content.genBaseLoggedIn(request))
        context['form'] = form
        context['shed'] = shedUtil.getShedFromID(id)
        return render_to_response('shed_update.html', context)
Beispiel #18
0
def edit_user_info(request):
    if request.user.is_anonymous():
        return HttpResponseRedirect('/accounts/login/')
    else:
        if request.method == 'POST':
            profileObj = profileUtil.getProfileFromUser(request.user)
            form = UserEditForm(profileObj, request.POST)
            if form.is_valid():
                profileObj = form.save()
                return HttpResponseRedirect(
                    '/accounts/my_account/account_updated')
        else:
            form = UserEditForm(profileUtil.getProfileFromUser(request.user))
        context = {}
        context.update(csrf(request))
        context.update(content.genBaseLoggedIn(request))
        context['form'] = form
        return render_to_response('user_update.html', context)
Beispiel #19
0
def all_sheds(request):
    if request.user.is_anonymous():
        return HttpResponseRedirect('/accounts/login')
    else:
        userProfile = profileUtil.getProfileFromUser(request.user)
        allSheds = shedUtil.getAllShedsAllSharezones()
        shedsInMySharezone = shedUtil.getAllShedsInSharezone(userProfile.sharezone)
        adminSheds = shedUtil.getAllShedsAdministratedBy(userProfile)
        ownedSheds = shedUtil.getAllShedsOwnedBy(userProfile)
        memberSheds = shedUtil.getAllShedsJoinedBy(userProfile)
        context = {}
        context.update(csrf(request))
        context['sheds'] = allSheds
        context['adminSheds'] = adminSheds
        context['ownedSheds'] = ownedSheds
        context['mySheds'] = memberSheds
        context.update(content.genBaseLoggedIn(request))
        return render_to_response('all_sheds.html', context)
Beispiel #20
0
def edit_shed(request, id):
    if request.user.is_anonymous():
        return HttpResponseRedirect('/accounts/login/')
    else:
        if request.method == 'POST':
            shedObj = shedUtil.getShedFromID(id)
            form = ShedEditForm(shedObj, request.POST)
            if form.is_valid():
                shedObj = form.save()
                return HttpResponseRedirect('/sheds/' + str(shedObj.id) +
                                            '/edit/success')
        else:
            form = ShedEditForm(shedUtil.getShedFromID(id))
        context = {}
        context.update(csrf(request))
        context.update(content.genBaseLoggedIn(request))
        context['form'] = form
        context['shed'] = shedUtil.getShedFromID(id)
        return render_to_response('shed_update.html', context)
Beispiel #21
0
def all_sheds(request):
    if request.user.is_anonymous():
        return HttpResponseRedirect('/accounts/login')
    else:
        userProfile = profileUtil.getProfileFromUser(request.user)
        allSheds = shedUtil.getAllShedsAllSharezones()
        shedsInMySharezone = shedUtil.getAllShedsInSharezone(
            userProfile.sharezone)
        adminSheds = shedUtil.getAllShedsAdministratedBy(userProfile)
        ownedSheds = shedUtil.getAllShedsOwnedBy(userProfile)
        memberSheds = shedUtil.getAllShedsJoinedBy(userProfile)
        context = {}
        context.update(csrf(request))
        context['sheds'] = allSheds
        context['adminSheds'] = adminSheds
        context['ownedSheds'] = ownedSheds
        context['mySheds'] = memberSheds
        context.update(content.genBaseLoggedIn(request))
        return render_to_response('all_sheds.html', context)
Beispiel #22
0
def edit_tool(request, id):
    if request.user.is_anonymous():
        return HttpResponseRedirect('/accounts/login/')
    else:
        if request.method == 'POST':
            toolObj = toolUtil.getToolFromID(id)
            form = ToolEditForm(toolObj, request.POST)
            if form.is_valid():
                toolObj = form.save()
                return HttpResponseRedirect('/tools/' + str(toolObj.id) + '/edit/success')
        else:
            toolObj = toolUtil.getToolFromID(id)
            form = ToolEditForm(toolObj)
        context = {}
        context.update(csrf(request))
        context.update(content.genBaseLoggedIn(request))
        context['form'] = form
        context['tool'] = toolUtil.getToolFromID(id)
        return render_to_response('tool_update.html', context)
Beispiel #23
0
def confirm_remove_shed_admin(request, id, username):
    if request.user.is_anonymous():
        return HttpResponseRedirect('/accounts/login')
    else:
        userProfile = profileUtil.getProfileFromUser(request.user)
        shedObj = shedUtil.getShedFromID(id)
        removeAdmin = profileUtil.getProfileFromUser(User.objects.get(username=username))
        if shedObj.owner == removeAdmin:
            return HttpResponseRedirect('/')
        else:
            if shedObj.owner == userProfile:
                context = {}
                context['currentUser'] = userProfile
                context['shed'] = shedObj
                context['removeAdmin'] = removeAdmin
                context.update(content.genBaseLoggedIn(request))
                return render_to_response("admin_remove_confirm.html", context)
            else:
                return HttpResponseRedirect('/')
Beispiel #24
0
def confirm_remove_shed_admin(request, id, username):
    if request.user.is_anonymous():
        return HttpResponseRedirect('/accounts/login')
    else:
        userProfile = profileUtil.getProfileFromUser(request.user)
        shedObj = shedUtil.getShedFromID(id)
        removeAdmin = profileUtil.getProfileFromUser(
            User.objects.get(username=username))
        if shedObj.owner == removeAdmin:
            return HttpResponseRedirect('/')
        else:
            if shedObj.owner == userProfile:
                context = {}
                context['currentUser'] = userProfile
                context['shed'] = shedObj
                context['removeAdmin'] = removeAdmin
                context.update(content.genBaseLoggedIn(request))
                return render_to_response("admin_remove_confirm.html", context)
            else:
                return HttpResponseRedirect('/')
Beispiel #25
0
def request_decline(request, id):
    notifObject = Notification.objects.get(id = id)
    notifObject = notifUtil.respondToNotif(notifObject, "Deny")
    actionObject = notifUtil.getNotifSourceObject(notifObject)
    requesterProfile = actionObject.requester
    context = {}
    context['requesterName'] = requesterProfile.user.username
    if actionUtil.isShedRequest(actionObject):
        shedObject = actionObject.shed
        shedName = shedObject.name
        context['objectName'] = shedName
        context['type'] = "Shed"
    elif actionUtil.isToolRequest(actionObject):
        toolObject = actionObject.tool
        toolName = toolObject.name
        context['objectName'] = toolName
        context['type'] = "Tool"
    context.update(content.genBaseLoggedIn(request))
    actionUtil.forceProcessActions()
    return render_to_response("view_notifs.html", content.addRequestDeniedNoti(context))
Beispiel #26
0
def edit_tool(request, id):
    if request.user.is_anonymous():
        return HttpResponseRedirect('/accounts/login/')
    else:
        if request.method == 'POST':
            toolObj = toolUtil.getToolFromID(id)
            form = ToolEditForm(toolObj, request.POST)
            if form.is_valid():
                toolObj = form.save()
                return HttpResponseRedirect('/tools/' + str(toolObj.id) +
                                            '/edit/success')
        else:
            toolObj = toolUtil.getToolFromID(id)
            form = ToolEditForm(toolObj)
        context = {}
        context.update(csrf(request))
        context.update(content.genBaseLoggedIn(request))
        context['form'] = form
        context['tool'] = toolUtil.getToolFromID(id)
        return render_to_response('tool_update.html', context)
Beispiel #27
0
def request_decline(request, id):
    notifObject = Notification.objects.get(id=id)
    notifObject = notifUtil.respondToNotif(notifObject, "Deny")
    actionObject = notifUtil.getNotifSourceObject(notifObject)
    requesterProfile = actionObject.requester
    context = {}
    context['requesterName'] = requesterProfile.user.username
    if actionUtil.isShedRequest(actionObject):
        shedObject = actionObject.shed
        shedName = shedObject.name
        context['objectName'] = shedName
        context['type'] = "Shed"
    elif actionUtil.isToolRequest(actionObject):
        toolObject = actionObject.tool
        toolName = toolObject.name
        context['objectName'] = toolName
        context['type'] = "Tool"
    context.update(content.genBaseLoggedIn(request))
    actionUtil.forceProcessActions()
    return render_to_response("view_notifs.html",
                              content.addRequestDeniedNoti(context))
Beispiel #28
0
def confirm_remove_shed_member(request, id, username):
    if request.user.is_anonymous():
        return HttpResponseRedirect('/accounts/login')
    else:
        userProfile = profileUtil.getProfileFromUser(request.user)
        shedObj = shedUtil.getShedFromID(id)
        banUser = profileUtil.getProfileFromUser(User.objects.get(username=username))
        admins = shedUtil.getAllAdminsOfShed(shedObj)
        isAdmin = False
        for admin in admins:
            if admin == userProfile:
                isAdmin = True
        if isAdmin:
            context = {}
            context['currentUser'] = userProfile
            context['shed'] = shedObj
            context['banned'] = banUser
            context.update(content.genBaseLoggedIn(request))
            return render_to_response("remove_member_confirm.html", context)
        else:
            return HttpResponseRedirect('/')
Beispiel #29
0
def confirm_remove_shed_member(request, id, username):
    if request.user.is_anonymous():
        return HttpResponseRedirect('/accounts/login')
    else:
        userProfile = profileUtil.getProfileFromUser(request.user)
        shedObj = shedUtil.getShedFromID(id)
        banUser = profileUtil.getProfileFromUser(
            User.objects.get(username=username))
        admins = shedUtil.getAllAdminsOfShed(shedObj)
        isAdmin = False
        for admin in admins:
            if admin == userProfile:
                isAdmin = True
        if isAdmin:
            context = {}
            context['currentUser'] = userProfile
            context['shed'] = shedObj
            context['banned'] = banUser
            context.update(content.genBaseLoggedIn(request))
            return render_to_response("remove_member_confirm.html", context)
        else:
            return HttpResponseRedirect('/')
Beispiel #30
0
def tool_submission(request):
    if request.user.is_anonymous():
        #tell user they need to be logged in to do that
        #add message flag that will display to user "you must be logged in to..."
        return HttpResponseRedirect('/accounts/login/') #redirect to login page
    else:
        if request.method == 'POST':
            form = ToolCreationForm(request.user, request.POST)
            if form.is_valid():
                tool = form.save()
                tool.save()
                #send email
                sendMail(profileUtil.getProfileFromUser(request.user), \
                    "Your tool has been submitted! ",\
                     "Thanks for submitting your " + tool.name + \
                      " to ToolCloud.  We'll let you know when someone wants to borrow it.")
                return HttpResponseRedirect('/tools/' + str(tool.id) + '/success')
        else:
            form = ToolCreationForm(request.user)
        context = {}
        context.update(csrf(request))
        context.update(content.genBaseLoggedIn(request))
        context['form'] = form
        return render_to_response('tool_creation.html', context)
Beispiel #31
0
def view_tool_page(
        request, id,
        contextArg):  #contextArg is a dict to be added to the content dict
    if request.user.is_anonymous():
        #tell user they need to be logged in to that
        #add message flag that will display to user "you must be logged in to..."
        return HttpResponseRedirect('/accounts/login')  #redirect to login page
    else:
        if id is not None:
            try:
                toolObj = toolUtil.getToolFromID(id)
            except ObjectDoesNotExist:
                context = {}
                context['object'] = 'tool'
                context.update(content.genBaseLoggedIn(request))
                return render_to_response("dne.html", context)
        else:
            context = {}
            context['object'] = 'tool'
            context.update(content.genBaseLoggedIn(request))
            return render_to_response("dne.html", context)
        owner = toolUtil.getToolOwner(toolObj)
        name = toolUtil.getToolName(toolObj)
        description = toolUtil.getToolDescription(toolObj)
        tags = toolUtil.getToolTags(toolObj)
        borrower = toolUtil.getToolBorrower(toolObj)
        condition = toolUtil.getToolConditionReadable(toolObj)
        available = toolUtil.isToolAvailable(toolObj)
        actions = actionUtil.getProfileAction(
            profileUtil.getProfileFromUser(request.user))
        actionBorrowRequest = None
        actionReturnRequest = None
        requesterProfile = None
        for action in actions:
            if action.tool == toolObj:
                if action.currrentState == "userBorrowRequest" or action.currrentState == "acceptDecline":
                    actionBorrowRequest = action
                if action.currrentState == "markedReturned" or action.currrentState == "confirmReturned":
                    actionReturnRequest = action
        if actionBorrowRequest:
            pendingBorrowRequest = True
            requesterProfile = actionBorrowRequest.requester
        else:
            pendingBorrowRequest = False
        if actionReturnRequest:
            pendingReturnRequest = True
        else:
            pendingReturnRequest = False
        if profileUtil.getProfileFromUser(request.user) == owner:
            ownedByUser = True
        else:
            ownedByUser = False
        meetsMinRep = (profileUtil.getReputation(
            profileUtil.getProfileFromUser(request.user)) >=
                       toolObj.minimumReputation)
        profileObj = (profileUtil.getProfileFromUser(request.user))
        canBorrow = profileObj.canBorrow
        context = {}
        context.update(csrf(request))
        context['tool'] = toolObj
        context['name'] = name  #TODO change to toolName
        context['owner'] = owner
        context['description'] = description
        context['tags'] = tags
        context['currentProfile'] = profileObj
        context['borrower'] = borrower
        context['requester'] = requesterProfile
        context['condition'] = condition
        context['available'] = available
        context['ownedByUser'] = ownedByUser
        context['meetsMin'] = meetsMinRep
        context['pendingBorrowRequest'] = pendingBorrowRequest
        context['pendingReturnRequest'] = pendingReturnRequest
        context['canBorrow'] = canBorrow
        context.update(content.genBaseLoggedIn(request))
        if contextArg:
            context.update(contextArg)
        return render_to_response('tool_page.html', context)
Beispiel #32
0
def dne(request):
    context.update(content.genBaseLoggedIn(request))
    return render_to_response("dne.html", context)
Beispiel #33
0
def view_notifications(request):
    if request.user.is_anonymous():
        return HttpResponseRedirect('/accounts/login')
    else:
        return render_to_response('view_notifs.html', content.genBaseLoggedIn(request))
Beispiel #34
0
def view_notifications(request):
    if request.user.is_anonymous():
        return HttpResponseRedirect('/accounts/login')
    else:
        return render_to_response('view_notifs.html',
                                  content.genBaseLoggedIn(request))
Beispiel #35
0
def dne(request):
    context.update(content.genBaseLoggedIn(request))
    return render_to_response("dne.html", context)
Beispiel #36
0
def view_tool_page(request, id, contextArg):#contextArg is a dict to be added to the content dict
    if request.user.is_anonymous():
        #tell user they need to be logged in to that
        #add message flag that will display to user "you must be logged in to..."
        return HttpResponseRedirect('/accounts/login') #redirect to login page
    else:
        if id is not None:
            try:
                toolObj = toolUtil.getToolFromID(id)
            except ObjectDoesNotExist:
                context = {}
                context['object'] = 'tool'
                context.update(content.genBaseLoggedIn(request))
                return render_to_response("dne.html", context)
        else:
            context = {}
            context['object'] = 'tool'
            context.update(content.genBaseLoggedIn(request))
            return render_to_response("dne.html", context)
        owner = toolUtil.getToolOwner(toolObj)
        name = toolUtil.getToolName(toolObj)
        description = toolUtil.getToolDescription(toolObj)
        tags = toolUtil.getToolTags(toolObj)
        borrower = toolUtil.getToolBorrower(toolObj)
        condition = toolUtil.getToolConditionReadable(toolObj)
        available = toolUtil.isToolAvailable(toolObj)
        actions = actionUtil.getProfileAction(profileUtil.getProfileFromUser(request.user))
        actionBorrowRequest = None
        actionReturnRequest = None
        requesterProfile = None
        for action in actions:
            if action.tool == toolObj:
                if action.currrentState == "userBorrowRequest" or action.currrentState == "acceptDecline":
                    actionBorrowRequest = action
                if action.currrentState == "markedReturned" or action.currrentState == "confirmReturned":
                    actionReturnRequest = action
        if actionBorrowRequest:
            pendingBorrowRequest = True
            requesterProfile = actionBorrowRequest.requester
        else:
            pendingBorrowRequest = False
        if actionReturnRequest:
            pendingReturnRequest = True
        else:
            pendingReturnRequest = False
        if profileUtil.getProfileFromUser(request.user) == owner:
            ownedByUser = True
        else:
            ownedByUser = False
        meetsMinRep = (profileUtil.getReputation(profileUtil.getProfileFromUser(request.user)) >= toolObj.minimumReputation)
        profileObj = (profileUtil.getProfileFromUser(request.user))
        canBorrow = profileObj.canBorrow
        context = {}
        context.update(csrf(request))
        context['tool'] = toolObj
        context['name'] = name #TODO change to toolName
        context['owner'] = owner
        context['description'] = description
        context['tags'] = tags
        context['currentProfile'] = profileObj
        context['borrower'] = borrower
        context['requester'] = requesterProfile
        context['condition'] = condition
        context['available'] = available
        context['ownedByUser'] = ownedByUser
        context['meetsMin'] = meetsMinRep
        context['pendingBorrowRequest'] = pendingBorrowRequest
        context['pendingReturnRequest'] = pendingReturnRequest
        context['canBorrow'] = canBorrow
        context.update(content.genBaseLoggedIn(request))
        if contextArg:
            context.update(contextArg)
        return render_to_response('tool_page.html', context)