Esempio n. 1
0
class ApplicationsDoc(DocType):
    id = fields.IntegerField()
    slug = TranslatedKeywordField('slug')
    title = TranslatedTextField(
        'title', common_params={'suggest': fields.CompletionField()})
    notes = TranslatedTextField('notes')

    author = fields.KeywordField()

    url = fields.KeywordField()

    image_url = fields.KeywordField(attr='image_url')
    image_thumb_url = fields.KeywordField(attr='image_thumb_url')

    datasets = datasets_field(attr='published_datasets')
    users_following = fields.KeywordField(attr='users_following_list',
                                          multi=True)

    tags = TranslatedKeywordsList(attr='tags_list')

    views_count = fields.IntegerField()
    status = fields.KeywordField()
    modified = fields.DateField()
    created = fields.DateField()

    class Meta:
        doc_type = 'application'
        model = Application

    def get_queryset(self):
        return self._doc_type.model.objects.filter(status='published')
class ApplicationDocument(ExtendedDocument):
    image_alt = TranslatedTextField('image_alt')
    has_image_thumb = fields.BooleanField()
    url = fields.KeywordField()
    illustrative_graphics_url = fields.KeywordField()
    illustrative_graphics_alt = TranslatedTextField(
        'illustrative_graphics_alt')
    image_url = fields.TextField()
    image_thumb_url = fields.KeywordField()
    author = fields.KeywordField()

    datasets = datasets_field(attr='published_datasets')
    external_datasets = fields.NestedField(properties={
        'title': fields.KeywordField(),
        'url': fields.KeywordField(),
    })
    main_page_position = fields.IntegerField()

    class Index:
        name = mcs.ELASTICSEARCH_INDEX_NAMES['applications']
        settings = mcs.ELASTICSEARCH_DSL_SEARCH_INDEX_SETTINGS
        aliases = mcs.ELASTICSEARCH_DSL_SEARCH_INDEX_ALIAS

    class Django:
        model = Application
Esempio n. 3
0
class ApplicationsDoc(DocType):
    id = fields.IntegerField()
    slug = fields.KeywordField()
    title = fields.TextField(
        analyzer=polish_analyzer,
        fields={
            'raw': fields.KeywordField(),
            'suggest': fields.CompletionField()
        }
    )
    notes = fields.TextField(
        analyzer=polish_analyzer,
        fields={
            'raw': fields.KeywordField(),
        }
    )

    author = fields.TextField(
        analyzer=standard_analyzer,
        fields={
            'raw': fields.KeywordField(),
            # TODO: fix author data before this
            # 'suggest': fields.CompletionField()
        }
    )

    url = fields.KeywordField()

    image_url = fields.KeywordField(
        attr='image_url'
    )

    datasets = datasets_field(attr='published_datasets')
    users_following = fields.KeywordField(attr='users_following_list', multi=True)

    tags = fields.KeywordField(attr='tags_list', multi=True)

    views_count = fields.IntegerField()
    status = fields.KeywordField()
    modified = fields.DateField()
    created = fields.DateField()

    class Meta:
        doc_type = 'application'
        model = Application
        related_models = [Tag, Dataset, UserFollowingApplication]

    def get_instances_from_related(self, related_instance):
        if isinstance(related_instance, UserFollowingApplication):
            return related_instance.follower.followed_applications.all()
        if isinstance(related_instance, Dataset):
            return related_instance.applications.all()
        if isinstance(related_instance, Tag):
            return related_instance.applications.all()

    def get_queryset(self):
        return self._doc_type.model.objects.filter(status='published')
Esempio n. 4
0
class ArticleDoc(DocType):
    id = fields.IntegerField()
    slug = fields.KeywordField()
    title = fields.TextField(analyzer=polish_analyzer,
                             fields={
                                 'raw': fields.KeywordField(),
                                 'suggest': fields.CompletionField()
                             })
    notes = fields.TextField(analyzer=polish_analyzer,
                             fields={
                                 'raw': fields.TextField(),
                             })

    author = fields.TextField(
        analyzer=standard_analyzer,
        fields={
            'raw': fields.KeywordField(),
            # TODO: fix author data before this
            # 'suggest': fields.CompletionField()
        })

    datasets = datasets_field(attr='published_datasets')
    license = fields.NestedField(
        properties={
            'id': fields.IntegerField(),
            'name': fields.TextField(),
            'title': fields.TextField(),
            'url': fields.TextField()
        })

    tags = fields.KeywordField(attr='tags_list', multi=True)
    views_count = fields.IntegerField()
    users_following = fields.KeywordField(attr='users_following_list',
                                          multi=True)
    status = fields.TextField()
    modified = fields.DateField()
    created = fields.DateField()

    class Meta:
        doc_type = 'article'
        model = Article
        related_models = [Tag, Dataset, UserFollowingArticle]

    def get_instances_from_related(self, related_instance):
        if isinstance(related_instance, UserFollowingArticle):
            return related_instance.follower.followed_applications.all()
        if isinstance(related_instance, Dataset):
            return related_instance.articles.all()
        if isinstance(related_instance, Tag):
            return related_instance.articles.all()

    def get_queryset(self):
        return self._doc_type.model.objects.filter(
            status__in=['published', 'draft'])
