]> asedeno.scripts.mit.edu Git - bluechips.git/blobdiff - bluechips/model/tag.py
Normalized the implementation of tags
[bluechips.git] / bluechips / model / tag.py
index c6a3661c28bcddc8dad27be0b633c9a252233f00..e2d2ef449ba5c6400e8a70c3f0b6d1e8f2a360dc 100644 (file)
@@ -1,10 +1,20 @@
+from bluechips.model import meta
+
 class Tag(object):
-    def __init__(self, expenditure=None, tag=u""):
-        self.expenditure = expenditure
-        self.tag = tag
+    def __init__(self, name=u""):
+        self.name = name
 
     def __repr__(self):
-        return '<Tag: expense: %s value: %s>' % (self.expenditure,
-                                                            self.tag)
+        return '<Tag: name: %s>' % (self.name)
+
+def create_tag(name):
+    if not isinstance(name, unicode):
+        raise TypeError('%r is not a unicode object' % type(name).__name__)
+    t = meta.Session.query(Tag).filter_by(name=name).first()
+    if t is None:
+        t = Tag(name)
+
+    return t
+
 
 __all__ = ['Tag']