aboutsummaryrefslogtreecommitdiff
path: root/rhodecode/model/repos_group.py
diff options
context:
space:
mode:
authorMarcin Kuzminski <marcin@python-works.com>2011-05-23 02:46:43 +0200
committerMarcin Kuzminski <marcin@python-works.com>2011-05-23 02:46:43 +0200
commit139f62c87a7de37a27dbad66ab4e802333cc550f (patch)
treeda0612d82e9e57363ff96b3e9e7ab7992874c6d0 /rhodecode/model/repos_group.py
parent4f0c3932fdffe2c764b71bf8e13f963eba179002 (diff)
#47 implemented deleting of empty groups. Fixed problem with full paths on nested groups
--HG-- branch : beta
Diffstat (limited to 'rhodecode/model/repos_group.py')
-rw-r--r--rhodecode/model/repos_group.py21
1 files changed, 13 insertions, 8 deletions
diff --git a/rhodecode/model/repos_group.py b/rhodecode/model/repos_group.py
index 634ab1d6..9ba38eb0 100644
--- a/rhodecode/model/repos_group.py
+++ b/rhodecode/model/repos_group.py
@@ -58,12 +58,12 @@ class ReposGroupModel(BaseModel):
"""
if parent_id:
- parent_group_name = Group.get(parent_id).group_name
+ paths = Group.get(parent_id).full_path.split(Group.url_sep())
+ parent_path = os.sep.join(paths)
else:
- parent_group_name = ''
+ parent_path = ''
- create_path = os.path.join(self.repos_path, parent_group_name,
- group_name)
+ create_path = os.path.join(self.repos_path, parent_path, group_name)
log.debug('creating new group in %s', create_path)
if os.path.isdir(create_path):
@@ -81,13 +81,17 @@ class ReposGroupModel(BaseModel):
"""
pass
- def __delete_group(self, group_name):
+ def __delete_group(self, group):
"""
Deletes a group from a filesystem
- :param group_name:
+ :param group: instance of group from database
"""
- pass
+ paths = group.full_path.split(Group.url_sep())
+ paths = os.sep.join(paths)
+
+ rm_path = os.path.join(self.repos_path, paths)
+ os.rmdir(rm_path)
def create(self, form_data):
try:
@@ -124,8 +128,9 @@ class ReposGroupModel(BaseModel):
def delete(self, users_group_id):
try:
- users_group = self.get(users_group_id, cache=False)
+ users_group = Group.get(users_group_id)
self.sa.delete(users_group)
+ self.__delete_group(users_group)
self.sa.commit()
except:
log.error(traceback.format_exc())