Skip to content

Commit

Permalink
Added: search options (contains, starts with, ends with) for people a…
Browse files Browse the repository at this point in the history
…nd org search (results also expanded to 40 from 10)
  • Loading branch information
awf-dbca committed Jul 24, 2024
1 parent ffae88f commit d2b4596
Show file tree
Hide file tree
Showing 2 changed files with 55 additions and 12 deletions.
45 changes: 36 additions & 9 deletions wildlifecompliance/components/users/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -1110,17 +1110,44 @@ def get(self, request, format=None):
return Response()

search_term = request.GET.get('term', '')
search_option = request.GET.get('option', 'contains')
if search_term:

data_transform = []
user_data = EmailUser.objects.annotate(
search_name=Concat('first_name', Value(' '), 'last_name')
).annotate(
legal_search_name=Concat('legal_first_name', Value(' '), 'legal_last_name')
).filter(
Q(search_name__icontains=search_term) |
Q(legal_search_name__icontains=search_term) |
Q(email__icontains=search_term)
)[:10]
user_data = []
if search_option == 'contains':
user_data = EmailUser.objects.annotate(
search_name=Concat('first_name', Value(' '), 'last_name')
).annotate(
legal_search_name=Concat('legal_first_name', Value(' '), 'legal_last_name')
).filter(
Q(search_name__icontains=search_term) |
Q(legal_search_name__icontains=search_term) |
Q(email__icontains=search_term)
)[:40]

if search_option == 'starts_with':
user_data = EmailUser.objects.annotate(
search_name=Concat('first_name', Value(' '), 'last_name')
).annotate(
legal_search_name=Concat('legal_first_name', Value(' '), 'legal_last_name')
).filter(
Q(search_name__istartswith=search_term) |
Q(legal_search_name__istartswith=search_term) |
Q(email__istartswith=search_term)
)[:40]

if search_option == 'ends_with':
user_data = EmailUser.objects.annotate(
search_name=Concat('first_name', Value(' '), 'last_name')
).annotate(
legal_search_name=Concat('legal_first_name', Value(' '), 'legal_last_name')
).filter(
Q(search_name__iendswith=search_term) |
Q(legal_search_name__iendswith=search_term) |
Q(email__iendswith=search_term)
)[:40]

for email_user in user_data:
if email_user.dob:
text = '{} {} (DOB: {})'.format(get_first_name(email_user),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,22 @@
</h3>
</div>
<div class="panel-body collapse in" :id="kBody">
<div class="row">
<div class="form-group">
<div class="form-group">
<div class="row">
<div class="form-check form-check-inline col-md-3">
<input type="radio" value="contains" v-model="search_option" checked/>
<label class="form-check-label">Contains</label>
</div>
<div class="form-check form-check-inline col-md-3">
<input type="radio" value="starts_with" v-model="search_option"/>
<label class="form-check-label">Starts with</label>
</div>
<div class="form-check form-check-inline col-md-3">
<input type="radio" value="ends_with" v-model="search_option"/>
<label class="form-check-label">Ends with</label>
</div>
</div>
<div class="row">
<!--label for="person_lookup" class="col-sm-3 control-label">Search</label-->
<div class="col-sm-6">
<select
Expand All @@ -33,7 +47,7 @@
/>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
Expand Down Expand Up @@ -184,6 +198,7 @@ export default {
cBody: 'cBody' + vm._uid,
kBody: 'kBody' + vm._uid,
loading: [],
search_option: "contains",
searchKeywords: [],
hasSearchKeywords: false,
selected_organisation:'',
Expand Down Expand Up @@ -309,6 +324,7 @@ export default {
console.log(params)
var query = {
term: params.term,
option: vm.search_option,
type: 'public',
}
return query;
Expand Down

0 comments on commit d2b4596

Please sign in to comment.