예제 #1
0
class CourseApiSearchRequest(ListingSchema):
    id = search_fields.FilterField(
        NumberTermSchema,
        doc_template='docs/generic/fields/number_term_field.html',
        doc_base_url='/courses',
        doc_field_name='ID',
    )
    state = search_fields.FilterField(
        CourseStateTermsSchema,
        doc_template='docs/generic/fields/string_term_field.html',
        doc_base_url='/courses',
        doc_field_name='state',
    )
    sort = search_fields.SortField(
        sort_fields={
            'id': 'id',
            'start': 'start',
            'participants_number': 'participants_number',
        },
        doc_base_url='/courses',
    )

    class Meta:
        strict = True
        ordered = True
예제 #2
0
class MeetingApiSearchRequest(ListingSchema):
    id = search_fields.FilterField(
        NumberTermSchema,
        doc_template='docs/generic/fields/number_term_field.html',
        doc_base_url='/meetings',
        doc_field_name='ID',
    )
    sort = search_fields.SortField(
        sort_fields={
            'id': 'id',
            'start_date': 'start_date',
        },
        doc_base_url='/meetings',
        missing='id',
    )
    state = search_fields.FilterField(
        MeetingStateTermsSchema,
        doc_template='docs/generic/fields/string_term_field.html',
        doc_base_url='/meetings',
        doc_field_name='state',
    )

    class Meta:
        strict = True
        ordered = True
class RegionsFilterSchema(ExtSchema):
    id = search_fields.FilterField(NumberTermSchema,
                                   search_path='regions',
                                   nested_search=True,
                                   query_field='regions.region_id')
    bbox = search_fields.FilterField(GeoShapeSchema,
                                     search_path='regions',
                                     nested_search=True,
                                     query_field='regions.bbox')
class ResourceFilterSchema(ExtSchema):
    id = search_fields.FilterField(NumberTermSchema,
                                   search_path='resource',
                                   nested_search=True,
                                   query_field='resource.id')
    title = search_fields.FilterField(StringMatchSchema,
                                      search_path='resource',
                                      nested_search=True,
                                      query_field='resource.title')

    class Meta:
        strict = True
예제 #5
0
class ResourceDatasetFilterField(ExtSchema):
    id = search_fields.FilterField(NumberTermSchema,
                                   search_path='dataset',
                                   nested_search=True,
                                   query_field='dataset.id',
                                   )
    title = search_fields.FilterField(StringMatchSchema,
                                      search_path='dataset',
                                      nested_search=True,
                                      query_field='dataset.title')

    class Meta:
        strict = True
예제 #6
0
class ApplicationApiSearchRequest(ListingSchema):
    id = search_fields.FilterField(
        NumberTermSchema,
        doc_template='docs/generic/fields/number_term_field.html',
        doc_base_url='/datasets',
        doc_field_name='ID')
    title = search_fields.FilterField(
        StringMatchSchema,
        doc_template='docs/generic/fields/string_match_field.html',
        doc_base_url='/datasets',
        doc_field_name='title',
        translated=True,
        search_path='title')
    notes = search_fields.FilterField(
        StringMatchSchema,
        doc_template='docs/generic/fields/string_match_field.html',
        doc_base_url='/datasets',
        doc_field_name='notes',
        translated=True,
        search_path='notes')

    tag = search_fields.FilterField(
        StringTermSchema,
        doc_template='docs/generic/fields/string_term_field.html',
        doc_base_url='/datasets',
        doc_field_name='tag',
        translated=True,
        search_path='tags',
        query_field='tags')

    q = search_fields.MultiMatchField(
        query_fields=['title^4', 'notes^2'],
        nested_query_fields={'datasets': [
            'title',
        ]})
    sort = search_fields.SortField(
        sort_fields={
            'id': 'id',
            'title': 'title.{lang}.sort',
            'modified': 'modified',
            'created': 'created'
        },
        doc_template='docs/generic/fields/sort_field.html',
        doc_base_url='/institutions',
        doc_field_name='sort')

    facet = search_fields.FacetField(ApplicationAggs)

    class Meta:
        strict = True
        ordered = True
예제 #7
0
class SourceFilterSchema(ExtSchema):
    title = fields.FilterField(StringMatchSchema,
                               search_path='source',
                               nested_search=True,
                               query_field='source.title')
    type = fields.FilterField(StringMatchSchema,
                              search_path='source',
                              nested_search=True,
                              query_field='source.type')
    update_frequency = fields.FilterField(
        StringMatchSchema,
        search_path='source',
        nested_search=True,
        query_field='source.update_frequency')

    class Meta:
        default_field = 'term'
