From c06d466ac29d54aa13f057bac0febf71f9d77fda Mon Sep 17 00:00:00 2001
From: Seblu <sebastien.luttringer@smartjog.com>
Date: Wed, 9 Feb 2011 19:27:13 +0100
Subject: [PATCH] fix tagdisplay bug. command tags use tagdisplay

---
 cccli/command/tag.py        | 19 ++++++++++++++++---
 cccli/command/tagdisplay.py |  4 ++--
 cccli/tagdisplay.py         |  2 +-
 3 files changed, 19 insertions(+), 6 deletions(-)

diff --git a/cccli/command/tag.py b/cccli/command/tag.py
index 4f85651..d2700e8 100644
--- a/cccli/command/tag.py
+++ b/cccli/command/tag.py
@@ -20,6 +20,8 @@ class Command_tags(OptionCommand):
         self.option.set_usage("%prog [options] [tql]")
         self.option.add_option("--raw", action="store_true", dest="raw",
                                help="Don't append filter on request")
+        self.option.add_option("-n", "--no-tagdisplay", action="store_false", dest="tagdisplay", default=True,
+                               help="No tag display system")
 
     def __call__(self, argv):
         # Parse argline
@@ -27,6 +29,13 @@ class Command_tags(OptionCommand):
             (options, args) = self.option.parse_args(argv[1:])
         except SystemExit:
             return
+        # handle tagdisplay
+        if options.tagdisplay:
+            self.td = self.cli.tagdisplay.resolve
+            self.tc = self.cli.tagdisplay.color
+        else:
+            self.td = lambda tagname, tagvalue: unicode(tagvalue)
+            self.tc = lambda tagname: color["reset"]
         # append current login if nothing asked
         if len(args) == 0:
             tql = "a=%s"%self.cli.settings["login"]
@@ -42,9 +51,13 @@ class Command_tags(OptionCommand):
             raise cmdError("RPCError: %s"%str(e))
         # display answer
         for o in objs:
-            id = o.pop("id")
-            tags = " ".join([ "%s%s:%s%s"%(color["green"], t, color["reset"], v) for (t,v) in o.items() ])
-            self.printer.out("%sid:%s%s%s %s"%(color["green"], color["yellow"], id, color["reset"], tags))
+            id = self.td("id", o.pop("id"))
+            tags = " ".join([ "%s%s:%s%s"%(color["green"],
+                                           t,
+                                           self.tc(t),
+                                           self.td(t, v))
+                              for (t,v) in o.items() ])
+            self.printer.out("%sid:%s%s %s%s"%(color["green"], color["lblue"], id, tags, color["reset"]))
 
 
 class Command_addtag(Command):
diff --git a/cccli/command/tagdisplay.py b/cccli/command/tagdisplay.py
index e0608e0..af5e872 100644
--- a/cccli/command/tagdisplay.py
+++ b/cccli/command/tagdisplay.py
@@ -62,10 +62,10 @@ class Command_tagdisplay(OptionCommand):
             for t in self.cli.tagdisplay.types:
                 self.printer.out(t)
         elif what == "my":
-            self.printer.out("%sMy tagdisplay colors:%s"%(color["lblue"], color["reset"]))
+            self.printer.out("%sMy tag colors:%s"%(color["lblue"], color["reset"]))
             for (u,v) in self.cli.tagdisplay.tagcolor.items():
                 self.printer.out("%s: %s"%(u,v))
-            self.printer.out("%sMy tagdisplay types:%s"%(color["lblue"], color["reset"]))
+            self.printer.out("%sMy tag types:%s"%(color["lblue"], color["reset"]))
             for (u,v) in self.cli.tagdisplay.tagtype.items():
                 self.printer.out("%s: %s"%(u,v))
         else:
diff --git a/cccli/tagdisplay.py b/cccli/tagdisplay.py
index 9e1acd8..3165b0c 100644
--- a/cccli/tagdisplay.py
+++ b/cccli/tagdisplay.py
@@ -109,5 +109,5 @@ class TagDisplay(object):
             elif v < 86400:
                 return "%dh%dm%ds"%(v/3600, v/60%60, v%60)
             else:
-                return "%dd%dh%dm%ds"%(v/86400, v/3600%3600, v/60%60, v%60)
+                return "%dd%dh%dm%ds"%(v/86400, v/3600%24, v/60%60, v%60)
         return value
-- 
GitLab