From c235b56e12cdb3a66f07ad70446dd20b6f1edb2b Mon Sep 17 00:00:00 2001 From: Erwan Rouchet <rouchet@teklia.com> Date: Fri, 14 Oct 2022 15:16:47 +0200 Subject: [PATCH] Remove the ImageServer.validated field --- arkindex/documents/fixtures/data.json | 1 - .../documents/management/commands/bootstrap.py | 4 +--- .../tests/commands/test_load_export.py | 4 +--- arkindex/images/admin.py | 2 +- arkindex/images/managers.py | 10 ++-------- .../0009_remove_imageserver_validated.py | 17 +++++++++++++++++ arkindex/images/models.py | 1 - arkindex/images/tests/test_image_api.py | 7 ++----- arkindex/images/tests/test_imageserver.py | 14 -------------- 9 files changed, 24 insertions(+), 36 deletions(-) create mode 100644 arkindex/images/migrations/0009_remove_imageserver_validated.py diff --git a/arkindex/documents/fixtures/data.json b/arkindex/documents/fixtures/data.json index e3a2cf2781..79e4794886 100644 --- a/arkindex/documents/fixtures/data.json +++ b/arkindex/documents/fixtures/data.json @@ -1437,7 +1437,6 @@ "max_height": null, "created": "2020-02-02T01:23:45.678Z", "updated": "2020-02-02T01:23:45.678Z", - "validated": false, "read_only": false } }, diff --git a/arkindex/documents/management/commands/bootstrap.py b/arkindex/documents/management/commands/bootstrap.py index 3188a4b1eb..338a8e88ab 100644 --- a/arkindex/documents/management/commands/bootstrap.py +++ b/arkindex/documents/management/commands/bootstrap.py @@ -130,10 +130,9 @@ class Command(BaseCommand): server.id = IMAGE_SERVER_ID # Update base settings - if server.s3_bucket != IMAGE_SERVER_BUCKET or server.s3_region != IMAGE_SERVER_REGION or not server.validated: + if server.s3_bucket != IMAGE_SERVER_BUCKET or server.s3_region != IMAGE_SERVER_REGION: server.s3_bucket = IMAGE_SERVER_BUCKET server.s3_region = IMAGE_SERVER_REGION - server.validated = True server.save() self.warn("Updated image server S3 settings") else: @@ -146,7 +145,6 @@ class Command(BaseCommand): s3_bucket=IMAGE_SERVER_BUCKET, s3_region=IMAGE_SERVER_REGION, display_name='Development local server', - validated=True, ) self.success("Image server created") except IntegrityError as e: diff --git a/arkindex/documents/tests/commands/test_load_export.py b/arkindex/documents/tests/commands/test_load_export.py index 54d01c7ac3..0a7af1793c 100644 --- a/arkindex/documents/tests/commands/test_load_export.py +++ b/arkindex/documents/tests/commands/test_load_export.py @@ -38,7 +38,7 @@ class TestLoadExport(FixtureTestCase): 'process.revision': ['message', 'author'], 'process.workerversion': ['configuration', 'state', 'docker_image', 'docker_image_iid'], 'process.workertype': [], - 'images.imageserver': ['s3_bucket', 's3_region', 'created', 'updated', 'validated', 'read_only'], + 'images.imageserver': ['s3_bucket', 's3_region', 'created', 'updated', 'read_only'], 'images.image': ['created', 'updated', 'hash', 'status'], 'documents.element': ['created', 'updated', 'type'], 'documents.elementpath': [], @@ -119,7 +119,6 @@ class TestLoadExport(FixtureTestCase): polygon=LinearRing((0, 0), (0, 1000), (1000, 1000), (1000, 0), (0, 0)), image=Image.objects.all().first() ) - ImageServer.objects.all().update(validated=True) element = self.corpus.elements.get(name='Volume 1') transcription = Transcription.objects.first() @@ -226,7 +225,6 @@ class TestLoadExport(FixtureTestCase): polygon=LinearRing((0, 0), (0, 1000), (1000, 1000), (1000, 0), (0, 0)), image=Image.objects.all().first() ) - ImageServer.objects.all().update(validated=True) element = self.corpus.elements.get(name='Volume 1') transcription = Transcription.objects.first() diff --git a/arkindex/images/admin.py b/arkindex/images/admin.py index 213d09ed4a..d8805450f9 100644 --- a/arkindex/images/admin.py +++ b/arkindex/images/admin.py @@ -7,7 +7,7 @@ from arkindex.images.views import ImageServerMergeView, ImageServerSplitView class ImageServerAdmin(admin.ModelAdmin): - list_display = ('display_name', 'url', 'validated') + list_display = ('display_name', 'url') def get_urls(self): # Give views access to this ModelAdmin instance diff --git a/arkindex/images/managers.py b/arkindex/images/managers.py index ff4c2a25ba..167844021f 100644 --- a/arkindex/images/managers.py +++ b/arkindex/images/managers.py @@ -19,7 +19,7 @@ class ImageServerManager(models.Manager): def from_url(self, url): """ - Find a matching ImageServer from an image URL. Requires the server to be validated. + Find a matching ImageServer from an image URL. May raise ImageServer.DoesNotExist or ImageServer.MultipleObjectsReturned. """ servers = self \ @@ -41,7 +41,6 @@ class ImageServerManager(models.Manager): return self.create( url=server_url, display_name=server_url, - validated=True, ) raise self.model.DoesNotExist( @@ -53,9 +52,4 @@ class ImageServerManager(models.Manager): f'The URL "{url}" matched multiple existing image servers' ) - image_server = servers.get() - if not image_server.validated: - raise ValueError(f'The {image_server.url} image server is not validated. ' - 'Please ask an instance administrator to validate the IIIF server for this image.') - - return image_server + return servers.get() diff --git a/arkindex/images/migrations/0009_remove_imageserver_validated.py b/arkindex/images/migrations/0009_remove_imageserver_validated.py new file mode 100644 index 0000000000..2ee2bcefac --- /dev/null +++ b/arkindex/images/migrations/0009_remove_imageserver_validated.py @@ -0,0 +1,17 @@ +# Generated by Django 4.0.7 on 2022-10-12 14:39 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('images', '0008_delete_zone'), + ] + + operations = [ + migrations.RemoveField( + model_name='imageserver', + name='validated', + ), + ] diff --git a/arkindex/images/models.py b/arkindex/images/models.py index 184deaa3d6..620b18df7b 100644 --- a/arkindex/images/models.py +++ b/arkindex/images/models.py @@ -36,7 +36,6 @@ class ImageServer(models.Model): created = models.DateTimeField(auto_now_add=True) updated = models.DateTimeField(auto_now=True) - validated = models.BooleanField(default=False) read_only = models.BooleanField(default=False) objects = ImageServerManager() diff --git a/arkindex/images/tests/test_image_api.py b/arkindex/images/tests/test_image_api.py index afadba4895..e8a496d990 100644 --- a/arkindex/images/tests/test_image_api.py +++ b/arkindex/images/tests/test_image_api.py @@ -28,10 +28,7 @@ class TestImageApi(FixtureAPITestCase): @classmethod def setUpTestData(cls): super().setUpTestData() - cls.server = ImageServer.objects.create( - url='https://test-iiif-server.teklia.com/images', - validated=True - ) + cls.server = ImageServer.objects.create(url='https://test-iiif-server.teklia.com/images') def setUp(self): super().setUp() @@ -366,7 +363,7 @@ class TestImageApi(FixtureAPITestCase): def test_create_iiif_image_wrong_urls(self): self.client.force_login(self.superuser) # Create a server with same prefix as existing one - ImageServer.objects.create(url='https://test-iiif-server', validated=True) + ImageServer.objects.create(url='https://test-iiif-server') wrong_urls = { 'This field may not be blank.': [ '' diff --git a/arkindex/images/tests/test_imageserver.py b/arkindex/images/tests/test_imageserver.py index 09abbf3a67..4859055fd8 100644 --- a/arkindex/images/tests/test_imageserver.py +++ b/arkindex/images/tests/test_imageserver.py @@ -152,8 +152,6 @@ class TestImageServer(TestCase): """ Test ImageServer detection from images url """ - ImageServer.objects.update(validated=True) - self.assertEqual(ImageServer.objects.from_url('http://server.dev.teklia.com/iiif/test.jpg'), self.root_srv_1) self.assertEqual(ImageServer.objects.from_url('http://server2.dev.teklia.com/iiif/test.jpg'), self.root_srv_2) self.assertEqual(ImageServer.objects.count(), 5) @@ -163,7 +161,6 @@ class TestImageServer(TestCase): self.assertEqual(ImageServer.objects.count(), 6) self.assertEqual(new_server.url, 'http://new.server.dev.teklia.com/iiif') self.assertEqual(new_server.display_name, 'http://new.server.dev.teklia.com/iiif') - self.assertTrue(new_server.validated) # And then reused for later calls self.assertEqual(ImageServer.objects.from_url('http://new.server.dev.teklia.com/iiif/path%2Fto%2Ffile.jpg'), new_server) @@ -183,15 +180,4 @@ class TestImageServer(TestCase): self.assertEqual(ImageServer.objects.count(), 6) self.assertEqual(new_server.url, server_url) self.assertEqual(new_server.display_name, server_url) - self.assertTrue(new_server.validated) new_server.delete() - - def test_from_url_unvalidated_server(self): - """ - Test that when a server already exists but is unvalidated - from_url does not attempt to create it again. - """ - self.assertEqual(self.root_srv_2.validated, False) - with self.assertRaisesMessage(ValueError, "The http://server2.dev.teklia.com/iiif image server is not validated. Please ask an instance administrator to validate the IIIF server for this image."): - ImageServer.objects.from_url("http://server2.dev.teklia.com/iiif/path%2Fto%2Ffile.jpg") - self.assertEqual(ImageServer.objects.count(), 5) -- GitLab