class CategoriesFilterSchema(ExtSchema):
    id = search_fields.FilterField(NumberTermSchema,
                                   search_path='categories',
                                   nested_search=True,
                                   query_field='categories.id')

    class Meta:
        default_field = 'term'
class InstitutionFilterSchema(ExtSchema):
    id = search_fields.FilterField(NumberTermSchema,
                                   search_path='institution',
                                   nested_search=True,
                                   query_field='institution.id')

    class Meta:
        default_field = 'term'
class SearchHistoryApiSearchRequest(ListingSchema):
    id = search_fields.FilterField(
        NumberTermSchema,
        doc_template='docs/generic/fields/number_term_field.html',
        doc_base_url='/searchhistories',
        doc_field_name='ID',
    )
    url = search_fields.FilterField(
        StringMatchSchema,
        doc_template='docs/generic/fields/string_match_field.html',
        doc_base_url='/searchhistories',
        doc_field_name='url',
    )
    query_sentence = search_fields.FilterField(
        StringMatchSchema,
        doc_template='docs/generic/fields/string_match_field.html',
        doc_base_url='/searchhistories',
        doc_field_name='query_sentence',
    )
    modified = search_fields.FilterField(
        StringMatchSchema,
        query_field='modified',
        doc_template='docs/generic/fields/string_match_field.html',
        doc_base_url='/searchhistories',
        doc_field_name='modified',
    )
    q = search_fields.MultiMatchField(
        extra_fields=['query_sentence', 'url'],
        doc_template='docs/generic/fields/query_field.html',
        doc_base_url='/searchhistories',
        doc_field_name='q')
    sort = search_fields.SortField(
        sort_fields={
            'id': 'id',
            'query_sentence': 'query_sentence_keyword',
            'modified': 'modified',
            'user': '******',
        },
        doc_base_url='/searchhistories',
    )

    class Meta:
        strict = True
        ordered = True
예제 #11
0
class LogEntryApiSearchRequest(HistoryApiSearchRequest):
    action = search_fields.FilterField(
        StringMatchSchema,
        doc_template='docs/generic/fields/string_match_field.html',
        doc_base_url='/histories',
        doc_field_name='action',
        query_field='action_name',
    )
    q = search_fields.MultiMatchField(
        extra_fields=['table_name', 'action_name'])
예제 #12
0
class HistoryApiSearchRequest(ListingSchema):
    id = search_fields.FilterField(
        NumberTermSchema,
        doc_template='docs/generic/fields/number_term_field.html',
        doc_base_url='/histories',
        doc_field_name='ID',
    )
    action = search_fields.FilterField(
        StringMatchSchema,
        doc_template='docs/generic/fields/string_match_field.html',
        doc_base_url='/histories',
        doc_field_name='action',
    )
    change_user_id = search_fields.FilterField(
        NumberTermSchema,
        doc_template='docs/generic/fields/number_term_field.html',
        doc_base_url='/histories',
        doc_field_name='change_user_id',
    )
    change_timestamp = search_fields.FilterField(
        DateTermSchema,
        doc_template='docs/generic/fields/number_term_field.html',
        doc_base_url='/histories',
        doc_field_name='change_timestamp',
    )
    message = search_fields.FilterField(
        StringMatchSchema,
        doc_template='docs/generic/fields/string_match_field.html',
        doc_base_url='/histories',
        doc_field_name='message',
    )
    q = search_fields.MultiMatchField(extra_fields=['table_name', 'action'])
    row_id = search_fields.FilterField(
        NumberTermSchema,
        doc_template='docs/generic/fields/number_term_field.html',
        doc_base_url='/histories',
        doc_field_name='row_id',
    )
    sort = search_fields.SortField(
        sort_fields={
            'id': 'id',
            'row_id': 'row_id',
            'table_name': 'table_name',
            'change_timestamp': 'change_timestamp',
            'change_user_id': 'change_user_id',
        },
        doc_base_url='/histories',
    )
    table_name = search_fields.FilterField(
        StringMatchSchema,
        doc_template='docs/generic/fields/string_match_field.html',
        doc_base_url='/histories',
        doc_field_name='table_name',
    )

    class Meta:
        strict = True
        ordered = True
예제 #13
0
class LaboratoriesApiRequest(ListingSchema):
    id = search_fields.FilterField(
        NumberTermSchema,
        doc_template='docs/generic/fields/number_term_field.html',
        doc_base_url='/laboratory',
        doc_field_name='ID',
    )
    title = search_fields.FilterField(
        StringMatchSchema,
        doc_template='docs/generic/fields/string_match_field.html',
        doc_base_url='/laboratory',
        doc_field_name='title',
        translated=True,
        search_path='title')
    notes = search_fields.FilterField(
        StringMatchSchema,
        doc_template='docs/generic/fields/string_match_field.html',
        doc_base_url='/laboratory',
        doc_field_name='notes',
        translated=True,
        search_path='notes')
    event_type = search_fields.FilterField(
        StringTermSchema,
        doc_template='docs/generic/fields/string_term_field.html',
        doc_base_url='/laboratory',
        doc_field_name='event_type',
        query_field='event_type')
    execution_date = search_fields.FilterField(
        DateTermSchema,
        query_field='execution_date',
        doc_template='docs/generic/fields/number_term_field.html',
        doc_base_url='/laboratory',
        doc_field_name='execution_date')
    sort = search_fields.SortField(
        sort_fields={
            'id': 'id',
            'title': 'title',
            'execution_date': 'execution_date',
        },
        doc_base_url='/laboratory',
    )
예제 #14
0
class SubmissionListRequest(ListingSchema):
    is_active = search_fields.FilterField(
        NumberTermSchema,
        doc_template='docs/generic/fields/number_term_field.html',
        doc_base_url='/submissions/accepted')
    id = search_fields.FilterField(
        NumberTermSchema,
        doc_template='docs/generic/fields/number_term_field.html',
        doc_base_url='/submissions/accepted',
        doc_field_name='ID')
    title = search_fields.FilterField(
        StringMatchSchema,
        doc_template='docs/generic/fields/string_match_field.html',
        doc_base_url='/submissions/accepted',
        doc_field_name='title')
    notes = search_fields.FilterField(
        StringMatchSchema,
        doc_template='docs/generic/fields/string_match_field.html',
        doc_base_url='/submissions/accepted')
    organization_name = search_fields.FilterField(
        StringMatchSchema,
        doc_template='docs/generic/fields/string_match_field.html',
        doc_base_url='/submissions/accepted')
    submission_date = search_fields.FilterField(
        DateTermSchema,
        doc_template='docs/generic/fields/number_term_field.html',
        doc_base_url='/submissions/accepted')
    data_link = search_fields.FilterField(
        StringMatchSchema,
        doc_template='docs/generic/fields/string_match_field.html',
        doc_base_url='/submissions/accepted')
    decision_date = search_fields.FilterField(
        DateTermSchema,
        doc_template='docs/generic/fields/number_term_field.html',
        doc_base_url='/submissions/accepted')

    sort = search_fields.SortField(
        sort_fields={
            'id': 'id',
            'title': 'title.sort',
            'submission_date': 'submission_date',
            'decision_date': 'decision_date',
            'published_at': 'published_at',
        },
        doc_base_url='/submissions/accepted',
    )
예제 #15
0
class ApiSearchRequest(ListingSchema):
    q = CommonSearchField(doc_template='docs/generic/fields/query_field.html',
                          doc_base_url='/search',
                          doc_field_name='q')

    advanced = fields.StringField()
    sort = fields.SortField(
        sort_fields={
            'title': 'title.{lang}.sort',
            'date': 'search_date',
            'views_count': 'views_count',
        },
        doc_base_url='/search',
    )

    facet = fields.FacetField(DataAggregations)

    id = fields.FilterField(
        StringTermSchema,
        doc_template='docs/generic/fields/number_term_field.html',
        doc_base_url='/search',
        doc_field_name='ID',
        query_field='_id',
    )
    model = fields.FilterField(
        StringTermSchema,
        doc_template='docs/search/fields/model.html',
        doc_base_url='/search',
        doc_field_name='models',
    )
    institution = fields.FilterField(InstitutionFilterSchema)
    category = fields.FilterField(DatasetCategoryFilterSchema)
    categories = fields.FilterField(DatasetCategoriesFilterSchema)
    format = fields.FilterField(
        StringTermSchema,
        doc_template='docs/generic/fields/string_term_field.html',
        doc_base_url='/search',
        doc_field_name='format',
        query_field='formats')
    types = fields.FilterField(
        StringTermSchema,
        doc_template='docs/generic/fields/string_term_field.html',
        doc_base_url='/search',
        doc_field_name='types',
    )
    openness_score = fields.FilterField(
        NumberTermSchema,
        doc_template='docs/generic/fields/number_term_field.html',
        doc_base_url='/search',
        doc_field_name='openness score',
        query_field='openness_scores')
    visualization_types = fields.FilterField(
        ListTermsSchema,
        query_field='visualization_types',
        doc_template='docs/generic/fields/string_term_field.html',
        doc_base_url='/search',
        doc_field_name='visualization type')
    date = fields.FilterField(
        DateTermSchema,
        query_field='search_date',
        doc_template='docs/generic/fields/number_term_field.html',
        doc_base_url='/search',
        doc_field_name='search_date')
    institution_type = fields.FilterField(
        StringTermSchema,
        query_field='institution_type',
        doc_template='docs/generic/fields/string_term_field.html',
        doc_base_url='/search',
        doc_field_name='institution_type')
    source = fields.FilterField(SourceFilterSchema)
    license_code = fields.FilterField(
        NumberTermSchema,
        doc_template='docs/generic/fields/number_term_field.html',
        doc_base_url='/search',
        doc_field_name='license code',
        query_field='license_code')
    update_frequency = fields.FilterField(
        StringTermSchema,
        query_field='update_frequency',
        doc_template='docs/generic/fields/string_term_field.html',
        doc_base_url='/search',
        doc_field_name='update_frequency')
    has_high_value_data = fields.FilterField(
        BooleanTermSchema,
        query_field='has_high_value_data',
        doc_template='docs/generic/fields/boolean_term_field.html',
        doc_base_url='/search',
        doc_field_name='has_high_value_data')
    if is_enabled('S39_filter_by_geodata.be'):
        regions = fields.FilterField(RegionsFilterSchema)
    if is_enabled('S39_showcases.be'):
        showcase_category = fields.FilterField(
            StringTermSchema,
            doc_template='docs/generic/fields/string_term_field.html',
            doc_base_url='/search',
            doc_field_name='showcase_category',
        )
        showcase_types = fields.FilterField(
            StringTermSchema,
            query_field='showcase_types',
            doc_template='docs/generic/fields/string_term_field.html',
            doc_base_url='/search',
            doc_field_name='showcase types')
        showcase_platforms = fields.FilterField(
            StringTermSchema,
            query_field='showcase_platforms',
            doc_template='docs/generic/fields/string_term_field.html',
            doc_base_url='/search',
            doc_field_name='showcase platforms')

    @validates('q')
    def validate_q(self, queries, down_limit=2, up_limit=3000):
        for q in queries:
            if len(q) < down_limit:
                msg = _(
                    'The entered phrase should be at least %(limit)s characters long'
                ) % {
                    'limit': down_limit
                }
                raise ValidationError(msg)
            elif len(q) > up_limit:
                msg = _(
                    'The entered phrase should be at most %(limit)s characters long'
                ) % {
                    'limit': up_limit
                }
                raise ValidationError(msg)

    @validates('advanced')
    def validate_advanced(self, adv):
        allowed = ('any', 'all', 'exact', 'synonyms')
        if adv not in allowed:
            msg = _('Advanced option should take one of values: ') + ', '.join(
                allowed)
            raise ValidationError(msg)

    class Meta:
        strict = True
        ordered = True
class DatasetApiSearchRequest(ListingSchema):
    id = search_fields.FilterField(
        NumberTermSchema,
        doc_template='docs/generic/fields/number_term_field.html',
        doc_base_url='/datasets',
        doc_field_name='ID')
    title = search_fields.FilterField(
        StringMatchSchema,
        doc_template='docs/generic/fields/string_match_field.html',
        doc_base_url='/datasets',
        doc_field_name='title',
        translated=True,
        search_path='title')
    notes = search_fields.FilterField(
        StringMatchSchema,
        doc_template='docs/generic/fields/string_match_field.html',
        doc_base_url='/datasets',
        doc_field_name='notes',
        translated=True,
        search_path='notes')
    category = search_fields.FilterField(CategoryFilterSchema)
    categories = search_fields.FilterField(CategoriesFilterSchema)
    institution = search_fields.FilterField(InstitutionFilterSchema)
    application = search_fields.FilterField(ApplicationFilterSchema)
    tag = search_fields.FilterField(
        StringTermSchema,
        doc_template='docs/generic/fields/string_term_field.html',
        doc_base_url='/datasets',
        doc_field_name='tag',
        translated=True,
        search_path='tags',
        query_field='tags')
    keyword = search_fields.FilterField(
        StringTermSchema,
        doc_template='docs/generic/fields/string_term_field.html',
        doc_base_url='/datasets',
        doc_field_name='keyword',
        search_path='keywords',
        query_field='keywords.name',
        condition=Term(keywords__language=get_language),
        nested_search=True,
    )
    format = search_fields.FilterField(
        StringTermSchema,
        doc_template='docs/generic/fields/string_term_field.html',
        doc_base_url='/datasets',
        doc_field_name='format',
        query_field='formats')
    types = search_fields.FilterField(
        StringTermSchema,
        doc_template='docs/generic/fields/string_term_field.html',
        doc_base_url='/datasets',
        doc_field_name='types',
        query_field='types')
    openness_score = search_fields.FilterField(
        NumberTermSchema,
        doc_template='docs/generic/fields/number_term_field.html',
        doc_base_url='/datasets',
        doc_field_name='openness score',
        query_field='openness_scores',
    )
    resource = search_fields.FilterField(ResourceFilterSchema)
    visualization_types = search_fields.FilterField(
        ListTermsSchema,
        query_field='visualization_types',
        doc_template='docs/generic/fields/string_term_field.html',
        doc_base_url='/datasets',
        doc_field_name='visualization types')
    created = search_fields.FilterField(
        DateTermSchema,
        doc_template='docs/generic/fields/number_term_field.html',
        doc_base_url='/datasets',
        doc_field_name='created',
    )
    q = search_fields.MultiMatchField(
        query_fields={
            'title': ['title^4'],
            'notes': ['notes^2']
        },
        nested_query_fields={'resources': [
            'title',
        ]})
    sort = search_fields.SortField(
        sort_fields={
            'id': 'id',
            'title': 'title.{lang}.sort',
            'modified': 'modified',
            'created': 'created',
            'views_count': 'views_count',
            'verified': 'verified',
        },
        doc_base_url='/datasets',
        missing='id',
    )

    facet = search_fields.FacetField(DatasetAggregations)
    include = search_fields.StringField(
        data_key='include',
        description=
        'Allow the client to customize which related resources should be returned in included section.',
        allowEmptyValue=True,
    )

    class Meta:
        strict = True
        ordered = True
예제 #17
0
class ResourceApiSearchRequest(ListingSchema):
    id = search_fields.FilterField(NumberTermSchema,
                                   doc_template='docs/generic/fields/number_term_field.html',
                                   doc_base_url='/resources',
                                   doc_field_name='ID'
                                   )
    title = search_fields.FilterField(StringMatchSchema,
                                      doc_template='docs/generic/fields/string_match_field.html',
                                      doc_base_url='/resources',
                                      doc_field_name='title',
                                      translated=True,
                                      search_path='title'
                                      )
    description = search_fields.FilterField(StringMatchSchema,
                                            doc_template='docs/generic/fields/string_match_field.html',
                                            doc_base_url='/resources',
                                            doc_field_name='description',
                                            translated=True,
                                            search_path='description'
                                            )
    format = search_fields.FilterField(
        StringTermSchema,
        doc_template='docs/generic/fields/string_term_field.html',
        doc_base_url='/resources',
        doc_field_name='format'
    )
    media_type = search_fields.FilterField(
        StringTermSchema,
        doc_template='docs/generic/fields/string_term_field.html',
        doc_base_url='/resources',
        doc_field_name='media type'
    )
    openness_score = search_fields.FilterField(NumberTermSchema,
                                               doc_template='docs/resources/fields/openness_score.html',
                                               doc_base_url='/resources',
                                               doc_field_name='openness score'
                                               )
    q = search_fields.MultiMatchField(
        query_fields=['title^4', 'description^2'],
        nested_query_fields={'dataset': ['title', ]},
        doc_template='docs/generic/fields/query_field.html',
        doc_base_url='/resources',
        doc_field_name='q'
    )
    sort = search_fields.SortField(
        sort_fields={
            'id': 'id',
            'title': 'title.{lang}.raw',
            'modified': 'modified',
            'created': 'created',
            'verified': 'verified',
            'data_date': 'data_date',
        },
        doc_template='docs/generic/fields/sort_field.html',
        doc_base_url='/resources',
        doc_field_name='sort'
    )
    dataset = search_fields.FilterField(ResourceDatasetFilterField,
                                        doc_template='docs/resources/fields/dataset.html',
                                        doc_base_url='/resources',
                                        doc_field_name='dataset'
                                        )
    facet = search_fields.FacetField(ResourceAggregations)

    class Meta:
        strict = True
        ordered = True
예제 #18
0
class DatasetApiSearchRequest(ListingSchema):
    id = search_fields.FilterField(
        NumberTermSchema,
        doc_template='docs/generic/fields/number_term_field.html',
        doc_base_url='/datasets',
        doc_field_name='ID')
    title = search_fields.FilterField(
        StringMatchSchema,
        doc_template='docs/generic/fields/string_match_field.html',
        doc_base_url='/datasets',
        doc_field_name='title',
        translated=True,
        search_path='title')
    notes = search_fields.FilterField(
        StringMatchSchema,
        doc_template='docs/generic/fields/string_match_field.html',
        doc_base_url='/datasets',
        doc_field_name='notes',
        translated=True,
        search_path='notes')
    category = search_fields.FilterField(CategoryFilterSchema)
    institution = search_fields.FilterField(InstitutionFilterSchema)
    tag = search_fields.FilterField(
        StringTermSchema,
        doc_template='docs/generic/fields/string_term_field.html',
        doc_base_url='/datasets',
        doc_field_name='tag',
        translated=True,
        search_path='tags',
        query_field='tags')
    format = search_fields.FilterField(
        StringTermSchema,
        doc_template='docs/generic/fields/string_term_field.html',
        doc_base_url='/datasets',
        doc_field_name='format',
        query_field='formats')
    openness_score = search_fields.FilterField(
        NumberTermSchema,
        doc_template='docs/generic/fields/number_term_field.html',
        doc_base_url='/datasets',
        doc_field_name='openness score')
    resource = search_fields.FilterField(ResourceFilterSchema)

    q = search_fields.MultiMatchField(
        query_fields=['title^4', 'notes^2'],
        nested_query_fields={'resources': [
            'title',
        ]})
    sort = search_fields.SortField(
        sort_fields={
            'id': 'id',
            'title': 'title.{lang}.sort',
            'modified': 'modified',
            'created': 'created',
            'verified': 'verified',
        },
        doc_template='docs/generic/fields/sort_field.html',
        doc_base_url='/institutions',
        doc_field_name='sort')

    facet = search_fields.FacetField(DatasetAggregations)

    class Meta:
        strict = True
        ordered = True
예제 #19
0
class ApplicationApiSearchRequest(ListingSchema):
    id = search_fields.FilterField(
        NumberTermSchema,
        doc_template='docs/generic/fields/number_term_field.html',
        doc_base_url='/applications',
        doc_field_name='ID')
    title = search_fields.FilterField(
        StringMatchSchema,
        doc_template='docs/generic/fields/string_match_field.html',
        doc_base_url='/applications',
        doc_field_name='title',
        translated=True,
        search_path='title')
    notes = search_fields.FilterField(
        StringMatchSchema,
        doc_template='docs/generic/fields/string_match_field.html',
        doc_base_url='/applications',
        doc_field_name='notes',
        translated=True,
        search_path='notes')
    has_image_thumb = search_fields.TermsField()

    tag = search_fields.FilterField(
        StringTermSchema,
        doc_template='docs/generic/fields/string_term_field.html',
        doc_base_url='/applications',
        doc_field_name='tag',
        translated=True,
        search_path='tags',
        query_field='tags')

    keyword = search_fields.FilterField(
        StringTermSchema,
        doc_template='docs/generic/fields/string_term_field.html',
        doc_base_url='/applications',
        doc_field_name='keyword',
        search_path='keywords',
        query_field='keywords.name',
        condition=Term(keywords__language=get_language),
        nested_search=True,
    )

    q = search_fields.MultiMatchField(
        query_fields={
            'title': ['title^4'],
            'notes': ['notes^2']
        },
        nested_query_fields={'datasets': [
            'title',
        ]})
    sort = search_fields.SortField(
        sort_fields={
            'id': 'id',
            'title': 'title.{lang}.sort',
            'modified': 'modified',
            'created': 'created',
            'views_count': 'views_count',
            'main_page_position': 'main_page_position',
        },
        doc_base_url='/applications',
    )

    facet = search_fields.FacetField(ApplicationAggs)
    is_featured = search_fields.ExistsField("main_page_position")

    class Meta:
        strict = True
        ordered = True
예제 #20
0
class InstitutionApiSearchRequest(ListingSchema):
    id = search_fields.FilterField(
        NumberTermSchema,
        doc_template='docs/generic/fields/number_term_field.html',
        doc_base_url='/institutions',
        doc_field_name='ID')
    slug = search_fields.FilterField(
        StringTermSchema,
        doc_template='docs/generic/fields/string_term_field.html',
        doc_base_url='/institutions',
        doc_field_name='slug',
        translated=True,
        search_path='slug')
    city = search_fields.FilterField(
        StringTermSchema,
        doc_template='docs/generic/fields/string_term_field.html',
        doc_base_url='/institutions',
        doc_field_name='city')
    regon = search_fields.FilterField(
        StringTermSchema,
        doc_template='docs/generic/fields/string_term_field.html',
        doc_base_url='/institutions',
        doc_field_name='regon')
    street = search_fields.FilterField(
        StringTermSchema,
        doc_template='docs/generic/fields/string_term_field.html',
        doc_base_url='/institutions',
        doc_field_name='street')
    postal_code = search_fields.FilterField(
        StringTermSchema,
        doc_template='docs/generic/fields/string_term_field.html',
        doc_base_url='/institutions',
        doc_field_name='postal code')

    email = search_fields.FilterField(
        StringTermSchema,
        doc_template='docs/generic/fields/string_term_field.html',
        doc_base_url='/institutions',
        doc_field_name='email address')
    org_type = search_fields.FilterField(
        StringTermSchema,
        data_key='type',
        doc_template='docs/generic/fields/string_term_field.html',
        doc_base_url='/institutions',
        doc_field_name='type')
    tel = search_fields.FilterField(
        StringTermSchema,
        doc_template='docs/generic/fields/string_term_field.html',
        doc_base_url='/institutions',
        doc_field_name='tel')
    fax = search_fields.FilterField(
        StringTermSchema,
        doc_template='docs/generic/fields/string_term_field.html',
        doc_base_url='/institutions',
        doc_field_name='fax')
    website = search_fields.FilterField(
        StringTermSchema,
        doc_template='docs/generic/fields/string_term_field.html',
        doc_base_url='/institutions',
        doc_field_name='website')

    title = search_fields.FilterField(
        StringMatchSchema,
        doc_template='docs/generic/fields/string_match_field.html',
        doc_base_url='/institutions',
        doc_field_name='title',
        translated=True,
        search_path='title')
    description = search_fields.FilterField(
        StringMatchSchema,
        doc_template='docs/generic/fields/string_match_field.html',
        doc_base_url='/institutions',
        doc_field_name='description',
        translated=True,
        search_path='title')

    q = search_fields.MultiMatchField(
        query_fields=['title^4', 'description^2'],
        nested_query_fields={'datasets': [
            'title',
        ]},
        doc_template='docs/generic/fields/query_field.html',
        doc_base_url='/institutions',
        doc_field_name='q')
    sort = search_fields.SortField(
        sort_fields={
            'id': 'id',
            'title': 'title.{lang}.sort',
            "city": "city.{lang}",
            'modified': 'modified',
            'created': 'created'
        },
        doc_template='docs/generic/fields/sort_field.html',
        doc_base_url='/institutions',
        doc_field_name='sort')
    facet = search_fields.FacetField(InstitutionApiAggregations)

    class Meta:
        strict = True
        ordered = True
예제 #21
0
class InstitutionApiSearchRequest(ListingSchema):
    id = search_fields.FilterField(NumberTermSchema,
                                   doc_template='docs/generic/fields/number_term_field.html',
                                   doc_base_url='/institutions',
                                   doc_field_name='ID'
                                   )
    slug = search_fields.FilterField(StringTermSchema,
                                     doc_template='docs/generic/fields/string_term_field.html',
                                     doc_base_url='/institutions',
                                     doc_field_name='slug',
                                     translated=True,
                                     search_path='slug'
                                     )
    city = search_fields.FilterField(StringTermSchema,
                                     doc_template='docs/generic/fields/string_term_field.html',
                                     doc_base_url='/institutions',
                                     doc_field_name='city'
                                     )
    regon = search_fields.FilterField(StringTermSchema,
                                      doc_template='docs/generic/fields/string_term_field.html',
                                      doc_base_url='/institutions',
                                      doc_field_name='regon'
                                      )
    street = search_fields.FilterField(StringTermSchema,
                                       doc_template='docs/generic/fields/string_term_field.html',
                                       doc_base_url='/institutions',
                                       doc_field_name='street'
                                       )
    postal_code = search_fields.FilterField(StringTermSchema,
                                            doc_template='docs/generic/fields/string_term_field.html',
                                            doc_base_url='/institutions',
                                            doc_field_name='postal code'
                                            )

    email = search_fields.FilterField(StringTermSchema,
                                      doc_template='docs/generic/fields/string_term_field.html',
                                      doc_base_url='/institutions',
                                      doc_field_name='email address'
                                      )
    org_type = search_fields.FilterField(StringTermSchema,
                                         data_key='type',
                                         query_field='institution_type',
                                         doc_template='docs/generic/fields/string_term_field.html',
                                         doc_base_url='/institutions',
                                         doc_field_name='type'
                                         )
    tel = search_fields.FilterField(StringTermSchema,
                                    doc_template='docs/generic/fields/string_term_field.html',
                                    doc_base_url='/institutions',
                                    doc_field_name='tel',
                                    )
    fax = search_fields.FilterField(StringTermSchema,
                                    doc_template='docs/generic/fields/string_term_field.html',
                                    doc_base_url='/institutions',
                                    doc_field_name='fax'
                                    )
    website = search_fields.FilterField(StringTermSchema,
                                        doc_template='docs/generic/fields/string_term_field.html',
                                        doc_base_url='/institutions',
                                        doc_field_name='website'
                                        )

    title = search_fields.FilterField(StringMatchSchema,
                                      doc_template='docs/generic/fields/string_match_field.html',
                                      doc_base_url='/institutions',
                                      doc_field_name='title',
                                      translated=True,
                                      search_path='title'

                                      )
    description = search_fields.FilterField(StringMatchSchema,
                                            doc_template='docs/generic/fields/string_match_field.html',
                                            doc_base_url='/institutions',
                                            doc_field_name='description',
                                            translated=True,
                                            search_path='title'
                                            )

    q = search_fields.MultiMatchField(
        query_fields={'title': ['title^4'], 'description': ['description^2']},
        nested_query_fields={'datasets': ['title', ]},
        doc_template='docs/generic/fields/query_field.html',
        doc_base_url='/institutions',
        doc_field_name='q'
    )
    sort = search_fields.SortField(
        sort_fields={
            'id': 'id',
            'title': 'title.{lang}.sort',
            "city": "city.{lang}",
            'modified': 'modified',
            'created': 'created'
        },
        doc_base_url='/institutions',
    )
    facet = search_fields.FacetField(InstitutionApiAggregations)
    include = search_fields.StringField(
        data_key='include',
        description='Allow the client to customize which related resources should be returned in included section.',
        allowEmptyValue=True,
    )

    class Meta:
        strict = True
        ordered = True
