Add ability to search detailed training record

This commit is contained in:
2022-01-02 14:52:07 +00:00
parent 046d0e461d
commit 747575b968
2 changed files with 14 additions and 2 deletions

View File

@@ -7,7 +7,8 @@
{% load colour_from_depth from tags %}
{% block content %}
<div class="row">
<p class="text-muted text-right">Search by supervisor name, item name or item ID</p>{% include 'partials/list_search.html' %}
<div class="row pt-2">
<div class="col">
<div class="table-responsive">
<table class="table table-striped table-sm">

View File

@@ -47,7 +47,18 @@ class TraineeItemDetail(generic.ListView):
template_name = 'trainee_item_list.html'
def get_queryset(self):
return models.Trainee.objects.get(pk=self.kwargs['pk']).qualifications_obtained.all().order_by('-date').select_related('item', 'trainee', 'supervisor', 'item__category')
q = self.request.GET.get('q', "")
filter = Q(item__name__icontains=q) | Q(supervisor__first_name__icontains=q) | Q(supervisor__last_name__icontains=q)
try:
q = q.split('.')
filter = filter | Q(item__category__reference_number=int(q[0]), item__reference_number=int(q[1]))
except: # noqa
# not an integer
pass
return models.Trainee.objects.get(pk=self.kwargs['pk']).qualifications_obtained.all().filter(filter).order_by('-date').select_related('item', 'trainee', 'supervisor', 'item__category')
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)