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)
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)
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)
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, })
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}