コード例 #1
0
ファイル: views.py プロジェクト: voszp/wger
def search(request):
    '''
    Searches for ingredients.

    This format is currently used by the ingredient search autocompleter
    '''
    q = request.GET.get('term', None)
    results = []
    if not q:
        return Response(results)

    languages = load_ingredient_languages(request)

    # Perform the search
    q = request.GET.get('term', '')
    ingredients = Ingredient.objects.filter(
        name__icontains=q,
        language__in=languages,
        status__in=Ingredient.INGREDIENT_STATUS_OK)

    results = []
    for ingredient in ingredients:
        ingredient_json = {
            'id': ingredient.id,
            'name': ingredient.name,
            'value': ingredient.name
        }
        results.append(ingredient_json)

    return Response(results)
コード例 #2
0
def search(request):
    """
    Searches for ingredients.

    This format is currently used by the ingredient search autocompleter
    """
    q = request.GET.get('term', None)
    results = []
    json_response = {}
    if q:
        languages = load_ingredient_languages(request)
        ingredients = Ingredient.objects.filter(
            name__icontains=q,
            language__in=languages,
            status=Ingredient.STATUS_ACCEPTED)

        for ingredient in ingredients:
            ingredient_json = {
                'value': ingredient.name,
                'data': {
                    'id': ingredient.id,
                    'name': ingredient.name,
                }
            }
            results.append(ingredient_json)
        json_response['suggestions'] = results

    return Response(json_response)
コード例 #3
0
ファイル: views.py プロジェクト: jamessimas/wger
def search(request):
    '''
    Searches for ingredients.

    This format is currently used by the ingredient search autocompleter
    '''
    q = request.GET.get('term', None)
    results = []
    if not q:
        return Response(results)

    languages = load_ingredient_languages(request)

    # Perform the search
    q = request.GET.get('term', '')
    ingredients = Ingredient.objects.filter(name__icontains=q,
                                            language__in=languages,
                                            status__in=Ingredient.INGREDIENT_STATUS_OK)

    results = []
    for ingredient in ingredients:
        ingredient_json = {'id': ingredient.id,
                           'name': ingredient.name,
                           'value': ingredient.name}
        results.append(ingredient_json)

    return Response(results)
コード例 #4
0
ファイル: views.py プロジェクト: peterwade153/wg-rogue-one
def search(request):
    '''
    Searches for ingredients.

    This format is currently used by the ingredient search autocompleter
    '''
    q = request.GET.get('term', None)
    results = []
    json_response = {}
    if q:
        languages = load_ingredient_languages(request)
        ingredients = Ingredient.objects.filter(name__icontains=q,
                                                language__in=languages,
                                                status__in=Ingredient.INGREDIENT_STATUS_OK)

        for ingredient in ingredients:
            ingredient_json = {
                'value': ingredient.name,
                'data': {
                    'id': ingredient.id,
                    'name': ingredient.name,
                }
            }
            results.append(ingredient_json)
        json_response['suggestions'] = results

    return Response(json_response)
コード例 #5
0
    def get_queryset(self):
        """
        Filter the ingredients the user will see by its language

        (the user can also want to see ingredients in English, in addition to his
        native language, see load_ingredient_languages)
        """
        languages = load_ingredient_languages(self.request)
        return (Ingredient.objects.accepted().filter(language__in=languages).only('id', 'name'))
コード例 #6
0
    def get_queryset(self):
        '''
        Filter the ingredients the user will see by its language

        (the user can also want to see ingredients in English, in addition to his
        native language, see load_ingredient_languages)
        '''
        languages = load_ingredient_languages(self.request)
        return (Ingredient.objects.filter(language__in=languages).filter(
            status__in=Ingredient.INGREDIENT_STATUS_OK).only('id', 'name'))
