def checkup_get_defaults(user, checkup_data): df = DataFetcher(user.get_profile()) symbols = [d['ticker'] for d in checkup_data] try: # TODO don't need any news df.fetch_all_data(tickers=symbols) finally: df.destroy() mapper = { 'sector_rank': 'ibd_industry_rank', 'eps': 'ibd_earnings_percentage_lastquarter', 'eps_rank': 'ibd_eps_rank', 'sales_percentage': 'ibd_sales_percentage_lastquarter', 'total_float': 'finviz_float', } for item in checkup_data: try: stock = Stock.objects.get(ticker=item['ticker']) except Stock.DoesNotExist: continue for field, value in mapper.iteritems(): if field not in item or not item[field]: item[field] = getattr(stock, value)
def index(request): build_list_form = BuildListForm() symbols = process_build_list(request) stocks = get_or_create_stocks(symbols) profile = request.user.get_profile() df = DataFetcher(profile) try: df.fetch_all_data(tickers=symbols) finally: df.destroy() # TODO: sucks that we have to fetch twice, but need to make # sure we pick up updates from above fetches stocks = get_or_create_stocks(symbols) ctx = RequestContext(request, { 'build_list_form': build_list_form, 'stocks': stocks, }) return render_to_response('reporter/index.html', ctx)