From c36b1ff0d791e3378c5e087b2ea005cd469fc846 Mon Sep 17 00:00:00 2001
From: Martin Burchell <martinb@aptivate.org>
Date: Wed, 29 Jul 2015 15:37:14 +0100
Subject: [PATCH] Fixed item last_modified to update on term delete

---
 django/website/data_layer/models.py           |  2 +-
 django/website/data_layer/tests/item_tests.py | 12 ++++++++++++
 2 files changed, 13 insertions(+), 1 deletion(-)

diff --git a/django/website/data_layer/models.py b/django/website/data_layer/models.py
index e669be8e..97fbebfa 100644
--- a/django/website/data_layer/models.py
+++ b/django/website/data_layer/models.py
@@ -55,7 +55,7 @@ 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':
+    if kwargs.get('action') not in ('post_add', 'post_remove'):
         return
 
     if kwargs.get('reverse'):
diff --git a/django/website/data_layer/tests/item_tests.py b/django/website/data_layer/tests/item_tests.py
index 045d270b..8259a410 100644
--- a/django/website/data_layer/tests/item_tests.py
+++ b/django/website/data_layer/tests/item_tests.py
@@ -66,6 +66,18 @@ def test_last_modified_date_updates_on_item_category_add(
         assert num_updates(orig_last_modified, last_modified(item)) == 1
 
 
+@pytest.mark.django_db
+def test_last_modified_date_updates_on_item_category_delete(
+        item, mock_time_now):
+    with patch('django.utils.timezone.now', new=mock_time_now):
+        term = TermFactory()
+        item.terms.add(term)
+        orig_last_modified = last_modified(item)
+        item.terms.remove(term)
+
+        assert num_updates(orig_last_modified, last_modified(item)) == 1
+
+
 @pytest.mark.django_db
 def test_last_modified_date_updates_on_category_item_add(
         item, mock_time_now):
-- 
GitLab