]> asedeno.scripts.mit.edu Git - bluechips.git/blobdiff - bluechips/controllers/spend.py
Tags that are associated with any expenditures are automatically pruned
[bluechips.git] / bluechips / controllers / spend.py
index ddd0a3cd45947b3fbe9d3e466ebce6c6f33d8901..43293071bdca31592c60f10d575bd281a6872363 100644 (file)
@@ -63,6 +63,12 @@ def validate_state(value_dict, state, validator):
 ValidateNotAllZero = SimpleFormValidator(validate_state)
 
 
+def prune_tags():
+    for tag in meta.Session.query(model.Tag).all():
+        if not tag.expenditures:
+            meta.Session.delete(tag)
+    meta.Session.commit()
+
 class ExpenditureSchema(Schema):
     "Validate an expenditure."
     allow_extra_fields = False
@@ -163,6 +169,8 @@ class SpendController(BaseController):
                                   'op': op})
         g.handle_notification(involved_users, show, body)
 
+        prune_tags()
+
         return h.redirect_to('/')
 
     def delete(self, id):
@@ -195,4 +203,6 @@ class SpendController(BaseController):
                                       'op': 'deleted'})
             g.handle_notification(involved_users, show, body)
 
+            prune_tags()
+
         return h.redirect_to('/')