Browse Source

Trades view: filtration

master
Denis Tereshkin 8 years ago
parent
commit
eeb625d775
  1. 11
      templates/dashboard/trades.html
  2. 19
      views.py

11
templates/dashboard/trades.html

@ -1,8 +1,19 @@ @@ -1,8 +1,19 @@
{% extends "dashboard/base.html" %}
{% load static %}
{% load bootstrap3 %}
{% load mathfilters %}
{% block content %}
<div class="panel-header">
<a href="#closed_trades_filter_form" role="button" data-toggle="collapse">Apply filter...</a>
</div>
<div class="panel-body panel-collapse collapse" id="closed_trades_filter_form">
<form action="{% url 'trades_index' %}" method="GET">
{% csrf_token %}
{% bootstrap_form closed_trades_filter_form %}
{% bootstrap_button button_type='submit' content='Submit' %}
</form>
</div>
<div class="panel panel-default panel-collapse collapse" id="new_trade_form">
<div class="panel-body col-xs-4">
<form action="{% url 'add_trade' %}" method="POST">

19
views.py

@ -130,6 +130,23 @@ def trades_index(request): @@ -130,6 +130,23 @@ def trades_index(request):
now = datetime.datetime.utcnow()
new_trade_form = NewTradeForm(initial={'timestamp' : now})
trades = Trade.objects.all().order_by('-timestamp')
form_filter = ClosedTradeFilterForm(request.GET)
if form_filter.is_valid():
d = form_filter.cleaned_data
if len(d['strategies']) > 0:
trades = trades.filter(strategyId__in=list(d['strategies']))
if len(d['accounts']) > 0:
trades = trades.filter(account__in=list(d['accounts']))
if d['startdate'] is not None:
trades = trades.filter(timestamp__gte=d['startdate'])
if d['enddate'] is not None:
trades = trades.filter(timestamp__lte=d['enddate'])
else:
now = datetime.date.today()
form_filter = ClosedTradeFilterForm()
paginator = Paginator(trades, 25)
try:
page_num = int(request.GET.get('page'))
@ -142,9 +159,11 @@ def trades_index(request): @@ -142,9 +159,11 @@ def trades_index(request):
except EmptyPage:
trades = paginator.page(1)
template = loader.get_template('dashboard/trades.html')
context = {
'trades' : trades,
'closed_trades_filter_form' : form_filter,
'new_trade_form' : new_trade_form,
'user' : request.user,
'page_num' : page_num,

Loading…
Cancel
Save