예제 #1
0
def home():
    N_STOCKS = 20 # number of stocks to retrieve
    if not account.user_is_logged_in():
        return redirect(url_for("login"))

    # Get all stock tickers
    tickers = Stock.get_all_tickers()

    # Get default sorting metric and order 
    order = None
    metric = request.args.get("metric", "recs")
    order_arg = request.args.get("order", "lowhigh")
    if order_arg == "lowhigh":
        order = True
    elif order_arg == "highlow":
        order = False

    # Get sorted stocks
    stocks = None
    if metric == "alpha":
        stocks = Stock.get_stocks(N_STOCKS, order)
    elif metric == "price":
        stocks = Stock.get_stocks_sorted_by_price(N_STOCKS, order)
    elif metric == "pe":
        stocks = Stock.get_stocks_sorted_by_pe(N_STOCKS, order)
    elif metric == "risk":
        stocks = Stock.get_stocks_sorted_by_risk(N_STOCKS, order)
    elif metric == "recs":
        stocks = Stock.get_recommendations()
    elif metric == "sustainability":
        stocks = Stock.get_stocks_sorted_by_sustainability(N_STOCKS, order)
    elif metric == "socialgood":
        stocks = Stock.get_stocks_sorted_by_socialgood(N_STOCKS, order)
    elif metric == "american":
        stocks = Stock.get_stocks_sorted_by_american(N_STOCKS, order)

    return render_template("home.html", tickers = tickers, stocks = stocks,
                           metric = metric, order = order,
                           has_recs = account.user_has_recommendations())