class SearchImage(SearchDocument): class Meta(BaseMeta): doc_type = IMAGE_TYPE activities = QEnumArray('act', model_field=Image.activities) categories = QEnumArray('cat', model_field=Image.categories) image_type = QEnumArray('ityp', model_field=Image.image_type) elevation = QInteger('ialt', range=True) date_time = QDate('idate', 'date_time') FIELDS = [ 'activities', 'categories', 'image_type', 'elevation', 'date_time' ] @staticmethod def to_search_document(document, index): search_document = SearchDocument.to_search_document(document, index) if document.redirects_to: return search_document SearchDocument.copy_fields(search_document, document, SearchImage.FIELDS) return search_document SearchImage.queryable_fields = QueryableMixin.get_queryable_fields(SearchImage)
FIELDS = [ 'elevation', 'waypoint_type', 'rock_types', 'orientations', 'best_periods', 'lift_access', 'custodianship', 'climbing_styles', 'access_time', 'climbing_rating_max', 'climbing_rating_min', 'climbing_rating_median', 'height_max', 'height_min', 'height_median', 'routes_quantity', 'children_proof', 'rain_proof', 'paragliding_rating', 'exposition_rating', 'length', 'weather_station_types', 'capacity', 'capacity_staffed', 'equipment_ratings', 'public_transportation_types', 'public_transportation_rating', 'snow_clearance_rating', 'product_types' ] @staticmethod def to_search_document(document, index): search_document = SearchDocument.to_search_document(document, index) if document.redirects_to: return search_document SearchDocument.copy_fields( search_document, document, SearchWaypoint.FIELDS) search_document['has_phone'] = not(not( document.phone or document.phone_custodian)) return search_document SearchWaypoint.queryable_fields = QueryableMixin.get_queryable_fields( SearchWaypoint)
from c2corg_api.models.user_profile import USERPROFILE_TYPE from c2corg_api.search.mapping import SearchDocument, BaseMeta from c2corg_api.search.mapping_types import QueryableMixin class SearchUser(SearchDocument): class Meta(BaseMeta): doc_type = USERPROFILE_TYPE FIELDS = [] @staticmethod def to_search_document(document, index): search_document = SearchDocument.to_search_document(document, index) if document.redirects_to: return search_document for locale in document.locales: search_document['title_' + locale.lang] = '{0} {1}'.format( document.name or '', document.forum_username or '') return search_document SearchUser.queryable_fields = QueryableMixin.get_queryable_fields(SearchUser)
SearchDocument.copy_fields(search_document, document, SearchRoute.FIELDS) SearchDocument.copy_enum_range_fields(search_document, document, SearchRoute.ENUM_RANGE_FIELDS, SearchRoute) for locale in document.locales: search_document['title_' + locale.lang] = \ get_title(locale.title, locale.title_prefix) if document.associated_waypoints_ids: # add the document ids of associated waypoints and of the parent # and grand-parents of these waypoints search_document['waypoints'] = \ document.associated_waypoints_ids.waypoint_ids if document.associated_users_ids: # add the document ids of associated users search_document['users'] = \ document.associated_users_ids.user_ids return search_document SearchRoute.queryable_fields = QueryableMixin.get_queryable_fields(SearchRoute) SearchRoute.queryable_fields['ele'] = QNumberRange('elevation', 'elevation_min', 'elevation_max')
elevation = QInteger( 'xalt', range=True) FIELDS = [ 'activities', 'date', 'event_type', 'nb_participants', 'nb_impacted', 'elevation' ] ENUM_RANGE_FIELDS = [ 'severity', 'avalanche_level', 'avalanche_slope' ] @staticmethod def to_search_document(document, index): search_document = SearchDocument.to_search_document(document, index) if document.redirects_to: return search_document SearchDocument.copy_fields( search_document, document, SearchXreport.FIELDS) SearchDocument.copy_enum_range_fields( search_document, document, SearchXreport.ENUM_RANGE_FIELDS, SearchXreport) return search_document SearchXreport.queryable_fields = QueryableMixin.get_queryable_fields( SearchXreport)
"hiking_mtb_exposition", "snowshoe_rating", "mtb_up_rating", "mtb_down_rating", ] @staticmethod def to_search_document(document, index): search_document = SearchDocument.to_search_document(document, index) if document.redirects_to: return search_document SearchDocument.copy_fields(search_document, document, SearchRoute.FIELDS) SearchDocument.copy_enum_range_fields(search_document, document, SearchRoute.ENUM_RANGE_FIELDS, SearchRoute) for locale in document.locales: search_document["title_" + locale.lang] = get_title(locale.title, locale.title_prefix) if document.associated_waypoints_ids: # add the document ids of associated waypoints and of the parent # and grand-parents of these waypoints search_document["waypoints"] = document.associated_waypoints_ids.waypoint_ids return search_document SearchRoute.queryable_fields = QueryableMixin.get_queryable_fields(SearchRoute) SearchRoute.queryable_fields["ele"] = QNumberRange("elevation", "elevation_min", "elevation_max")
class SearchArticle(SearchDocument): class Meta(BaseMeta): doc_type = ARTICLE_TYPE activities = QEnumArray( 'act', model_field=Article.activities) article_categories = QEnumArray( 'acat', model_field=Article.categories) article_type = QEnum( 'atyp', model_field=Article.article_type) FIELDS = ['activities', 'article_type'] @staticmethod def to_search_document(document, index): search_document = SearchDocument.to_search_document(document, index) if document.redirects_to: return search_document search_document['article_categories'] = document.categories SearchDocument.copy_fields( search_document, document, SearchArticle.FIELDS) return search_document SearchArticle.queryable_fields = QueryableMixin.get_queryable_fields( SearchArticle)
from c2corg_api.models.area import AREA_TYPE, Area from c2corg_api.search.mapping import SearchDocument, BaseMeta from c2corg_api.search.mapping_types import QueryableMixin, QEnum class SearchArea(SearchDocument): class Meta(BaseMeta): doc_type = AREA_TYPE area_type = QEnum('atyp', model_field=Area.area_type) FIELDS = ['area_type'] @staticmethod def to_search_document(document, index): search_document = SearchDocument.to_search_document( document, index, include_areas=False) if document.redirects_to: return search_document SearchDocument.copy_fields(search_document, document, SearchArea.FIELDS) return search_document SearchArea.queryable_fields = QueryableMixin.get_queryable_fields(SearchArea)
SearchDocument.copy_fields(search_document, document, SearchOuting.FIELDS) SearchDocument.copy_enum_range_fields(search_document, document, SearchOuting.ENUM_RANGE_FIELDS, SearchOuting) if document.associated_waypoints_ids: # add the document ids of associated waypoints and of the parent # and grand-parents of these waypoints search_document['waypoints'] = \ document.associated_waypoints_ids.waypoint_ids if document.associated_users_ids: # add the document ids of associated users search_document['users'] = \ document.associated_users_ids.user_ids if document.associated_routes_ids: # add the document ids of associated routes search_document['routes'] = \ document.associated_routes_ids.route_ids return search_document SearchOuting.queryable_fields = QueryableMixin.get_queryable_fields( SearchOuting) SearchOuting.queryable_fields['date'] = QDateRange('date', 'date_start', 'date_end')
from c2corg_api.models.area import AREA_TYPE from c2corg_api.search.mapping import SearchDocument, BaseMeta from c2corg_api.search.mapping_types import QueryableMixin class SearchArea(SearchDocument): class Meta(BaseMeta): doc_type = AREA_TYPE FIELDS = [] @staticmethod def to_search_document(document, index): return SearchDocument.to_search_document( document, index, include_areas=False) SearchArea.queryable_fields = QueryableMixin.get_queryable_fields(SearchArea)
class Meta(BaseMeta): doc_type = IMAGE_TYPE activities = QEnumArray( 'act', model_field=Image.activities) categories = QEnumArray( 'cat', model_field=Image.categories) image_type = QEnumArray( 'ityp', model_field=Image.image_type) elevation = QInteger( 'ialt', range=True) date_time = QDate('idate', 'date_time') FIELDS = [ 'activities', 'categories', 'image_type', 'elevation', 'date_time' ] @staticmethod def to_search_document(document, index): search_document = SearchDocument.to_search_document(document, index) if document.redirects_to: return search_document SearchDocument.copy_fields( search_document, document, SearchImage.FIELDS) return search_document SearchImage.queryable_fields = QueryableMixin.get_queryable_fields(SearchImage)
SearchDocument.copy_fields( search_document, document, SearchOuting.FIELDS) SearchDocument.copy_enum_range_fields( search_document, document, SearchOuting.ENUM_RANGE_FIELDS, SearchOuting) if document.associated_waypoints_ids: # add the document ids of associated waypoints and of the parent # and grand-parents of these waypoints search_document['waypoints'] = \ document.associated_waypoints_ids.waypoint_ids if document.associated_users_ids: # add the document ids of associated users search_document['users'] = \ document.associated_users_ids.user_ids if document.associated_routes_ids: # add the document ids of associated routes search_document['routes'] = \ document.associated_routes_ids.route_ids return search_document SearchOuting.queryable_fields = QueryableMixin.get_queryable_fields( SearchOuting) SearchOuting.queryable_fields['date'] = QDateRange( 'date', 'date_start', 'date_end')
ENUM_RANGE_FIELDS = [ 'access_time', 'climbing_rating_max', 'climbing_rating_min', 'climbing_rating_median', 'paragliding_rating', 'exposition_rating', 'equipment_ratings' ] @staticmethod def to_search_document(document, index): search_document = SearchDocument.to_search_document(document, index) if document.redirects_to: return search_document SearchDocument.copy_fields(search_document, document, SearchWaypoint.FIELDS) SearchDocument.copy_enum_range_fields(search_document, document, SearchWaypoint.ENUM_RANGE_FIELDS, SearchWaypoint) return search_document SearchWaypoint.queryable_fields = QueryableMixin.get_queryable_fields( SearchWaypoint) SearchWaypoint.queryable_fields['crat'] = QEnumRangeMinMax( 'climbing_rating', 'climbing_rating_min', 'climbing_rating_max', sortable_climbing_ratings) SearchWaypoint.queryable_fields['height'] = QNumberRange( 'height', 'height_min', 'height_max')
from c2corg_api.models.topo_map import MAP_TYPE from c2corg_api.search.mapping import SearchDocument, BaseMeta from c2corg_api.search.mapping_types import QueryableMixin class SearchTopoMap(SearchDocument): class Meta(BaseMeta): doc_type = MAP_TYPE FIELDS = [] @staticmethod def to_search_document(document, index): return SearchDocument.to_search_document(document, index) SearchTopoMap.queryable_fields = QueryableMixin.get_queryable_fields( SearchTopoMap)
'xalt', range=True) FIELDS = [ 'date', 'event_activity', 'event_type', 'nb_participants', 'nb_impacted', 'elevation' ] ENUM_RANGE_FIELDS = [ 'severity', 'avalanche_level', 'avalanche_slope' ] @staticmethod def to_search_document(document, index): search_document = SearchDocument.to_search_document(document, index) if document.redirects_to: return search_document SearchDocument.copy_fields( search_document, document, SearchXreport.FIELDS) SearchDocument.copy_enum_range_fields( search_document, document, SearchXreport.ENUM_RANGE_FIELDS, SearchXreport) return search_document SearchXreport.queryable_fields = QueryableMixin.get_queryable_fields( SearchXreport) SearchXreport.queryable_fields['date'] = QDate('xdate', 'date')
from c2corg_api.models.user_profile import USERPROFILE_TYPE from c2corg_api.search.mapping import SearchDocument, BaseMeta from c2corg_api.search.mapping_types import QueryableMixin class SearchUser(SearchDocument): class Meta(BaseMeta): doc_type = USERPROFILE_TYPE FIELDS = [] @staticmethod def to_search_document(document, index): search_document = SearchDocument.to_search_document(document, index) if document.redirects_to: return search_document for locale in document.locales: search_document['title_' + locale.lang] = '{0} {1}'.format( document.username or '', document.name or '') return search_document SearchUser.queryable_fields = QueryableMixin.get_queryable_fields(SearchUser)
from c2corg_api.models.book import BOOK_TYPE, Book from c2corg_api.search.mapping import SearchDocument, BaseMeta from c2corg_api.search.mapping_types import QueryableMixin, QEnumArray class SearchBook(SearchDocument): class Meta(BaseMeta): doc_type = BOOK_TYPE activities = QEnumArray( 'act', model_field=Book.activities) book_types = QEnumArray( 'btyp', model_field=Book.book_types) FIELDS = ['activities', 'book_types'] @staticmethod def to_search_document(document, index): search_document = SearchDocument.to_search_document(document, index) if document.redirects_to: return search_document SearchDocument.copy_fields( search_document, document, SearchBook.FIELDS) return search_document SearchBook.queryable_fields = QueryableMixin.get_queryable_fields( SearchBook)
from c2corg_api.models.book import BOOK_TYPE, Book from c2corg_api.search.mapping import SearchDocument, BaseMeta from c2corg_api.search.mapping_types import QueryableMixin, QEnumArray class SearchBook(SearchDocument): class Meta(BaseMeta): doc_type = BOOK_TYPE activities = QEnumArray("act", model_field=Book.activities) book_types = QEnumArray("btyp", model_field=Book.book_types) FIELDS = ["activities", "book_types"] @staticmethod def to_search_document(document, index): search_document = SearchDocument.to_search_document(document, index) if document.redirects_to: return search_document SearchDocument.copy_fields(search_document, document, SearchBook.FIELDS) return search_document SearchBook.queryable_fields = QueryableMixin.get_queryable_fields(SearchBook)