From 4ecbe21ece60c03f3f0e2ca05c0ffaf73e7d2588 Mon Sep 17 00:00:00 2001 From: amercader Date: Tue, 9 Aug 2016 16:21:55 +0100 Subject: [PATCH] [#3199] Only update the latest revision --- ckan/logic/action/update.py | 1 + ckan/tests/logic/action/test_update.py | 12 +++++++++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/ckan/logic/action/update.py b/ckan/logic/action/update.py index ad1807b5111..667021cb14e 100644 --- a/ckan/logic/action/update.py +++ b/ckan/logic/action/update.py @@ -1093,6 +1093,7 @@ def _bulk_update_dataset(context, data_dict, update_dict): model.Session.query(model.package_revision_table) \ .filter(model.PackageRevision.id.in_(datasets)) \ .filter(model.PackageRevision.owner_org == org_id) \ + .filter(model.PackageRevision.current is True) \ .update(update_dict, synchronize_session=False) model.Session.commit() diff --git a/ckan/tests/logic/action/test_update.py b/ckan/tests/logic/action/test_update.py index 63ffdb79baa..13061d34640 100644 --- a/ckan/tests/logic/action/test_update.py +++ b/ckan/tests/logic/action/test_update.py @@ -954,7 +954,9 @@ def test_bulk_make_private(self): eq_(dataset.private, True) revisions = model.Session.query(model.PackageRevision) \ - .filter(model.PackageRevision.owner_org == org['id']).all() + .filter(model.PackageRevision.owner_org == org['id']) \ + .filter(model.PackageRevision.current is True) \ + .all() for revision in revisions: eq_(revision.private, True) @@ -983,7 +985,9 @@ def test_bulk_make_public(self): eq_(dataset.private, False) revisions = model.Session.query(model.PackageRevision) \ - .filter(model.PackageRevision.owner_org == org['id']).all() + .filter(model.PackageRevision.owner_org == org['id']) \ + .filter(model.PackageRevision.current is True) \ + .all() for revision in revisions: eq_(revision.private, False) @@ -1011,6 +1015,8 @@ def test_bulk_delete(self): eq_(dataset.state, 'deleted') revisions = model.Session.query(model.PackageRevision) \ - .filter(model.PackageRevision.owner_org == org['id']).all() + .filter(model.PackageRevision.owner_org == org['id']) \ + .filter(model.PackageRevision.current is True) \ + .all() for revision in revisions: eq_(revision.state, 'deleted')