diff --git a/packages/views/search.py b/packages/views/search.py index b377817..fd05a89 100644 --- a/packages/views/search.py +++ b/packages/views/search.py @@ -18,6 +18,7 @@ class PackageSearchForm(forms.Form): name = forms.CharField(required=False) desc = forms.CharField(required=False) q = forms.CharField(required=False) + exact = forms.BooleanField(required=False) sort = forms.CharField(required=False, widget=forms.HiddenInput()) maintainer = forms.ChoiceField(required=False) packager = forms.ChoiceField(required=False) @@ -84,7 +85,10 @@ def parse_form(form, packages): if form.cleaned_data['q']: query = form.cleaned_data['q'] - q = Q(pkgname__icontains=query) | Q(pkgdesc__icontains=query) + if form.cleaned_data['exact']: + q = Q(pkgname=query) + else: + q = Q(pkgname__icontains=query) | Q(pkgdesc__icontains=query) packages = packages.filter(q) return packages diff --git a/templates/packages/search.html b/templates/packages/search.html index d312c37..4ef5fac 100644 --- a/templates/packages/search.html +++ b/templates/packages/search.html @@ -31,6 +31,9 @@
{{ search_form.q.errors }} {{ search_form.q }}
+
{{ search_form.exact.errors }} + {{ search_form.exact }}
{{ search_form.maintainer.errors }} {{ search_form.maintainer}}