Merge branch 'release/v18.8.9'
This commit is contained in:
@@ -19,7 +19,7 @@
|
|||||||
|
|
||||||
<h1>Force Curve Analysis for {{ rower.user.first_name }} {{ rower.user.last_name }}</h1>
|
<h1>Force Curve Analysis for {{ rower.user.first_name }} {{ rower.user.last_name }}</h1>
|
||||||
|
|
||||||
<form enctype="multipart/form-data" method="post">
|
|
||||||
<ul class="main-content">
|
<ul class="main-content">
|
||||||
{% if the_div %}
|
{% if the_div %}
|
||||||
<li class="grid_4">
|
<li class="grid_4">
|
||||||
@@ -28,6 +28,18 @@
|
|||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
<li class="grid_4">
|
||||||
|
<form method="get">
|
||||||
|
{{ searchform.as_table }}
|
||||||
|
{{ dateform.as_table }}
|
||||||
|
<input name='filter' type='submit' value="Filter">
|
||||||
|
</form>
|
||||||
|
</li>
|
||||||
|
<li class="grid_4">
|
||||||
|
<form enctype="multipart/form-data" method="post">
|
||||||
|
{% csrf_token %}
|
||||||
|
<input name='instroke_compare' type="submit" value="Compare Selected">
|
||||||
|
</li>
|
||||||
{% if analyses %}
|
{% if analyses %}
|
||||||
{% for analysis in analyses %}
|
{% for analysis in analyses %}
|
||||||
<li class="grid_4 divlines" id="analysis_{{ analysis.id }}">
|
<li class="grid_4 divlines" id="analysis_{{ analysis.id }}">
|
||||||
@@ -84,14 +96,11 @@
|
|||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% else %}
|
{% else %}
|
||||||
<li class="grid_4">
|
<li class="grid_4">
|
||||||
<p>You have not saved any analyses for {{ rower.user.first_name }}</p>
|
<p>No analyses found for {{ rower.user.first_name }}</p>
|
||||||
</li>
|
</li>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
</form>
|
||||||
</ul>
|
</ul>
|
||||||
{% csrf_token %}
|
|
||||||
<input name='instroke_compare' type="submit" value="Compare Selected">
|
|
||||||
</form>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
@@ -19,7 +19,6 @@
|
|||||||
|
|
||||||
<h1>In-Stroke Analysis for {{ rower.user.first_name }} {{ rower.user.last_name }}</h1>
|
<h1>In-Stroke Analysis for {{ rower.user.first_name }} {{ rower.user.last_name }}</h1>
|
||||||
|
|
||||||
<form enctype="multipart/form-data" method="post">
|
|
||||||
<ul class="main-content">
|
<ul class="main-content">
|
||||||
{% if the_div %}
|
{% if the_div %}
|
||||||
<li class="grid_4">
|
<li class="grid_4">
|
||||||
@@ -28,6 +27,18 @@
|
|||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
<li class="grid_4">
|
||||||
|
<form method="get">
|
||||||
|
{{ searchform.as_table }}
|
||||||
|
{{ dateform.as_table }}
|
||||||
|
<input name='filter' type='submit' value="Filter">
|
||||||
|
</form>
|
||||||
|
</li>
|
||||||
|
<li class="grid_4">
|
||||||
|
<form enctype="multipart/form-data" method="post">
|
||||||
|
{% csrf_token %}
|
||||||
|
<input name='instroke_compare' type="submit" value="Compare Selected">
|
||||||
|
</li>
|
||||||
{% if analyses %}
|
{% if analyses %}
|
||||||
{% for analysis in analyses %}
|
{% for analysis in analyses %}
|
||||||
<li class="grid_4 divlines" id="analysis_{{ analysis.id }}">
|
<li class="grid_4 divlines" id="analysis_{{ analysis.id }}">
|
||||||
@@ -84,13 +95,11 @@
|
|||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% else %}
|
{% else %}
|
||||||
<li class="grid_4">
|
<li class="grid_4">
|
||||||
<p>You have not saved any analyses for {{ rower.user.first_name }}</p>
|
<p>No analyses found for {{ rower.user.first_name }}</p>
|
||||||
</li>
|
</li>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
</form>
|
||||||
</ul>
|
</ul>
|
||||||
{% csrf_token %}
|
|
||||||
<input name='instroke_compare' type="submit" value="Compare Selected">
|
|
||||||
</form>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1966,7 +1966,44 @@ class SavedAnalysisView(UserPassesTestMixin, View):
|
|||||||
self.r = getrequestrower(request, userid=self.userid)
|
self.r = getrequestrower(request, userid=self.userid)
|
||||||
if self.r is not None and not is_coach_user(self.request.user, self.r.user):
|
if self.r is not None and not is_coach_user(self.request.user, self.r.user):
|
||||||
raise PermissionDenied("You are not allowed to see analyses for this user")
|
raise PermissionDenied("You are not allowed to see analyses for this user")
|
||||||
|
|
||||||
self.analyses = self.analysis_class.objects.filter(rower=self.r).order_by("-date","-id")
|
self.analyses = self.analysis_class.objects.filter(rower=self.r).order_by("-date","-id")
|
||||||
|
query = request.GET.get('q')
|
||||||
|
startdate = request.GET.get('startdate')
|
||||||
|
enddate = request.GET.get('enddate')
|
||||||
|
self.searchform = SearchForm()
|
||||||
|
if query:
|
||||||
|
query_list = query.split()
|
||||||
|
if self.analysis_class == InStrokeAnalysis:
|
||||||
|
self.analyses = self.analyses.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)) |
|
||||||
|
reduce(operator.and_,
|
||||||
|
(Q(metric__icontains=q) for q in query_list)) |
|
||||||
|
reduce(operator.and_,
|
||||||
|
(Q(workout__name__icontains=q) for q in query_list))
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
self.analyses = self.analyses.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)) |
|
||||||
|
reduce(operator.and_,
|
||||||
|
(Q(workout__name__icontains=q) for q in query_list))
|
||||||
|
)
|
||||||
|
self.searchform = SearchForm(initial={'q': query})
|
||||||
|
date_initial = {}
|
||||||
|
if startdate:
|
||||||
|
self.analyses = self.analyses.filter(date__gte=startdate)
|
||||||
|
date_initial['startdate'] = startdate
|
||||||
|
if enddate:
|
||||||
|
self.analyses = self.analyses.filter(date__lte=enddate)
|
||||||
|
date_initial['enddate'] = enddate
|
||||||
|
self.dateform = DateRangeForm(initial=date_initial)
|
||||||
|
|
||||||
|
|
||||||
def get(self, request, *args, **kwargs):
|
def get(self, request, *args, **kwargs):
|
||||||
return render(request, self.template_name,
|
return render(request, self.template_name,
|
||||||
@@ -1977,6 +2014,8 @@ class SavedAnalysisView(UserPassesTestMixin, View):
|
|||||||
'the_script': self.script,
|
'the_script': self.script,
|
||||||
'the_div': self.div,
|
'the_div': self.div,
|
||||||
'selected': self.selected,
|
'selected': self.selected,
|
||||||
|
'searchform': self.searchform,
|
||||||
|
'dateform': self.dateform,
|
||||||
})
|
})
|
||||||
|
|
||||||
def post(self, request, *args, **kwargs):
|
def post(self, request, *args, **kwargs):
|
||||||
@@ -1989,7 +2028,7 @@ class SavedAnalysisView(UserPassesTestMixin, View):
|
|||||||
request.session['analyses'] = [a.id for a in self.selected]
|
request.session['analyses'] = [a.id for a in self.selected]
|
||||||
# now should redirect to analysis
|
# now should redirect to analysis
|
||||||
self.script, self.div = self.chart(self.selected)
|
self.script, self.div = self.chart(self.selected)
|
||||||
|
|
||||||
return render(request, self.template_name,
|
return render(request, self.template_name,
|
||||||
{
|
{
|
||||||
'breadcrumbs': self.breadcrumbs,
|
'breadcrumbs': self.breadcrumbs,
|
||||||
@@ -1998,6 +2037,8 @@ class SavedAnalysisView(UserPassesTestMixin, View):
|
|||||||
'the_script': self.script,
|
'the_script': self.script,
|
||||||
'the_div': self.div,
|
'the_div': self.div,
|
||||||
'selected': self.selected,
|
'selected': self.selected,
|
||||||
|
'searchform': self.searchform,
|
||||||
|
'dateform': self.dateform,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user