summaryrefslogtreecommitdiffstats
path: root/askbot/utils
diff options
context:
space:
mode:
authorEvgeny Fadeev <evgeny.fadeev@gmail.com>2012-06-11 21:29:01 -0400
committerEvgeny Fadeev <evgeny.fadeev@gmail.com>2012-06-11 21:29:01 -0400
commit5c915affaef87bdef508c0f3ff2b3a128d138844 (patch)
treea976eeb5a3836863a0567b90accefe61c9b7514c /askbot/utils
parente50335853baf3238d600b0a04a5261510231474c (diff)
downloadaskbot-5c915affaef87bdef508c0f3ff2b3a128d138844.tar.gz
askbot-5c915affaef87bdef508c0f3ff2b3a128d138844.tar.bz2
askbot-5c915affaef87bdef508c0f3ff2b3a128d138844.zip
three-column tag category editor works
Diffstat (limited to 'askbot/utils')
-rw-r--r--askbot/utils/category_tree.py26
1 files changed, 26 insertions, 0 deletions
diff --git a/askbot/utils/category_tree.py b/askbot/utils/category_tree.py
index fb5e622f..fc8138e2 100644
--- a/askbot/utils/category_tree.py
+++ b/askbot/utils/category_tree.py
@@ -85,6 +85,32 @@ def has_category(tree, category_name):
#skip the dummy
return _has_category(tree[0][1], category_name)
+def _rename_category(tree, from_name, to_name):
+ for item in tree:
+ if item[0] == from_name:
+ item[0] = to_name
+ return True
+ if _rename_category(item[1], from_name, to_name):
+ return True
+ return False
+
+def rename_category(tree, from_name, to_name):
+ _rename_category(tree[0][1], from_name, to_name)
+ return sort_tree(tree)
+
+def _delete_category(tree, name):
+ for item in tree:
+ if item[0] == name:
+ tree.remove(item)
+ return True
+ if _delete_category(item[1], name):
+ return True
+ return False
+
+def delete_category(tree, name):
+ _delete_category(tree[0][1], name)
+ return sort_tree(tree)
+
def save_data(tree):
assert(askbot_settings.TAG_SOURCE == 'category-tree')
tree = sort_tree(tree)