diff --git a/forms.py b/forms.py new file mode 100644 index 0000000..1def45d --- /dev/null +++ b/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) + diff --git a/templates/dashboard/trades.html b/templates/dashboard/trades.html index de9287f..8a1b064 100644 --- a/templates/dashboard/trades.html +++ b/templates/dashboard/trades.html @@ -1,7 +1,16 @@ {% extends "dashboard/base.html" %} +{% load bootstrap3 %} {% load mathfilters %} {% block content %} +
+
+
+ {% bootstrap_form new_trade_form %} + {% bootstrap_button button_type='submit' content='Submit' %} +
+
+
@@ -13,7 +22,7 @@ - + {% for trade in trades %} @@ -26,7 +35,7 @@ - + {% endfor %}
TimeVolume Strategy ID Signal ID New trade...
{{ trade.volume|stringformat:".3f"}} {{ trade.volumeCurrency }} {{ trade.strategyId }} {{ trade.signalId }}
diff --git a/urls.py b/urls.py index 3f307eb..3faf375 100644 --- a/urls.py +++ b/urls.py @@ -8,5 +8,6 @@ urlpatterns = [ url(r'^add_instance$', views.add_instance, name='add_instance'), url(r'^delete_instance/(?P[^/]+)$', views.delete_instance, name='delete_instance'), url(r'^trades/$', views.trades_index, name='trades_index'), + url(r'^delete_trade/(?P[^/]+)$', views.delete_trade, name='delete_trade'), ] diff --git a/views.py b/views.py index 9bba457..994750d 100644 --- a/views.py +++ b/views.py @@ -6,6 +6,7 @@ from django.urls import reverse from django.contrib import messages from .models import RobotInstance, Trade +from .forms import NewTradeForm import redis import json import datetime @@ -71,9 +72,18 @@ def delete_instance(request, instance_id): return HttpResponseRedirect(reverse('overview')) def trades_index(request): + now = datetime.datetime.utcnow() + new_trade_form = NewTradeForm(initial={'timestamp' : now}) trades = Trade.objects.all() template = loader.get_template('dashboard/trades.html') context = { - 'trades' : trades + 'trades' : trades, + 'new_trade_form' : new_trade_form } 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')) +