Browse Source

New trade form

master
Denis Tereshkin 9 years ago
parent
commit
3cd5858c80
  1. 14
      forms.py
  2. 13
      templates/dashboard/trades.html
  3. 1
      urls.py
  4. 12
      views.py

14
forms.py

@ -0,0 +1,14 @@
from django import forms
class NewTradeForm(forms.Form):
timestamp = forms.DateTimeField()
account = forms.CharField(max_length=256)
security = forms.CharField(max_length=256)
operation = forms.ChoiceField(choices=[('buy', 'Buy'), ('sell', 'Sell')])
price = forms.DecimalField()
quantity = forms.IntegerField()
volume = forms.DateField()
volumeCurrency = forms.CharField(max_length=10)
strategyId = forms.CharField(max_length=64)
signalId = forms.CharField(max_length=64)

13
templates/dashboard/trades.html

@ -1,7 +1,16 @@
{% extends "dashboard/base.html" %} {% extends "dashboard/base.html" %}
{% load bootstrap3 %}
{% load mathfilters %} {% load mathfilters %}
{% block content %} {% block content %}
<div class="panel panel-default panel-collapse collapse" id="new_trade_form">
<div class="panel-body">
<form action="#" method="POST">
{% bootstrap_form new_trade_form %}
{% bootstrap_button button_type='submit' content='Submit' %}
</form>
</div>
</div>
<table class="table table-condensed"> <table class="table table-condensed">
<tr> <tr>
<td>Time</td> <td>Time</td>
@ -13,7 +22,7 @@
<td>Volume</td> <td>Volume</td>
<td>Strategy ID</td> <td>Strategy ID</td>
<td>Signal ID</td> <td>Signal ID</td>
<td></td> <td> <a href="#new_trade_form" role="button" data-toggle="collapse">New trade...</a> </td>
</tr> </tr>
{% for trade in trades %} {% for trade in trades %}
<tr> <tr>
@ -26,7 +35,7 @@
<td>{{ trade.volume|stringformat:".3f"}} {{ trade.volumeCurrency }}</td> <td>{{ trade.volume|stringformat:".3f"}} {{ trade.volumeCurrency }}</td>
<td>{{ trade.strategyId }}</td> <td>{{ trade.strategyId }}</td>
<td>{{ trade.signalId }}</td> <td>{{ trade.signalId }}</td>
<td><button type="button" class="btn btn-danger" onclick="if(window.confirm('Confirm deletion')) { document.location.href = '/delete_trade?id={{ trade.pk }}'}; return false;">Delete</button></td> <td><button type="button" class="btn btn-danger" onclick="if(window.confirm('Confirm deletion')) { document.location.href = '{% url 'delete_trade' trade_id=trade.pk %}'}; return false;">Delete</button></td>
</tr> </tr>
{% endfor %} {% endfor %}
</table> </table>

1
urls.py

@ -8,5 +8,6 @@ urlpatterns = [
url(r'^add_instance$', views.add_instance, name='add_instance'), url(r'^add_instance$', views.add_instance, name='add_instance'),
url(r'^delete_instance/(?P<instance_id>[^/]+)$', views.delete_instance, name='delete_instance'), url(r'^delete_instance/(?P<instance_id>[^/]+)$', views.delete_instance, name='delete_instance'),
url(r'^trades/$', views.trades_index, name='trades_index'), url(r'^trades/$', views.trades_index, name='trades_index'),
url(r'^delete_trade/(?P<trade_id>[^/]+)$', views.delete_trade, name='delete_trade'),
] ]

12
views.py

@ -6,6 +6,7 @@ from django.urls import reverse
from django.contrib import messages from django.contrib import messages
from .models import RobotInstance, Trade from .models import RobotInstance, Trade
from .forms import NewTradeForm
import redis import redis
import json import json
import datetime import datetime
@ -71,9 +72,18 @@ def delete_instance(request, instance_id):
return HttpResponseRedirect(reverse('overview')) return HttpResponseRedirect(reverse('overview'))
def trades_index(request): def trades_index(request):
now = datetime.datetime.utcnow()
new_trade_form = NewTradeForm(initial={'timestamp' : now})
trades = Trade.objects.all() trades = Trade.objects.all()
template = loader.get_template('dashboard/trades.html') template = loader.get_template('dashboard/trades.html')
context = { context = {
'trades' : trades 'trades' : trades,
'new_trade_form' : new_trade_form
} }
return HttpResponse(template.render(context, request)) return HttpResponse(template.render(context, request))
def delete_trade(request, trade_id):
trade = get_object_or_404(Trade, pk=trade_id)
trade.delete()
return HttpResponseRedirect(reverse('trades_index'))

Loading…
Cancel
Save