Browse Source

Trades: pagination

master
Denis Tereshkin 9 years ago
parent
commit
6e4f9c92f3
  1. 7
      templates/dashboard/trades.html
  2. 17
      views.py

7
templates/dashboard/trades.html

@ -40,4 +40,11 @@ @@ -40,4 +40,11 @@
</tr>
{% endfor %}
</table>
<nav aria-label="Page navigation">
<ul class="pagination">
{% for p in page_range %}
<li{% if p == page_num %} class="active"{% endif %}><a href="{% url 'trades_index'%}?page={{p}}">{{ p }}</a></li>
{% endfor %}
</ul>
</nav>
{% endblock %}

17
views.py

@ -7,6 +7,7 @@ from django.contrib import messages @@ -7,6 +7,7 @@ from django.contrib import messages
from django.contrib.auth.decorators import login_required
from django.db import transaction
from django.contrib.auth import authenticate, login, logout
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
from .models import RobotInstance, Trade, ClosedTrade
from .forms import NewTradeForm, ClosedTradeFilterForm, LoginForm
@ -123,11 +124,25 @@ def trades_index(request): @@ -123,11 +124,25 @@ def trades_index(request):
now = datetime.datetime.utcnow()
new_trade_form = NewTradeForm(initial={'timestamp' : now})
trades = Trade.objects.all().order_by('-timestamp')
paginator = Paginator(trades, 25)
try:
page_num = int(request.GET.get('page'))
except:
page_num = 1
try:
trades = paginator.page(page_num)
except PageNotAnInteger:
trades = paginator.page(1)
except EmptyPage:
trades = paginator.page(1)
template = loader.get_template('dashboard/trades.html')
context = {
'trades' : trades,
'new_trade_form' : new_trade_form,
'user' : request.user
'user' : request.user,
'page_num' : page_num,
'page_range' : paginator.page_range
}
return HttpResponse(template.render(context, request))

Loading…
Cancel
Save