[#5383] record label changelog when labels are removed
diff --git a/ForgeTracker/forgetracker/tests/functional/test_root.py b/ForgeTracker/forgetracker/tests/functional/test_root.py
index 97c1982..b4c914b 100644
--- a/ForgeTracker/forgetracker/tests/functional/test_root.py
+++ b/ForgeTracker/forgetracker/tests/functional/test_root.py
@@ -299,6 +299,7 @@ def test_ticket_label_unlabel(self):
response = self.app.get('/bugs/1/')
assert_true('yellow' in response)
assert_true(u'greén' in response)
+ assert_true('<li><strong>labels</strong>: --> yellow, greén</li>' in response)
self.app.post('/bugs/1/update_ticket',{
'summary':'zzz',
'description':'bbb',
@@ -310,8 +311,18 @@ def test_ticket_label_unlabel(self):
})
response = self.app.get('/bugs/1/')
assert_true('yellow' in response)
- # the following assert is no longer true since "green" is shown in changelog
- # assert_true('green' not in response)
+ assert_true('<li><strong>labels</strong>: yellow, greén --> yellow</li>' in response)
+ self.app.post('/bugs/1/update_ticket',{
+ 'summary':'zzz',
+ 'description':'bbb',
+ 'status':'ccc',
+ '_milestone':'',
+ 'assigned_to':'',
+ 'labels':'',
+ 'comment': ''
+ })
+ response = self.app.get('/bugs/1/')
+ assert_true('<li><strong>labels</strong>: yellow --> </li>' in response)
def test_new_attachment(self):
file_name = 'test_root.py'
diff --git a/ForgeTracker/forgetracker/tracker_main.py b/ForgeTracker/forgetracker/tracker_main.py
index c329c28..bbf4e44 100644
--- a/ForgeTracker/forgetracker/tracker_main.py
+++ b/ForgeTracker/forgetracker/tracker_main.py
@@ -1100,10 +1100,9 @@ def _update_ticket(self, post_data):
changes = changelog()
comment = post_data.pop('comment', None)
labels = post_data.pop('labels', None) or []
- if labels:
- changes['labels'] = self.ticket.labels
- changes['labels'] = labels
+ changes['labels'] = self.ticket.labels
self.ticket.labels = labels
+ changes['labels'] = self.ticket.labels
for k in ['summary', 'description', 'status']:
changes[k] = getattr(self.ticket, k)
setattr(self.ticket, k, post_data.pop(k, ''))