Esempio n. 5
0
class InstitutionDoc(DocType):
    id = fields.IntegerField()
    slug = fields.TextField()
    title = fields.TextField(analyzer=polish_analyzer,
                             fields={
                                 'raw': fields.KeywordField(),
                                 'suggest': fields.CompletionField()
                             })
    description = fields.TextField(analyzer=polish_analyzer,
                                   fields={
                                       'raw': fields.KeywordField(),
                                   })
    image_url = fields.TextField(attr='image_url')

    postal_code = fields.KeywordField()
    city = fields.TextField(analyzer=standard_analyzer,
                            fields={'raw': fields.KeywordField()},
                            fielddata=True)
    street_type = fields.KeywordField()
    street = fields.TextField(analyzer=standard_analyzer,
                              fields={'raw': fields.KeywordField()})
    street_number = fields.KeywordField()
    flat_number = fields.KeywordField()
    email = fields.KeywordField()
    epuap = fields.KeywordField()
    institution_type = fields.KeywordField()
    regon = fields.KeywordField()
    tel = fields.KeywordField()
    tel = fields.KeywordField()
    website = fields.KeywordField()
    datasets = datasets_field(attr='published_datasets')
    status = fields.TextField()
    modified = fields.DateField()
    created = fields.DateField()

    class Meta:
        doc_type = 'institution'
        model = Organization
        related_models = [Dataset]

    def get_instances_from_related(self, related_instance):
        if isinstance(related_instance, Dataset):
            return related_instance.organization

    def get_queryset(self):
        return self._doc_type.model.objects.filter(status='published')
class InstitutionDocument(ExtendedDocument):
    NOTES_FIELD_NAME = 'description'
    image_url = fields.TextField()
    abbreviation = fields.KeywordField()
    postal_code = fields.KeywordField()
    city = fields.KeywordField()
    street_type = fields.KeywordField()
    street = fields.KeywordField()
    street_number = fields.KeywordField()
    flat_number = fields.KeywordField()
    email = fields.KeywordField()
    epuap = fields.KeywordField()
    fax = fields.KeywordField(attr='fax_display')
    tel = fields.KeywordField(attr='phone_display')
    regon = fields.KeywordField()
    website = fields.KeywordField()
    institution_type = fields.KeywordField()
    published_datasets_count = fields.IntegerField()
    published_resources_count = fields.IntegerField()
    sources = fields.NestedField(
        properties={
            'title': fields.TextField(),
            'url': fields.TextField(),
            'source_type': fields.TextField(),
        }
    )

    description = TranslatedTextField('description')
    datasets = datasets_field(attr='published_datasets')

    class Index:
        name = mcs.ELASTICSEARCH_INDEX_NAMES['institutions']
        settings = mcs.ELASTICSEARCH_DSL_SEARCH_INDEX_SETTINGS
        aliases = mcs.ELASTICSEARCH_DSL_SEARCH_INDEX_ALIAS

    class Django:
        model = Organization
        related_models = [Dataset, ]

    def prepare_model(self, instance):
        return 'institution'

    def get_instances_from_related(self, related_instance):
        if isinstance(related_instance, Dataset):
            return related_instance.organization
