Beispiel #1
0

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)
Beispiel #3
0
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)
Beispiel #4
0
        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')
Beispiel #5
0
    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)
Beispiel #6
0
        "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")
Beispiel #7
0
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)
Beispiel #8
0
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)
Beispiel #9
0
        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')
Beispiel #10
0
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)
Beispiel #11
0
    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)
Beispiel #12
0
        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')
Beispiel #13
0
    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)
Beispiel #15
0
        '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')
Beispiel #16
0
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)
Beispiel #17
0
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)
Beispiel #18
0
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)