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 @@
</tr> </tr>
{% endfor %} {% endfor %}
</table> </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 %} {% endblock %}

17
views.py

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

Loading…
Cancel
Save