You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@allura.apache.org by jo...@apache.org on 2013/04/04 18:38:12 UTC

[8/9] git commit: [#5673] ticket:299 Show changes from normal ticket edit and bulk edit in a uniform way

[#5673] ticket:299 Show changes from normal ticket edit and bulk edit in a uniform way


Project: http://git-wip-us.apache.org/repos/asf/incubator-allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-allura/commit/6a5dd9f6
Tree: http://git-wip-us.apache.org/repos/asf/incubator-allura/tree/6a5dd9f6
Diff: http://git-wip-us.apache.org/repos/asf/incubator-allura/diff/6a5dd9f6

Branch: refs/heads/master
Commit: 6a5dd9f6d8e389774a5e004d6fac1b43b0d7ac17
Parents: 85a4045
Author: Aleksey 'LXj' Alekseyev <go...@gmail.com>
Authored: Thu Mar 28 14:22:27 2013 +0200
Committer: Igor Bondarenko <je...@gmail.com>
Committed: Thu Apr 4 08:06:44 2013 +0000

----------------------------------------------------------------------
 ForgeTracker/forgetracker/tracker_main.py |   27 ++++++++++++++++--------
 1 files changed, 18 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/6a5dd9f6/ForgeTracker/forgetracker/tracker_main.py
----------------------------------------------------------------------
diff --git a/ForgeTracker/forgetracker/tracker_main.py b/ForgeTracker/forgetracker/tracker_main.py
index e31162f..24dc780 100644
--- a/ForgeTracker/forgetracker/tracker_main.py
+++ b/ForgeTracker/forgetracker/tracker_main.py
@@ -755,11 +755,13 @@ class RootController(BaseController):
             if user:
                 values['assigned_to_id'] = user._id
 
-        custom_fields = set([cf.name for cf in c.app.globals.custom_fields or[]])
         custom_values = {}
-        for k in custom_fields:
-            v = post_data.get(k)
-            if v: custom_values[k] = v
+        custom_fields = {}
+        for cf in c.app.globals.custom_fields or []:
+            v = post_data.get(cf.name)
+            if v:
+                custom_values[cf.name] = v
+                custom_fields[cf.name] = cf
 
         for ticket in tickets:
             message = ''
@@ -779,11 +781,18 @@ class RootController(BaseController):
                         getattr(ticket, k))
                 setattr(ticket, k, v)
             for k, v in custom_values.iteritems():
+                def cf_val(cf):
+                    return ticket.get_custom_user(cf.name) \
+                           if cf.type == 'user' \
+                           else ticket.custom_fields.get(cf.name)
+                cf = custom_fields[k]
+                old_value = cf_val(cf)
+                ticket.custom_fields[k] = v
+                new_value = cf_val(cf)
                 message += get_change_text(
                     get_label(k),
-                    v,
-                    ticket.custom_fields.get(k) or '')
-                ticket.custom_fields[k] = v
+                    new_value,
+                    old_value)
             if message != '':
                 ticket.discussion_thread.post(message)
                 ticket.commit()
@@ -1285,9 +1294,9 @@ class TicketController(BaseController):
                     return self.ticket.get_custom_user(cf.name) \
                            if cf.type == 'user' \
                            else self.ticket.custom_fields.get(cf.name)
-                changes[cf.name[1:]] = cf_val(cf)
+                changes[get_label(cf.name)] = cf_val(cf)
                 self.ticket.custom_fields[cf.name] = value
-                changes[cf.name[1:]] = cf_val(cf)
+                changes[get_label(cf.name)] = cf_val(cf)
         thread = self.ticket.discussion_thread
         tpl_fn = pkg_resources.resource_filename(
             'forgetracker', 'data/ticket_changed_tmpl')