From 900af5e452d7579b2545073bab67f5445c1cc33c Mon Sep 17 00:00:00 2001 From: Jay Varner Date: Tue, 4 Jun 2024 13:02:59 -0400 Subject: [PATCH] Don't trigger re-index when Collection is saved --- apps/iiif/manifests/documents.py | 7 ++----- apps/iiif/manifests/models.py | 21 ++++++++++----------- 2 files changed, 12 insertions(+), 16 deletions(-) diff --git a/apps/iiif/manifests/documents.py b/apps/iiif/manifests/documents.py index 94508926..43fc038d 100644 --- a/apps/iiif/manifests/documents.py +++ b/apps/iiif/manifests/documents.py @@ -71,7 +71,7 @@ class Django: "published_date", "viewingdirection", ] - related_models = [Collection, Canvas] + related_models = [Canvas] class Meta: # make Keyword type default for strings, for custom dynamically-mapped facet fields @@ -168,9 +168,6 @@ def get_queryset(self): def get_instances_from_related(self, related_instance): """Retrieving item to index from related objects""" - if isinstance(related_instance, Collection): - # many to many relationship - return related_instance.manifests.all() - elif isinstance(related_instance, Canvas): + if isinstance(related_instance, Canvas): # many to many relationship return related_instance.manifest diff --git a/apps/iiif/manifests/models.py b/apps/iiif/manifests/models.py index c05d4cb2..a52a47c9 100644 --- a/apps/iiif/manifests/models.py +++ b/apps/iiif/manifests/models.py @@ -13,11 +13,10 @@ from django.conf import settings from edtf.fields import EDTFField from apps.iiif.manifests.validators import validate_edtf -import config.settings.local as settings from ..choices import Choices from ..kollections.models import Collection from..models import IiifBase -from .tasks import index_manifest_task, de_index_manifest_task +from .tasks import index_manifest_task JSONEncoder_olddefault = JSONEncoder.default # pylint: disable = invalid-name @@ -101,7 +100,7 @@ class Meta: def __str__(self): """String representation of the language""" - return self.name + return str(self.name) class ManifestManager(models.Manager): # pylint: disable = too-few-public-methods """Model manager for searches.""" @@ -328,7 +327,7 @@ def autocomplete_label(self): return self.label def __str__(self): - return self.label + return str(self.label) # FIXME: This creates a circular dependency - Importing UserAnnotation here. # Furthermore, we shouldn't have any of the IIIF apps depend on Readux. Need @@ -346,19 +345,19 @@ def save(self, *args, **kwargs): # pylint: disable = arguments-differ self.__rename_s3_objects() try: - Canvas = apps.get_model('canvases.canvas') + canvas_model = apps.get_model('canvases.canvas') if self.start_canvas is None and hasattr(self, 'canvas_set') and self.canvas_set.exists(): self.start_canvas = self.canvas_set.all().order_by('position').first() - Canvas.objects.filter(manifest=self).update(is_starting_page=False) - Canvas.objects.filter(pk=self.start_canvas.id).update(is_starting_page=True) - except Canvas.DoesNotExist: + canvas_model.objects.filter(manifest=self).update(is_starting_page=False) + canvas_model.objects.filter(pk=self.start_canvas.id).update(is_starting_page=True) + except canvas_model.DoesNotExist: self.start_canvas = None super().save(*args, **kwargs) - # for collection in self.collections.all(): - # collection.modified_at = self.modified_at - # collection.save() + for collection in self.collections.all(): # pylint: disable = no-member + collection.modified_at = self.modified_at + collection.save() if environ["DJANGO_ENV"] != 'test': # pragma: no cover index_manifest_task.apply_async(args=[str(self.id)])