From c0816dd4dca29d261d301906eab83ec4a009c98c Mon Sep 17 00:00:00 2001 From: vrigal <rigal@teklia.com> Date: Mon, 2 Dec 2019 15:44:23 +0100 Subject: [PATCH] Switch to structural MetaType --- arkindex/documents/api/elements.py | 42 +++++++++++-------- arkindex/documents/api/search.py | 2 +- ...etadata.py => 0028_structural_metadata.py} | 10 ++--- arkindex/project/elastic.py | 6 +-- 4 files changed, 33 insertions(+), 27 deletions(-) rename arkindex/documents/migrations/{0028_structure_metadata.py => 0028_structural_metadata.py} (76%) diff --git a/arkindex/documents/api/elements.py b/arkindex/documents/api/elements.py index 83860011ad..4e7f0badf8 100644 --- a/arkindex/documents/api/elements.py +++ b/arkindex/documents/api/elements.py @@ -119,11 +119,13 @@ class ElementsList(CorpusACLMixin, ListAPIView): } }, { - 'name': 'structure', + 'name': 'structural_metadata', 'in': 'query', 'description': 'Filter elements by a structural metadata.', 'required': False, - 'schema': {'type': 'string'}, + 'schema': { + 'type': 'string' + } } ] } @@ -147,11 +149,11 @@ class ElementsList(CorpusACLMixin, ListAPIView): if only_folder is not None: filters['type__folder'] = only_folder.lower() not in ('false', '0') - structure_param = self.request.query_params.get('structure') - if structure_param is not None: + structural_metadata = self.request.query_params.get('structural_metadata') + if structural_metadata is not None: filters['metadatas__in'] = MetaData.objects.filter( - type=MetaType.Structure, - value__icontains=structure_param + type=MetaType.Structural, + value__icontains=structural_metadata ) if 'corpus' in self.request.query_params: @@ -390,11 +392,13 @@ class ElementParents(ListAPIView): } }, { - 'name': 'structure', + 'name': 'structural_metadata', 'in': 'query', 'description': 'Filter elements by a structural metadata.', 'required': False, - 'schema': {'type': 'string'}, + 'schema': { + 'type': 'string' + } } ] } @@ -419,11 +423,11 @@ class ElementParents(ListAPIView): if only_folder is not None: filters['type__folder'] = only_folder.lower() not in ('false', '0') - structure_param = self.request.query_params.get('structure') - if structure_param is not None: + structural_metadata = self.request.query_params.get('structural_metadata') + if structural_metadata is not None: filters['metadatas__in'] = MetaData.objects.filter( - type=MetaType.Structure, - value__icontains=structure_param + type=MetaType.Structural, + value__icontains=structural_metadata ) recursive_param = self.request.query_params.get('recursive') @@ -542,11 +546,13 @@ class ElementChildren(ListAPIView): } }, { - 'name': 'structure', + 'name': 'structural_metadata', 'in': 'query', 'description': 'Filter elements by a structural metadata.', 'required': False, - 'schema': {'type': 'string'}, + 'schema': { + 'type': 'string' + } } ] } @@ -571,11 +577,11 @@ class ElementChildren(ListAPIView): if only_folder is not None: filters['type__folder'] = only_folder.lower() not in ('false', '0') - structure_param = self.request.query_params.get('structure') - if structure_param is not None: + structural_metadata = self.request.query_params.get('structural_metadata') + if structural_metadata is not None: filters['metadatas__in'] = MetaData.objects.filter( - type=MetaType.Structure, - value__icontains=structure_param + type=MetaType.Structural, + value__icontains=structural_metadata ) recursive_param = self.request.query_params.get('recursive') diff --git a/arkindex/documents/api/search.py b/arkindex/documents/api/search.py index 4860f73c67..fe72423bfe 100644 --- a/arkindex/documents/api/search.py +++ b/arkindex/documents/api/search.py @@ -56,7 +56,7 @@ class ElementSearch(SearchAPIView): if structural_metadata: search = search.filter( 'wildcard', - structure='*{}*'.format(structural_metadata) + structural_metadata='*{}*'.format(structural_metadata) ) if element_type: diff --git a/arkindex/documents/migrations/0028_structure_metadata.py b/arkindex/documents/migrations/0028_structural_metadata.py similarity index 76% rename from arkindex/documents/migrations/0028_structure_metadata.py rename to arkindex/documents/migrations/0028_structural_metadata.py index bca21aac81..4fe0ccb8ad 100644 --- a/arkindex/documents/migrations/0028_structure_metadata.py +++ b/arkindex/documents/migrations/0028_structural_metadata.py @@ -16,19 +16,19 @@ def update_balsac_pages(apps, schema_editor): print('Renamed {} metadata from BALSAC corpora'.format(renamed_count)) -def structure_metadata(apps, schema_editor): +def structural_metadata(apps, schema_editor): """ Update reference """ MetaData = apps.get_model('documents', 'MetaData') references = MetaData.objects.filter(Q(name='Reference') | Q(name='reference'), type=MetaType.Text) - moved_count = references.update(type=MetaType.Structure) - print('Moved {} reference metadata to Structure type'.format(moved_count)) + moved_count = references.update(type=MetaType.Structural) + print('Moved {} reference metadata to Structural type'.format(moved_count)) def reverse_migration(apps, schema_editor): MetaData = apps.get_model('documents', 'MetaData') - MetaData.objects.filter(type=MetaType.Structure).update(type=MetaType.Text) + MetaData.objects.filter(type=MetaType.Structural).update(type=MetaType.Text) class Migration(migrations.Migration): @@ -39,5 +39,5 @@ class Migration(migrations.Migration): operations = [ migrations.RunPython(update_balsac_pages, migrations.RunPython.noop), - migrations.RunPython(structure_metadata, reverse_migration) + migrations.RunPython(structural_metadata, reverse_migration) ] diff --git a/arkindex/project/elastic.py b/arkindex/project/elastic.py index 6c2779bab3..cd122035f5 100644 --- a/arkindex/project/elastic.py +++ b/arkindex/project/elastic.py @@ -95,7 +95,7 @@ class ESElement(Document): corpus = Keyword() # Used exclusively for sorting parents = Keyword() - structure = Keyword() + structural_metadata = Keyword() transcriptions = Nested(ESTranscriptionInnerDoc) date_range = RawDateRange(format='yyyy||yyyy-MM||yyyy-MM-dd') @@ -138,9 +138,9 @@ class ESElement(Document): element.name for element in Element.objects.get_ascending(instance.id) ], - structure=[ + structural_metadata=[ md.value - for md in instance.metadatas.filter(type=MetaType.Structure) + for md in instance.metadatas.filter(type=MetaType.Structural) ], transcriptions=list(map( ESTranscriptionInnerDoc.from_model, -- GitLab