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
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')
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'])
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
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')
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