Commit 78f95bf9 authored by Michal Čihař's avatar Michal Čihař

Move search helper functions to helper module

parent 3314a1df
...@@ -31,11 +31,13 @@ from django.db.models import Q ...@@ -31,11 +31,13 @@ from django.db.models import Q
from weblate.trans.models import SubProject, Unit, Suggestion, Change, Comment from weblate.trans.models import SubProject, Unit, Suggestion, Change, Comment
from weblate.trans.checks import CHECKS from weblate.trans.checks import CHECKS
from weblate.trans.forms import ( from weblate.trans.forms import (
TranslationForm, UploadForm, SimpleUploadForm, ExtraUploadForm, SearchForm, TranslationForm, UploadForm, SimpleUploadForm, ExtraUploadForm,
MergeForm, AutoForm, ReviewForm, MergeForm, AutoForm, ReviewForm,
AntispamForm, CommentForm AntispamForm, CommentForm
) )
from weblate.trans.views.helper import get_translation from weblate.trans.views.helper import (
get_translation, parse_search_url, bool2str
)
from weblate.trans.util import join_plural from weblate.trans.util import join_plural
from weblate.accounts.models import Profile, send_notification_email from weblate.accounts.models import Profile, send_notification_email
...@@ -52,71 +54,6 @@ class FixedFileWrapper(FileWrapper): ...@@ -52,71 +54,6 @@ class FixedFileWrapper(FileWrapper):
return self return self
def bool2str(val):
if val:
return 'on'
return ''
def parse_search_url(request):
# Check where we are
rqtype = request.REQUEST.get('type', 'all')
direction = request.REQUEST.get('dir', 'forward')
pos = request.REQUEST.get('pos', '-1')
try:
pos = int(pos)
except:
pos = -1
# Pre-process search form
if request.method == 'POST':
search_form = SearchForm(request.POST)
else:
search_form = SearchForm(request.GET)
if search_form.is_valid():
search_query = search_form.cleaned_data['q']
search_type = search_form.cleaned_data['search']
if search_type == '':
search_type = 'ftx'
search_source = search_form.cleaned_data['src']
search_target = search_form.cleaned_data['tgt']
search_context = search_form.cleaned_data['ctx']
# Sane defaults
if not search_context and not search_source and not search_target:
search_source = True
search_target = True
search_url = '&q=%s&src=%s&tgt=%s&ctx=%s&search=%s' % (
search_query,
bool2str(search_source),
bool2str(search_target),
bool2str(search_context),
search_type,
)
else:
search_query = ''
search_type = 'ftx'
search_source = True
search_target = True
search_context = False
search_url = ''
if 'date' in request.REQUEST:
search_url += '&date=%s' % request.REQUEST['date']
return (
rqtype,
direction,
pos,
search_query,
search_type,
search_source,
search_target,
search_context,
search_url
)
def get_filter_name(rqtype, search_query): def get_filter_name(rqtype, search_query):
''' '''
Returns name of current filter. Returns name of current filter.
......
...@@ -22,6 +22,7 @@ Helper methods for views. ...@@ -22,6 +22,7 @@ Helper methods for views.
''' '''
from weblate.trans.models import Project, SubProject, Translation from weblate.trans.models import Project, SubProject, Translation
from weblate.trans.forms import SearchForm
from django.shortcuts import get_object_or_404 from django.shortcuts import get_object_or_404
...@@ -90,3 +91,68 @@ def get_project_translation(request, project=None, subproject=None, lang=None): ...@@ -90,3 +91,68 @@ def get_project_translation(request, project=None, subproject=None, lang=None):
# Return tuple # Return tuple
return project, subproject, translation return project, subproject, translation
def bool2str(val):
if val:
return 'on'
return ''
def parse_search_url(request):
# Check where we are
rqtype = request.REQUEST.get('type', 'all')
direction = request.REQUEST.get('dir', 'forward')
pos = request.REQUEST.get('pos', '-1')
try:
pos = int(pos)
except:
pos = -1
# Pre-process search form
if request.method == 'POST':
search_form = SearchForm(request.POST)
else:
search_form = SearchForm(request.GET)
if search_form.is_valid():
search_query = search_form.cleaned_data['q']
search_type = search_form.cleaned_data['search']
if search_type == '':
search_type = 'ftx'
search_source = search_form.cleaned_data['src']
search_target = search_form.cleaned_data['tgt']
search_context = search_form.cleaned_data['ctx']
# Sane defaults
if not search_context and not search_source and not search_target:
search_source = True
search_target = True
search_url = '&q=%s&src=%s&tgt=%s&ctx=%s&search=%s' % (
search_query,
bool2str(search_source),
bool2str(search_target),
bool2str(search_context),
search_type,
)
else:
search_query = ''
search_type = 'ftx'
search_source = True
search_target = True
search_context = False
search_url = ''
if 'date' in request.REQUEST:
search_url += '&date=%s' % request.REQUEST['date']
return (
rqtype,
direction,
pos,
search_query,
search_type,
search_source,
search_target,
search_context,
search_url
)
...@@ -27,7 +27,7 @@ from django.contrib.auth.decorators import permission_required ...@@ -27,7 +27,7 @@ from django.contrib.auth.decorators import permission_required
from django.db.models import Q from django.db.models import Q
from weblate.trans.models import Unit, Check, Dictionary from weblate.trans.models import Unit, Check, Dictionary
from weblate.trans.views.edit import parse_search_url from weblate.trans.views.helper import parse_search_url
from weblate.trans.decorators import any_permission_required from weblate.trans.decorators import any_permission_required
from weblate.trans.views.helper import ( from weblate.trans.views.helper import (
get_project, get_subproject, get_translation get_project, get_subproject, get_translation
......
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