diff options
author | Evgeny Fadeev <evgeny.fadeev@gmail.com> | 2012-06-11 21:29:01 -0400 |
---|---|---|
committer | Evgeny Fadeev <evgeny.fadeev@gmail.com> | 2012-06-11 21:29:01 -0400 |
commit | 5c915affaef87bdef508c0f3ff2b3a128d138844 (patch) | |
tree | a976eeb5a3836863a0567b90accefe61c9b7514c /askbot/utils | |
parent | e50335853baf3238d600b0a04a5261510231474c (diff) | |
download | askbot-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.py | 26 |
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) |