changeset 1350:eb489bf9d7c7 beta

#47 fixed group aware on adding new repo
author Marcin Kuzminski <marcin@python-works.com>
date Thu, 26 May 2011 01:38:40 +0200
parents 526120c77a38
children e0f670b987eb
files rhodecode/model/repo.py
diffstat 1 files changed, 18 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/rhodecode/model/repo.py	Thu May 26 01:28:06 2011 +0200
+++ b/rhodecode/model/repo.py	Thu May 26 01:38:40 2011 +0200
@@ -205,6 +205,9 @@
             for k, v in form_data.items():
                 if k == 'repo_name':
                     v = repo_name
+                if k == 'repo_group':
+                    k = 'group_id'
+
                 setattr(new_repo, k, v)
 
             if fork:
@@ -238,6 +241,7 @@
 
             if not just_db:
                 self.__create_repo(repo_name, form_data['repo_type'],
+                                   form_data['repo_group'],
                                    form_data['clone_uri'])
 
             self.sa.commit()
@@ -302,15 +306,26 @@
             self.sa.rollback()
             raise
 
-    def __create_repo(self, repo_name, alias, clone_uri=False):
+    def __create_repo(self, repo_name, alias, new_parent_id, clone_uri=False):
         """
-        makes repository on filesystem
+        makes repository on filesystem it's group aware
 
         :param repo_name:
         :param alias:
+        :param parent_id:
+        :param clone_uri:
         """
         from rhodecode.lib.utils import check_repo
-        repo_path = os.path.join(self.repos_path, repo_name)
+
+
+        if new_parent_id:
+            paths = Group.get(new_parent_id).full_path.split(Group.url_sep())
+            new_parent_path = os.sep.join(paths)
+        else:
+            new_parent_path = ''
+
+        repo_path = os.path.join(self.repos_path, new_parent_path, repo_name)
+
         if check_repo(repo_name, self.repos_path):
             log.info('creating repo %s in %s @ %s', repo_name, repo_path,
                     clone_uri)