From 1dd63a5214b803b97bd32b0dd90563d72b88fba7 Mon Sep 17 00:00:00 2001 From: Martin Burchell <martinb@aptivate.org> Date: Wed, 29 Jul 2015 15:31:05 +0100 Subject: [PATCH] Fixed last_modified date for item updated on term --- django/website/data_layer/models.py | 13 ++++++++++--- django/website/data_layer/tests/item_tests.py | 14 +++++++++++++- 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/django/website/data_layer/models.py b/django/website/data_layer/models.py index 3970173f..e669be8e 100644 --- a/django/website/data_layer/models.py +++ b/django/website/data_layer/models.py @@ -55,6 +55,13 @@ Item = Message @receiver(models.signals.m2m_changed, sender=Item.terms.through, dispatch_uid="data_layer.models.terms_signal_handler") def terms_signal_handler(sender, **kwargs): - if kwargs.get('action') == 'post_add': - instance = kwargs.get('instance') - instance.note_external_modification() + if kwargs.get('action') != 'post_add': + return + + if kwargs.get('reverse'): + items = Item.objects.filter(pk__in=kwargs.get('pk_set')) + else: + items = [kwargs.get('instance')] + + for item in items: + item.note_external_modification() diff --git a/django/website/data_layer/tests/item_tests.py b/django/website/data_layer/tests/item_tests.py index 6ac1c7f8..306af1b1 100644 --- a/django/website/data_layer/tests/item_tests.py +++ b/django/website/data_layer/tests/item_tests.py @@ -56,10 +56,22 @@ def test_last_modified_date_updates_on_body_change(item, mock_time_now): @pytest.mark.django_db -def test_last_modified_date_updates_on_category_change(item, mock_time_now): +def test_last_modified_date_updates_on_item_category_change( + item, mock_time_now): with patch('django.utils.timezone.now', new=mock_time_now): orig_last_modified = last_modified(item) term = TermFactory() item.terms.add(term) assert num_updates(orig_last_modified, last_modified(item)) == 1 + + +@pytest.mark.django_db +def test_last_modified_date_updates_on_category_item_change( + item, mock_time_now): + with patch('django.utils.timezone.now', new=mock_time_now): + orig_last_modified = last_modified(item) + term = TermFactory() + term.items.add(item) + + assert num_updates(orig_last_modified, last_modified(item)) == 1 -- GitLab