Commit 8c48e7bd authored by Michal Čihař's avatar Michal Čihař

Simply search parsing code

parent 4b53cfd1
...@@ -191,30 +191,29 @@ class UnitManager(models.Manager): ...@@ -191,30 +191,29 @@ class UnitManager(models.Manager):
).exclude(user=user) ).exclude(user=user)
return self.filter(id__in=changes.values_list('unit__id', flat=True)) return self.filter(id__in=changes.values_list('unit__id', flat=True))
def search(self, search_type, search_query, def search(self, params):
search_source=True, search_context=True, search_target=True):
''' '''
High level wrapper for searching. High level wrapper for searching.
''' '''
if search_type in ('exact', 'substring'): if params['search'] in ('exact', 'substring'):
queries = [] queries = []
if search_type == 'exact': if params['search'] == 'exact':
modifier = '' modifier = ''
else: else:
modifier = '__icontains' modifier = '__icontains'
if search_source: if params['src']:
queries.append('source') queries.append('source')
if search_target: if params['tgt']:
queries.append('target') queries.append('target')
if search_context: if params['ctx']:
queries.append('context') queries.append('context')
query = reduce( query = reduce(
lambda q, value: lambda q, value:
q | Q(**{'%s%s' % (value, modifier): search_query}), q | Q(**{'%s%s' % (value, modifier): params['q']}),
queries, queries,
Q() Q()
) )
...@@ -222,10 +221,10 @@ class UnitManager(models.Manager): ...@@ -222,10 +221,10 @@ class UnitManager(models.Manager):
return self.filter(query) return self.filter(query)
else: else:
return self.fulltext( return self.fulltext(
search_query, params['q'],
search_source, params['src'],
search_context, params['ctx'],
search_target params['tgt']
) )
def fulltext(self, query, source=True, context=True, translation=True, def fulltext(self, query, source=True, context=True, translation=True,
......
...@@ -123,11 +123,7 @@ def search(request): ...@@ -123,11 +123,7 @@ def search(request):
if search_form.is_valid(): if search_form.is_valid():
units = Unit.objects.search( units = Unit.objects.search(
search_form.cleaned_data['search'], search_form.cleaned_data,
search_form.cleaned_data['q'],
search_form.cleaned_data['src'],
search_form.cleaned_data['ctx'],
search_form.cleaned_data['tgt'],
).select_related( ).select_related(
'translation', 'translation',
) )
......
...@@ -134,11 +134,7 @@ def search(translation, request): ...@@ -134,11 +134,7 @@ def search(translation, request):
elif search_form.is_valid(): elif search_form.is_valid():
# Apply search conditions # Apply search conditions
allunits = translation.unit_set.search( allunits = translation.unit_set.search(
search_form.cleaned_data['search'], search_form.cleaned_data,
search_form.cleaned_data['q'],
search_form.cleaned_data['src'],
search_form.cleaned_data['ctx'],
search_form.cleaned_data['tgt'],
) )
search_query = search_form.cleaned_data['q'] search_query = search_form.cleaned_data['q']
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment