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
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
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
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
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
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
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