Esempio n. 1
0
def search_source(request, pk):
    obj = get_screenshot(request, pk)
    translation = obj.component.source_translation

    units = translation.unit_set.filter(parse_query(request.POST.get("q", "")))

    return search_results(200, obj, units)
Esempio n. 2
0
    def search(
        self, params, project=None, component=None, language=None, translation=None
    ):
        """High level wrapper for searching."""
        if translation is not None:
            component = translation.component
            language = translation.language
        if component is not None:
            project = component.project

        base = self.prefetch()
        if params['type'] != 'all':
            base = self.filter_type(
                params['type'], project, language, params.get('ignored', False)
            )

        if params.get('date') or params.get('exclude_user') or params.get('only_user'):
            base = base.review(
                params.get('date'),
                params.get('exclude_user'),
                params.get('only_user'),
                project,
                component,
                language,
                translation,
            )

        if 'lang' in params and params['lang']:
            base = base.filter(translation__language__code__in=params['lang'])

        if 'q' not in params or not params['q']:
            return base

        return base.filter(parse_query(params['q']))
Esempio n. 3
0
def search_source(request, pk):
    obj = get_screenshot(request, pk)
    translation = obj.translation

    form = SearchForm(request.POST)
    if not form.is_valid():
        return search_results(400, obj)
    return search_results(
        200, obj,
        translation.unit_set.filter(parse_query(form.cleaned_data["q"])))
Esempio n. 4
0
def search_source(request, pk):
    obj = get_screenshot(request, pk)
    try:
        translation = obj.component.translation_set.all()[0]
    except IndexError:
        return search_results(500, obj)

    units = translation.unit_set.filter(parse_query(request.POST.get('q', '')))

    return search_results(200, obj, units)
Esempio n. 5
0
 def search(self, query, **context):
     """High level wrapper for searching."""
     return self.filter(parse_query(query, **context))
Esempio n. 6
0
 def assert_query(self, string, expected):
     result = parse_query(string)
     self.assertEqual(result, expected)
     self.assertFalse(Unit.objects.filter(result).exists())
Esempio n. 7
0
 def test_quotes(self):
     self.assert_query("'", parse_query('''"'"'''))
     self.assert_query('"', parse_query("""'"'"""))
     self.assert_query("source:'", parse_query('''source:"'"'''))
     self.assert_query('source:"', parse_query("""source:'"'"""))
Esempio n. 8
0
 def test_url(self):
     self.assert_query("https://weblate.org/", parse_query("'https://weblate.org/'"))
Esempio n. 9
0
 def test_non_quoted_strings(self):
     self.assert_query(
         "%(count)s word", parse_query("'%(count)s' 'word'"),
     )
     self.assert_query("{actor}", parse_query("'{actor}'"))
Esempio n. 10
0
 def search(self, query):
     """High level wrapper for searching."""
     return self.prefetch().filter(parse_query(query))
Esempio n. 11
0
 def assert_query(self, string, expected, exists=False, **context):
     result = parse_query(string, **context)
     self.assertEqual(result, expected)
     self.assertEqual(Unit.objects.filter(result).exists(), exists)