def ba_from_request(request, ba=None): """ Given a GET request with location info, return balancing authority name and model queryset. Location info can be st (state), or ba (balancing authority). Future support for lat+lng, zipcode, country code, etc. Returns tuple of (string, QuerySet) """ if ba: # use supplied ba ba = ba.upper() else: # try state state = request.GET.get('st', None) if state: state = state.upper() ba = BALANCING_AUTHORITIES.get(state, None) # try BA else: ba = request.GET.get('ba', None) if ba: ba = ba.upper() # got nothing try: return ba, BA_MODELS[ba].objects.all() except: logging.debug('returning null BA') return ba, None