Exemplo n.º 1
0
def watch_stock(request, watch=True):
    portfolio = session.get_active_portfolio(request)
    stock = request.POST['stock']
    # TODO error checking
    if watch:
        portfolio.watch_stock(stock)
    else:
        portfolio.unwatch_stock(stock)
        
    return redirect("/user/" + request.user.username)
Exemplo n.º 2
0
def make_order(request):
    form = OrderForm(request.POST)
    if form.is_valid():
        portfolio = session.get_active_portfolio(request)
        data = form.cleaned_data
        if data['order_type'] == 'STOP_LOSS':
            portfolio.create_order(data['stock'], data['trigger_price'], data['order_type'])
        elif data['order_type'] == 'LIMIT':
            portfolio.create_order(data['stock'], data['trigger_price'], data['order_type'], data['trade_type'], data['quantity'])

    return redirect("/user/" + request.user.username)
Exemplo n.º 3
0
def trade_stock(request):
    form = TransactionForm(request.POST)
    if form.is_valid():
        portfolio = session.get_active_portfolio(request)
        data = form.cleaned_data
        if data['transaction'] == 'BUY':
            portfolio.purchase_stock(data['stock'], data['quantity'])
            # messages.add_message(request, messages.INFO, "Hypothetically, you've bought some stock.")

        elif data['transaction'] == 'SELL':
            portfolio.sell_stock(data['stock'], data['quantity'])
        
        return redirect("/user/" + request.user.username)
Exemplo n.º 4
0
def detail(request, username):
    """
    Renders a detailed profile view of a single user.
    
    @param username: The username of the profile to render
    @renders: users/detail.html
    """
    profile = get_object_or_404(User, username__exact=username)
    active_portfolios = profile.get_profile().get_active_portfolios()

    if profile == request.user and session.active_portfolio(request):
        portfolio = session.get_active_portfolio(request)
    else:
        portfolio = None

    return render(request, 'users/detail.html', {
        'profile': profile,
        'portfolio': portfolio, 
        'active_portfolios': active_portfolios, 
    })
Exemplo n.º 5
0
def portfolio_bar(context):
    portfolio = session.get_active_portfolio(context['request'])
    active_portfolios = context['request'].user.get_profile().get_active_portfolios()
    return {'portfolio': portfolio, 'active_portfolios': active_portfolios, 'return_address': context['request'].path}