コード例 #7
0
ファイル: ingredient.py プロジェクト: itsdtr/wger
    def get_queryset(self):
        '''
        Filter the ingredients the user will see by its language

        (the user can also want to see ingredients in English, in addition to his
        native language, see load_ingredient_languages)
        '''
        languages = load_ingredient_languages(self.request)
        return (Ingredient.objects.filter(language__in=languages)
                                  .filter(status__in=Ingredient.INGREDIENT_STATUS_OK)
                                  .only('id', 'name'))
コード例 #8
0
    def get_queryset(self):
        '''
        Filter the ingredients the user will see by its language

        (the user can also want to see ingredients in English, in addition to his
        native language, see load_ingredient_languages)
        '''
        languages = load_ingredient_languages(self.request)
        language_code = self.request.GET.get('language', None)
        language = None
        if language_code:
            language = Language.objects.filter(short_name=language_code).first().id
            return (Ingredient.objects.filter(language=language)
                                      .filter(status__in=Ingredient.INGREDIENT_STATUS_OK)
                                      .only('id', 'name'))
        return (Ingredient.objects.filter(language__in=languages)
                                  .filter(status__in=Ingredient.INGREDIENT_STATUS_OK)
                                  .only('id', 'name'))
コード例 #9
0
ファイル: ingredient.py プロジェクト: seraphyn/wger
def search(request):
    '''
    Search for an exercise, return the result as a JSON list or as HTML page, depending on how
    the function was invoked
    '''

    # Filter the ingredients the user will see by its language
    # (the user can also want to see ingredients in English, see load_ingredient_languages)
    languages = load_ingredient_languages(request)

    # Perform the search
    q = request.GET.get('term', '')
    ingredients = Ingredient.objects.filter(
        name__icontains=q,
        language__in=languages,
        status__in=Ingredient.INGREDIENT_STATUS_OK)

    # AJAX-request, this comes from the autocompleter. Create a list and send it back as JSON
    if request.is_ajax():

        results = []
        for ingredient in ingredients:
            ingredient_json = {}
            ingredient_json['id'] = ingredient.id
            ingredient_json['name'] = ingredient.name
            ingredient_json['value'] = ingredient.name
            results.append(ingredient_json)
        data = json.dumps(results)

        # Return the results to the server
        mimetype = 'application/json'
        return HttpResponse(data, mimetype)

    # Usual search (perhaps JS disabled), present the results as normal HTML page
    else:
        template_data = {}
        template_data.update(csrf(request))
        template_data['ingredients'] = ingredients
        template_data['search_term'] = q
        return render_to_response('ingredient/search.html',
                                  template_data,
                                  context_instance=RequestContext(request))
コード例 #10
0
ファイル: ingredient.py プロジェクト: seraphyn/wger
def search(request):
    '''
    Search for an exercise, return the result as a JSON list or as HTML page, depending on how
    the function was invoked
    '''

    # Filter the ingredients the user will see by its language
    # (the user can also want to see ingredients in English, see load_ingredient_languages)
    languages = load_ingredient_languages(request)

    # Perform the search
    q = request.GET.get('term', '')
    ingredients = Ingredient.objects.filter(name__icontains=q,
                                            language__in=languages,
                                            status__in=Ingredient.INGREDIENT_STATUS_OK)

    # AJAX-request, this comes from the autocompleter. Create a list and send it back as JSON
    if request.is_ajax():

        results = []
        for ingredient in ingredients:
            ingredient_json = {}
            ingredient_json['id'] = ingredient.id
            ingredient_json['name'] = ingredient.name
            ingredient_json['value'] = ingredient.name
            results.append(ingredient_json)
        data = json.dumps(results)

        # Return the results to the server
        mimetype = 'application/json'
        return HttpResponse(data, mimetype)

    # Usual search (perhaps JS disabled), present the results as normal HTML page
    else:
        template_data = {}
        template_data.update(csrf(request))
        template_data['ingredients'] = ingredients
        template_data['search_term'] = q
        return render_to_response('ingredient/search.html',
                                  template_data,
                                  context_instance=RequestContext(request))