Example #1
0
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)
Example #2
0
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)