def get_resources(request): try: user = _validate_and_get_geniuser(request) except LoggedInButFailedGetGeniUserError: return _show_failed_get_geniuser_page(request) # the request must be via POST. if not, bounce user back to My Vessels page if not request.method == 'POST': return myvessels(request) # try and grab form from POST. if it can't, bounce user back to My Vessels page get_form = forms.gen_get_form(user, request.POST) action_summary = "" action_detail = "" keep_get_form = False if get_form.is_valid(): vessel_num = get_form.cleaned_data['num'] vessel_type = get_form.cleaned_data['env'] try: acquired_vessels = interface.acquire_vessels(user, vessel_num, vessel_type) except UnableToAcquireResourcesError, err: action_summary = "Unable to acquire vessels at this time." action_detail += str(err) keep_get_form = True except InsufficientUserResourcesError: action_summary = "Unable to acquire vessels: you do not have enough vessel credits to fulfill this request." keep_get_form = True
def get_resources(request): try: user = _validate_and_get_geniuser(request) except LoggedInButFailedGetGeniUserError: return _show_failed_get_geniuser_page(request) # the request must be via POST. if not, bounce user back to My Vessels page if not request.method == 'POST': return myvessels(request) # try and grab form from POST. if it can't, bounce user back to My Vessels page get_form = forms.gen_get_form(user, request.POST) action_summary = "" action_detail = "" keep_get_form = False if get_form.is_valid(): vessel_num = get_form.cleaned_data['num'] vessel_type = get_form.cleaned_data['env'] try: acquired_vessels = interface.acquire_vessels(user, vessel_num, vessel_type) except UnableToAcquireResourcesError, err: action_summary = "Unable to acquire vessels at this time." if str(err) == 'Acquiring NAT vessels is currently disabled. ': link = """<a href="https://seattle.cs.washington.edu/blog">blog</a>""" action_detail += str(err) + 'Please check our '+ link +' to see when we have re-enabled NAT vessels.' else: action_detail += str(err) keep_get_form = True except InsufficientUserResourcesError: action_summary = "Unable to acquire vessels: you do not have enough vessel credits to fulfill this request." keep_get_form = True
def myvessels(request, get_form=False, action_summary="", action_detail="", remove_summary=""): try: user = _validate_and_get_geniuser(request) except LoggedInButFailedGetGeniUserError: return _show_failed_get_geniuser_page(request) # get_form of None means don't show the form to acquire vessels. if interface.get_available_vessel_credits(user) == 0: get_form = None elif get_form is False: get_form = forms.gen_get_form(user) # shared vessels that are used by others but which belong to this user (TODO) shvessels = [] # this user's used vessels my_vessels_raw = interface.get_acquired_vessels(user) my_vessels = interface.get_vessel_infodict_list(my_vessels_raw) # this user's number of donations, max vessels, total vessels and free credits my_donations = interface.get_donations(user) my_max_vessels = interface.get_available_vessel_credits(user) my_free_vessel_credits = interface.get_free_vessel_credits_amount(user) my_total_vessel_credits = interface.get_total_vessel_credits(user) for vessel in my_vessels: if vessel["expires_in_seconds"] <= 0: # We shouldn't ever get here, but just in case, let's handle it. vessel["expires_in"] = "Expired" else: days = vessel["expires_in_seconds"] / (3600 * 24) hours = vessel["expires_in_seconds"] / 3600 % 24 minutes = vessel["expires_in_seconds"] / 60 % 60 vessel["expires_in"] = "%dd %dh %dm" % (days, hours, minutes) # return the used resources page constructed from a template return direct_to_template( request, 'control/myvessels.html', { 'username': user.username, 'num_vessels': len(my_vessels), 'my_vessels': my_vessels, 'sh_vessels': shvessels, 'get_form': get_form, 'action_summary': action_summary, 'action_detail': action_detail, 'my_donations': len(my_donations), 'my_max_vessels': my_max_vessels, 'free_vessel_credits': my_free_vessel_credits, 'total_vessel_credits': my_total_vessel_credits, 'remove_summary': remove_summary })
def myvessels(request, get_form=False, action_summary="", action_detail="", remove_summary=""): try: user = _validate_and_get_geniuser(request) except LoggedInButFailedGetGeniUserError: return _show_failed_get_geniuser_page(request) # get_form of None means don't show the form to acquire vessels. if interface.get_available_vessel_credits(user) == 0: get_form = None elif get_form is False: get_form = forms.gen_get_form(user) # shared vessels that are used by others but which belong to this user (TODO) shvessels = [] # this user's used vessels my_vessels_raw = interface.get_acquired_vessels(user) my_vessels = interface.get_vessel_infodict_list(my_vessels_raw) # this user's number of donations, max vessels, total vessels and free credits my_donations = interface.get_donations(user) my_max_vessels = interface.get_available_vessel_credits(user) my_free_vessel_credits = interface.get_free_vessel_credits_amount(user) my_total_vessel_credits = interface.get_total_vessel_credits(user) for vessel in my_vessels: if vessel["expires_in_seconds"] <= 0: # We shouldn't ever get here, but just in case, let's handle it. vessel["expires_in"] = "Expired" else: days = vessel["expires_in_seconds"] / (3600 * 24) hours = vessel["expires_in_seconds"] / 3600 % 24 minutes = vessel["expires_in_seconds"] / 60 % 60 vessel["expires_in"] = "%dd %dh %dm" % (days, hours, minutes) # return the used resources page constructed from a template return direct_to_template(request, 'control/myvessels.html', {'username' : user.username, 'num_vessels' : len(my_vessels), 'my_vessels' : my_vessels, 'sh_vessels' : shvessels, 'get_form' : get_form, 'action_summary' : action_summary, 'action_detail' : action_detail, 'my_donations' : len(my_donations), 'my_max_vessels' : my_max_vessels, 'free_vessel_credits' : my_free_vessel_credits, 'total_vessel_credits' : my_total_vessel_credits, 'remove_summary' : remove_summary})