From 0bc78c74800ac76b2f00c569cfa51639ad9d74c4 Mon Sep 17 00:00:00 2001
From: Manon Blanco <blanco@teklia.com>
Date: Mon, 13 Sep 2021 14:33:59 +0200
Subject: [PATCH] Export repository url

---
 arkindex/documents/export/structure.sql       | 1 +
 arkindex/documents/export/worker_version.sql  | 3 ++-
 arkindex/documents/tests/tasks/test_export.py | 8 +++++---
 3 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/arkindex/documents/export/structure.sql b/arkindex/documents/export/structure.sql
index fe1849707e..add6b7a306 100644
--- a/arkindex/documents/export/structure.sql
+++ b/arkindex/documents/export/structure.sql
@@ -16,6 +16,7 @@ CREATE TABLE worker_version (
     slug VARCHAR(100) NOT NULL,
     type VARCHAR(50) NOT NULL,
     revision VARCHAR(50) NOT NULL,
+    repository_url TEXT NOT NULL,
     PRIMARY KEY (id)
 );
 
diff --git a/arkindex/documents/export/worker_version.sql b/arkindex/documents/export/worker_version.sql
index 6f99f8744c..509b9417c9 100644
--- a/arkindex/documents/export/worker_version.sql
+++ b/arkindex/documents/export/worker_version.sql
@@ -3,9 +3,10 @@
 -- fills up the RAM.  Adding DISTINCT to all the SELECT queries of the UNION
 -- slows this query down by ~20%.  Using multiple INs instead of a UNION makes
 -- this query twice as slow.
-SELECT version.id, worker.name, worker.slug, worker.type, revision.hash
+SELECT version.id, worker.name, worker.slug, worker.type, revision.hash, repository.url
 FROM dataimport_workerversion version
 INNER JOIN dataimport_worker worker ON (version.worker_id = worker.id)
+INNER JOIN dataimport_repository repository ON (worker.repository_id = repository.id)
 INNER JOIN dataimport_revision revision ON (version.revision_id = revision.id)
 WHERE version.id IN (
     SELECT worker_version_id FROM documents_element WHERE corpus_id = '{corpus_id}'::uuid
diff --git a/arkindex/documents/tests/tasks/test_export.py b/arkindex/documents/tests/tasks/test_export.py
index 59efd89e14..f03fb05e51 100644
--- a/arkindex/documents/tests/tasks/test_export.py
+++ b/arkindex/documents/tests/tasks/test_export.py
@@ -137,21 +137,23 @@ class TestExport(FixtureTestCase):
         )
 
         self.assertCountEqual(
-            db.execute('SELECT id, name, slug, type, revision FROM worker_version').fetchall(),
+            db.execute('SELECT id, name, slug, type, revision, repository_url FROM worker_version').fetchall(),
             [
                 (
                     str(version.id),
                     version.worker.name,
                     version.worker.slug,
                     version.worker.type,
-                    version.revision.hash
+                    version.revision.hash,
+                    version.worker.repository.url
                 ),
                 (
                     str(metadata_version.id),
                     metadata_version.worker.name,
                     metadata_version.worker.slug,
                     metadata_version.worker.type,
-                    metadata_version.revision.hash
+                    metadata_version.revision.hash,
+                    metadata_version.worker.repository.url
                 )
             ]
         )
-- 
GitLab