Private
Public Access
1
0

date and search filters on stored analyses

This commit is contained in:
Sander Roosendaal
2022-11-14 21:07:30 +01:00
parent b5757eaebe
commit a63d55a0e5
2 changed files with 39 additions and 5 deletions

View File

@@ -19,7 +19,6 @@
<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">
{% if the_div %}
<li class="grid_4">
@@ -28,6 +27,18 @@
</div>
</li>
{% 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 %}
{% for analysis in analyses %}
<li class="grid_4 divlines" id="analysis_{{ analysis.id }}">
@@ -87,10 +98,8 @@
<p>You have not saved any analyses for {{ rower.user.first_name }}</p>
</li>
{% endif %}
</form>
</ul>
{% csrf_token %}
<input name='instroke_compare' type="submit" value="Compare Selected">
</form>

View File

@@ -1966,7 +1966,30 @@ class SavedAnalysisView(UserPassesTestMixin, View):
self.r = getrequestrower(request, userid=self.userid)
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")
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()
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))
)
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):
return render(request, self.template_name,
@@ -1977,6 +2000,8 @@ class SavedAnalysisView(UserPassesTestMixin, View):
'the_script': self.script,
'the_div': self.div,
'selected': self.selected,
'searchform': self.searchform,
'dateform': self.dateform,
})
def post(self, request, *args, **kwargs):
@@ -1989,7 +2014,7 @@ class SavedAnalysisView(UserPassesTestMixin, View):
request.session['analyses'] = [a.id for a in self.selected]
# now should redirect to analysis
self.script, self.div = self.chart(self.selected)
return render(request, self.template_name,
{
'breadcrumbs': self.breadcrumbs,