示例#1
0
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]
    })
示例#2
0
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})
示例#3
0
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
    })
示例#4
0
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))
示例#5
0
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"
    })
示例#6
0
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
    })
示例#7
0
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))
示例#8
0
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})
示例#9
0
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})
示例#10
0
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),
    )
示例#11
0
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),
    )