class ResourceApiSearchRequest(ListingSchema):
    id = search_fields.FilterField(
        NumberTermSchema,
        doc_template='docs/generic/fields/number_term_field.html',
        doc_base_url='/resources',
        doc_field_name='ID')
    title = search_fields.FilterField(
        StringMatchSchema,
        doc_template='docs/generic/fields/string_match_field.html',
        doc_base_url='/resources',
        doc_field_name='title',
        translated=True,
        search_path='title')
    description = search_fields.FilterField(
        StringMatchSchema,
        doc_template='docs/generic/fields/string_match_field.html',
        doc_base_url='/resources',
        doc_field_name='description',
        translated=True,
        search_path='description')
    format = search_fields.FilterField(
        StringTermSchema,
        doc_template='docs/generic/fields/string_term_field.html',
        doc_base_url='/resources',
        doc_field_name='format')
    media_type = search_fields.FilterField(
        StringTermSchema,
        query_field='type',
        doc_template='docs/generic/fields/string_term_field.html',
        doc_base_url='/resources',
        doc_field_name='media type')
    type = search_fields.FilterField(
        StringTermSchema,
        query_field='type',
        doc_template='docs/generic/fields/string_term_field.html',
        doc_base_url='/resources',
        doc_field_name='type')
    visualization_type = search_fields.FilterField(
        ListTermsSchema,
        query_field='visualization_types',
        doc_template='docs/generic/fields/string_term_field.html',
        doc_base_url='/resources',
        doc_field_name='visualization type')
    openness_score = search_fields.FilterField(
        NumberTermSchema,
        doc_template='docs/resources/fields/openness_score.html',
        doc_base_url='/resources',
        doc_field_name='openness score')
    created = search_fields.FilterField(
        DateTermSchema,
        doc_template='docs/generic/fields/number_term_field.html',
        doc_base_url='/resources',
        doc_field_name='created')
    q = search_fields.MultiMatchField(
        query_fields={
            'title': ['title^4'],
            'description': ['description^2']
        },
        nested_query_fields={'dataset': [
            'title',
        ]},
        doc_template='docs/generic/fields/query_field.html',
        doc_base_url='/resources',
        doc_field_name='q')
    sort = search_fields.SortField(
        sort_fields={
            'id': 'id',
            'title': 'title.{lang}.raw',
            'modified': 'modified',
            'created': 'created',
            'verified': 'verified',
            'data_date': 'data_date',
            'views_count': 'views_count',
        },
        doc_base_url='/resources',
    )
    dataset = search_fields.FilterField(
        ResourceDatasetFilterField,
        doc_template='docs/resources/fields/dataset.html',
        doc_base_url='/resources',
        doc_field_name='dataset')
    facet = search_fields.FacetField(ResourceAggregations)
    include = search_fields.StringField(
        data_key='include',
        description=
        'Allow the client to customize which related resources should be returned in included section.',
        allowEmptyValue=True,
    )

    class Meta:
        strict = True
        ordered = True