Private
Public Access
1
0

Search form and pagination

This commit is contained in:
Sander Roosendaal
2016-11-22 13:58:32 +01:00
parent f57efd0166
commit 4fb1bee385
6 changed files with 151 additions and 8 deletions

View File

@@ -5,6 +5,8 @@ from rowingdata import cumcpdata,histodata
from rowingdata import rowingdata as rrdata
from django.utils import timezone
from bokeh.plotting import figure, ColumnDataSource, Figure,curdoc
from bokeh.models import CustomJS,Slider
from bokeh.charts import Histogram,HeatMap
@@ -570,7 +572,6 @@ def interactive_cum_flex_chart2(theworkouts,promember=0,
datadf = dataprep.smalldataprep(theworkouts,xparam,yparam1,yparam2)
axlabels = {
'time': 'Time',
'distance': 'Distance (m)',
@@ -631,11 +632,16 @@ def interactive_cum_flex_chart2(theworkouts,promember=0,
return ['','<p>No non-zero data in selection</p>','','']
datadf['x1'] = datadf.ix[:,xparam]
# datadf['x1'] = datadf.ix[:,xparam]
datadf = datadf.rename(columns={
xparam:'x1',
yparam1:'y1',
})
datadf['y1'] = datadf.ix[:,yparam1]
# datadf['y1'] = datadf.ix[:,yparam1]
if yparam2 != 'None':
datadf['y2'] = datadf.ix[:,yparam2]
# datadf['y2'] = datadf.ix[:,yparam2]
datadf = datadf.rename(columns={yparam2:'y2'})
else:
datadf['y2'] = datadf['y1']
@@ -674,6 +680,8 @@ def interactive_cum_flex_chart2(theworkouts,promember=0,
datadf.copy()
)
print "jet",timezone.now()
# Add hover to this comma-separated string and see what changes
if (promember==1):
TOOLS = 'save,pan,box_zoom,wheel_zoom,reset,tap,resize,crosshair'

View File

@@ -30,6 +30,14 @@
<th>Weight Category:</th><td>{{ workout.weightcategory }}</td>
</tr>
</table>
<form id="searchform" action="."
method="get" accept-charset="utf-8">
<button class="button blue small" type="submit">
Search
</button>
<input class="searchfield" id="searchbox" name="q" type="text" placeholder="Search">
</form>
</div>
<div id="comparison" class="grid_8 omega">
@@ -73,5 +81,21 @@
{% else %}
<p> No workouts found </p>
{% endif %}
<div class="grid_2 prefix_5 suffix_1 omega">
<span class="button gray small">
{% if workouts.has_previous %}
<a class="wh" href="?page={{ workouts.previous_page_number }}">&lt;</a>
{% endif %}
<span>
Page {{ workouts.number }} of {{ workouts.paginator.num_pages }}.
</span>
{% if workouts.has_next %}
<a class="wh" href="?page={{ workouts.next_page_number }}">&gt;</a>
{% endif %}
</span>
</div>
</div>
{% endblock %}

View File

@@ -6,6 +6,14 @@
{% block content %}
<h1>Recent Graphs</h1>
<form id="searchform" action="."
method="get" accept-charset="utf-8">
<button class="button blue small" type="submit">
Search
</button>
<input class="searchfield" id="searchbox" name="q" type="text" placeholder="Search">
</form>
{% if graphs1 %}
<div class="grid_1 alpha">
<p>&nbsp;</p>

View File

@@ -5,8 +5,10 @@
{% block title %}Workouts{% endblock %}
{% block content %}
<div class="grid_12">
<h1>My Workouts</h1>
{% if workouts %}
{% if workouts %}
<table width="70%" class="listtable">
<thead>
<tr>
@@ -49,4 +51,35 @@
{% else %}
<p> No workouts found </p>
{% endif %}
</div>
<div class="grid_6 alpha">
<form id="searchform" action="."
method="get" accept-charset="utf-8">
<div class="grid_3 alpha">
<input class="searchfield" id="searchbox" name="q" type="text" placeholder="Search">
</div>
<div class="grid_1 suffix_2 omega">
<button class="button blue small" type="submit">
Search
</button>
</div>
</form>
</div>
<div class="grid_2 prefix_4 omega">
<span class="button gray small">
{% if workouts.has_previous %}
<a class="wh" href="?page={{ workouts.previous_page_number }}">&lt;</a>
{% endif %}
<span>
Page {{ workouts.number }} of {{ workouts.paginator.num_pages }}.
</span>
{% if workouts.has_next %}
<a class="wh" href="?page={{ workouts.next_page_number }}">&gt;</a>
{% endif %}
</span>
</div>
{% endblock %}

View File

@@ -1,11 +1,14 @@
import time
import operator
from django.views.generic.base import TemplateView
from django.db.models import Q
from django.shortcuts import render
from django.http import HttpResponse, HttpResponseRedirect
from django.contrib.auth import authenticate, login, logout
from rowers.forms import LoginForm,DocumentsForm,UploadOptionsForm
from django.core.urlresolvers import reverse
from django.template import RequestContext
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
from django.conf import settings
from django.utils.datastructures import MultiValueDictKeyError
from django.utils import timezone,translation
@@ -1772,6 +1775,25 @@ def workouts_view(request,message='',successmessage=''):
# successmessage = 'New Workouts have been created from email'
workouts = Workout.objects.filter(user=r).order_by("-date", "-starttime")
query = request.GET.get('q')
if query:
query_list = query.split()
workouts = workouts.filter(
reduce(operator.and_,
(Q(name__icontains=q) for q in query_list)) |
reduce(operator.and_,
(Q(notes__icontains=q) for q in query_list))
)
paginator = Paginator(workouts,25) # show 25 workouts per page
page = request.GET.get('page')
try:
workouts = paginator.page(page)
except PageNotAnInteger:
workouts = paginator.page(1)
except EmptyPage:
workouts = paginator.page(paginator.num_pages)
return render(request, 'list_workouts.html',
{'workouts': workouts,
@@ -1787,6 +1809,27 @@ def workout_comparison_list(request,id=0,message='',successmessage=''):
r = Rower.objects.get(user=request.user)
u = User.objects.get(id=r.user.id)
workouts = Workout.objects.filter(user=r).order_by("-date", "-starttime").exclude(id=id)
query = request.GET.get('q')
if query:
query_list = query.split()
workouts = workouts.filter(
reduce(operator.and_,
(Q(name__icontains=q) for q in query_list)) |
reduce(operator.and_,
(Q(notes__icontains=q) for q in query_list))
)
paginator = Paginator(workouts,15) # show 25 workouts per page
page = request.GET.get('page')
try:
workouts = paginator.page(page)
except PageNotAnInteger:
workouts = paginator.page(1)
except EmptyPage:
workouts = paginator.page(paginator.num_pages)
row = Workout.objects.get(id=id)
return render(request, 'comparison_list.html',
@@ -3942,6 +3985,16 @@ def graphs_view(request):
try:
r = Rower.objects.get(user=request.user)
workouts = Workout.objects.filter(user=r).order_by("-date", "-starttime")
query = request.GET.get('q')
if query:
query_list = query.split()
workouts = workouts.filter(
reduce(operator.and_,
(Q(name__icontains=q) for q in query_list)) |
reduce(operator.and_,
(Q(notes__icontains=q) for q in query_list))
)
g = GraphImage.objects.filter(workout__in=workouts).order_by("-creationdatetime")
if (len(g)<=5):
return render(request, 'list_graphs.html',

View File

@@ -17,14 +17,19 @@ a {
text-decoration: none;
}
a:visited { color:#000; }
a:link { color: #000; }
a:hover {
text-decoration: underline;
}
h1 {
/* font-family: Georgia, serif; */
font-weight: normal;
@@ -472,3 +477,15 @@ a.button {
position: relative;
z-index: 10;
}
a.wh:link {
color: #e9e9e9;
}
a.wh:visited {
color: #e9e9e9;
}
a.wh:hover {
color: #e9e9e9;
}