From ac90cbb9143d0138aec4e642416deff255fafb69 Mon Sep 17 00:00:00 2001 From: Jorran de Wit <jorrandewit@outlook.com> Date: Tue, 18 Dec 2018 22:10:19 +0100 Subject: [PATCH] Add first version fuzzy search for referee selections --- submissions/forms.py | 5 ++++- .../migrations/0051_auto_20181218_2201.py | 17 +++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 submissions/migrations/0051_auto_20181218_2201.py diff --git a/submissions/forms.py b/submissions/forms.py index f65ec848a..6055a553a 100644 --- a/submissions/forms.py +++ b/submissions/forms.py @@ -7,6 +7,7 @@ import re from django import forms from django.conf import settings +from django.contrib.postgres.search import TrigramSimilarity from django.db import transaction from django.db.models import Q from django.forms.formsets import ORDERING_FIELD_NAME @@ -913,7 +914,9 @@ class RefereeSearchForm(forms.Form): 'placeholder': 'Search for a referee in the SciPost Profiles database'})) def search(self): - return Profile.objects.filter(last_name__icontains=self.cleaned_data['last_name']) + return Profile.objects.annotate( + similarity=TrigramSimilarity('last_name', self.cleaned_data['last_name']), + ).filter(similarity__gt=0.3).order_by('-similarity') class ConsiderRefereeInvitationForm(forms.Form): diff --git a/submissions/migrations/0051_auto_20181218_2201.py b/submissions/migrations/0051_auto_20181218_2201.py new file mode 100644 index 000000000..ba283d598 --- /dev/null +++ b/submissions/migrations/0051_auto_20181218_2201.py @@ -0,0 +1,17 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.4 on 2018-12-18 21:01 +from __future__ import unicode_literals + +from django.db import migrations +from django.contrib.postgres.operations import TrigramExtension + + +class Migration(migrations.Migration): + + dependencies = [ + ('submissions', '0050_merge_20181207_1008'), + ] + + operations = [ + TrigramExtension(), + ] -- GitLab