def portfolio(request): messages = [] results = dict() if request.method == 'POST': form = StockForm(request.POST) if form.is_valid(): Handle = form.cleaned_data['Handle'].upper() # messages=Update_database(Handle) result1 = Historical.objects.filter(Handle_id=Handle) if result1: result1 = result1.latest('Date') Name = SymbolInfo.objects.filter(Handle=Handle)[0].Name results = dict(Name=Name, Handle=result1.Handle_id, High=result1.High, Low=result1.Low, Volume=result1.Volume, Open=result1.Open) print results form = StockForm() return render(request, 'stocks/portfolio.html', { 'form': form, 'infos': [results] })
def historical(request): form = StockForm() if request.method == 'POST': form = StockForm(request.POST) if form.is_valid(): symbol = form.cleaned_data['Handle'].upper() data = get_historical_info(symbol) if data: book = xlwt.Workbook() sheet = book.add_sheet('Sheet') # print(data[0]._meta.get_fields()[0].name) fields = data[0]._meta.get_fields() for i, v in enumerate(fields): sheet.write(0, i, v.name) # print(i,v.name) for i, row in enumerate(data, start=1): # print(getattr(row, fields[0].name,None)) for j, v in enumerate(fields): # print(j,v) # print(str(getattr(row, v.name,None))) sheet.write(i, j, str(getattr(row, v.name, None))) response = HttpResponse(content_type='application/x-msexcel') response['Pragma'] = 'no-cache' response[ 'Content-disposition'] = 'attachment; filename=history.xls' book.save(response) return response return render(request, 'stocks/historical.html', {'form': form})
def lastUpdated(request): form = StockForm() result = [] Handle = "" message = [] if request.method == 'POST': form = StockForm(request.POST) if form.is_valid(): Handle = form.cleaned_data['Handle'].upper() #checking if cached copy of historical data exists in_database = Historical.objects.filter(Handle=Handle).count() if in_database: temp = Historical.objects.filter(Handle=Handle).latest('Date') result = [temp] else: temp = SymbolInfo.objects.filter(Handle=Handle) if len(temp): temp1 = [temp] if temp.__class__ == dict else temp result = [ dict(Handle_id=temp[0].Handle, Date=temp[0].DateStamp) ] else: message.append("Symbol %s does not exist." % Handle) # print result.Date # temp1 = [temp] if temp.__class__ == else temp # print temp1.Date return render(request, 'stocks/lastUpdated.html', { 'form': form, 'infos': result, 'message': message })
def update(request, stock_id): stock = get_object_or_404(Stock, pk=stock_id) if request.method == "POST": form = StockForm(request.POST, instance=stock) if form.is_valid(): past_stock = Stock.objects.get(pk=stock_id) updated_stock = form.save() History.updated_history(past_stock, updated_stock, request.user) messages.success(request, "Stock updated.") else: form = StockForm(instance=stock) data = {"form": form, "stock": stock} return render_to_response("stocks/update.html", data, context_instance=RequestContext(request))
def symbolInfo(request): form = StockForm() result = [] response = [] if request.method == 'POST': form = StockForm(request.POST) if form.is_valid(): Handle = form.cleaned_data['Handle'].upper() result = SymbolInfo.objects.filter(Handle=Handle) # response = get_news_feed(Handle) print response return render(request, 'stocks/symbolInfo.html', { 'form': form, 'infos': result, 'response': "o" })
def UpdateDatabase(request): form = StockForm() result = [] infos = [] messages = [] Handle = "" if request.method == 'POST': form = StockForm(request.POST) if form.is_valid(): Handle = form.cleaned_data['Handle'].upper() messages = Update_database(Handle) return render(request, 'stocks/UpdateDatabase.html', { 'form': form, 'infos': result, 'messages': messages })
def create(request): if request.method == "POST": form = StockForm(request.POST) if form.is_valid(): stock = form.save() History.created_history(stock, request.user) messages.success(request, "Stock created.") if "create" in request.POST: return redirect("stocks:update", stock.pk) else: return redirect("stocks:create") else: form = StockForm() data = {"form": form} return render_to_response("stocks/create.html", data, context_instance=RequestContext(request))
def historical(request): form = StockForm() if request.method == 'POST': form = StockForm(request.POST) if form.is_valid(): symbol = form.cleaned_data['symbol'].upper() data = get_historical_info(symbol) book = xlwt.Workbook() sheet = book.add_sheet('Sheet') for i, v in enumerate(data[0].keys()): sheet.write(0, i, v) for i, row in enumerate(data, start=1): for j, v in enumerate(row.values()): sheet.write(i, j, v) response = HttpResponse(content_type='application/x-msexcel') response['Pragma'] = 'no-cache' response['Content-disposition'] = 'attachment; filename=history.xls' book.save(response) return response return render(request, 'stocks/historical.html', {'form': form})
def portfolio(request): user = request.user if request.method == 'POST': form = StockForm(request.POST) if form.is_valid(): symbol = form.cleaned_data['symbol'].upper() is_exist = Stock.objects.filter(user=user, symbol=symbol).count() if not is_exist: Stock(user=user, symbol=symbol).save() form = StockForm() infos = [] stocks = Stock.objects.filter(user=user).values_list('pk', 'symbol') if stocks: symbols = [s[1] for s in stocks] data = get_current_info(symbols) infos = [data] if data.__class__ == dict else data for i, v in enumerate(infos): v.update({'pk': stocks[i][0]}) return render(request, 'stocks/portfolio.html', {'form': form, 'infos': infos})
def update(request, stock_id): stock = get_object_or_404(Stock, pk=stock_id) if request.method == 'POST': form = StockForm(request.POST, instance=stock) if form.is_valid(): past_stock = Stock.objects.get(pk=stock_id) updated_stock = form.save() History.updated_history(past_stock, updated_stock, request.user) messages.success(request, 'Stock updated.') else: form = StockForm(instance=stock) data = { 'form': form, 'stock': stock, } return render_to_response( 'stocks/update.html', data, context_instance=RequestContext(request), )
def create(request): if request.method == 'POST': form = StockForm(request.POST) if form.is_valid(): stock = form.save() History.created_history(stock, request.user) messages.success(request, 'Stock created.') if 'create' in request.POST: return redirect('stocks:update', stock.pk) else: return redirect('stocks:create') else: form = StockForm() data = { 'form': form, } return render_to_response( 'stocks/create.html', data, context_instance=RequestContext(request), )