Esempio n. 7
0
class InstitutionDoc(DocType):
    id = fields.IntegerField()
    slug = TranslatedKeywordField('slug')
    title = TranslatedTextField('title', common_params={'suggest': fields.CompletionField()})
    description = TranslatedTextField('description')
    image_url = fields.TextField(
        attr='image_url'
    )

    postal_code = fields.KeywordField()
    city = fields.KeywordField()
    street_type = fields.KeywordField()
    street = fields.KeywordField()
    street_number = fields.KeywordField()
    flat_number = fields.KeywordField()
    email = fields.KeywordField()
    epuap = fields.KeywordField()
    institution_type = fields.KeywordField()
    regon = fields.KeywordField()
    tel = fields.KeywordField(attr='phone_display')
    fax = fields.KeywordField(attr='fax_display')
    website = fields.KeywordField()
    datasets = datasets_field(attr='published_datasets')
    status = fields.TextField()
    modified = fields.DateField()
    created = fields.DateField()

    class Meta:
        doc_type = 'institution'
        model = Organization
        related_models = [Dataset]

    def get_instances_from_related(self, related_instance):
        if isinstance(related_instance, Dataset):
            return related_instance.organization

    def get_queryset(self):
        return self._doc_type.model.objects.filter(status='published')
Esempio n. 8
0
class ArticleDoc(DocType):
    id = fields.IntegerField()
    slug = TranslatedKeywordField('slug')
    # FIXME jeden obiekt fields.CompletionField() dla wielu pól podrzędnych?
    title = TranslatedTextField(
        'title', common_params={'suggest': fields.CompletionField()})
    notes = TranslatedTextField('notes',
                                common_params={'raw': fields.TextField()},
                                std_params=False)

    author = fields.KeywordField()

    datasets = datasets_field(attr='published_datasets')
    category = article_category_field()
    license = fields.NestedField(
        properties={
            'id': fields.IntegerField(),
            'name': fields.TextField(),
            'title': fields.TextField(),
            'url': fields.TextField()
        })

    tags = TranslatedKeywordsList(attr='tags_list')
    views_count = fields.IntegerField()
    users_following = fields.KeywordField(attr='users_following_list',
                                          multi=True)
    status = fields.TextField()
    modified = fields.DateField()
    created = fields.DateField()

    class Meta:
        doc_type = 'article'
        model = Article

    def get_queryset(self):
        return self._doc_type.model.objects.filter(
            status__in=['published', 'draft'])
class ShowcaseDocument(ExtendedDocument):
    image_alt = TranslatedTextField('image_alt')
    has_image_thumb = fields.BooleanField()
    url = fields.KeywordField()
    illustrative_graphics_url = fields.KeywordField()
    illustrative_graphics_alt = TranslatedTextField(
        'illustrative_graphics_alt')
    image_url = fields.TextField()
    image_thumb_url = fields.KeywordField()
    author = fields.KeywordField()
    datasets = datasets_field(attr='published_datasets')
    external_datasets = fields.NestedField(properties={
        'title': fields.KeywordField(),
        'url': fields.KeywordField(),
    })
    main_page_position = fields.IntegerField()

    showcase_category = fields.KeywordField()
    showcase_types = fields.KeywordField(multi=True)
    showcase_platforms = fields.KeywordField(multi=True)
    license_type = fields.KeywordField()
    file_url = fields.KeywordField()
    is_desktop_app = fields.BooleanField()
    is_mobile_app = fields.BooleanField()
    mobile_apple_url = fields.KeywordField()
    mobile_google_url = fields.KeywordField()
    desktop_linux_url = fields.KeywordField()
    desktop_macos_url = fields.KeywordField()
    desktop_windows_url = fields.KeywordField()

    class Index:
        name = mcs.ELASTICSEARCH_INDEX_NAMES['showcases']
        settings = mcs.ELASTICSEARCH_DSL_SEARCH_INDEX_SETTINGS
        aliases = mcs.ELASTICSEARCH_DSL_SEARCH_INDEX_ALIAS

    class Django:
        model = Showcase
class ArticleDocument(ExtendedDocument):
    author = fields.KeywordField()
    category = article_category_field()
    license = fields.NestedField(
        properties={
            'id': fields.IntegerField(),
            'name': fields.TextField(),
            'title': fields.TextField(),
            'url': fields.TextField()
        })
    html_url = fields.KeywordField(attr='frontend_absolute_url')

    datasets = datasets_field(attr='published_datasets')

    class Index:
        name = mcs.ELASTICSEARCH_INDEX_NAMES['articles']
        settings = mcs.ELASTICSEARCH_DSL_SEARCH_INDEX_SETTINGS
        aliases = mcs.ELASTICSEARCH_DSL_SEARCH_INDEX_ALIAS

    class Django:
        model = Article

    def prepare_model(self, instance):
        return instance.category.type