Mercurial > kallithea
changeset 2652:532ee86cf9b1 beta
Refactored create fork function to use new RepoModel functions instead of old
soon-to-be-destroyed functions
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Sun, 22 Jul 2012 01:15:53 +0200 |
parents | 957329c1c35b |
children | 8be70a4d72c7 |
files | rhodecode/controllers/forks.py rhodecode/lib/celerylib/tasks.py rhodecode/model/repo.py |
diffstat | 3 files changed, 35 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- a/rhodecode/controllers/forks.py Sat Jul 21 23:25:26 2012 +0200 +++ b/rhodecode/controllers/forks.py Sun Jul 22 01:15:53 2012 +0200 @@ -157,12 +157,10 @@ form_result = {} try: form_result = _form.to_python(dict(request.POST)) - # add org_path of repo so we can do a clone from it later - form_result['org_path'] = c.repo_info.repo_name # create fork is done sometimes async on celery, db transaction # management is handled there. - RepoModel().create_fork(form_result, self.rhodecode_user) + RepoModel().create_fork(form_result, self.rhodecode_user.user_id) h.flash(_('forked %s repository as %s') \ % (repo_name, form_result['repo_name']), category='success')
--- a/rhodecode/lib/celerylib/tasks.py Sat Jul 21 23:25:26 2012 +0200 +++ b/rhodecode/lib/celerylib/tasks.py Sun Jul 22 01:15:53 2012 +0200 @@ -367,32 +367,46 @@ :param cur_user: """ from rhodecode.model.repo import RepoModel + from rhodecode.model.user import UserModel log = get_logger(create_repo_fork) DBS = get_session() base_path = Repository.base_path() - - fork_repo = RepoModel(DBS).create(form_data, cur_user.user_id, - just_db=True, fork=True) + cur_user = UserModel(DBS)._get_user(cur_user) - alias = form_data['repo_type'] - org_repo_name = form_data['org_path'] fork_name = form_data['repo_name_full'] + repo_type = form_data['repo_type'] + description = form_data['description'] + owner = cur_user + private = form_data['private'] + clone_uri = form_data.get('clone_uri') + repos_group = form_data['repo_group'] + landing_rev = form_data['landing_rev'] + copy_fork_permissions = form_data.get('copy_permissions') + fork_of = RepoModel(DBS)._get_repo(form_data.get('fork_parent_id')) + + fork_repo = RepoModel(DBS).create_repo( + fork_name, repo_type, description, owner, private, clone_uri, + repos_group, landing_rev, just_db=True, fork_of=fork_of, + copy_fork_permissions=copy_fork_permissions + ) + update_after_clone = form_data['update_after_clone'] - source_repo_path = os.path.join(base_path, org_repo_name) + + source_repo_path = os.path.join(base_path, fork_of.repo_name) destination_fork_path = os.path.join(base_path, fork_name) log.info('creating fork of %s as %s', source_repo_path, destination_fork_path) - backend = get_backend(alias) + backend = get_backend(repo_type) backend(safe_str(destination_fork_path), create=True, src_url=safe_str(source_repo_path), update_after_clone=update_after_clone) log_create_repository(fork_repo.get_dict(), created_by=cur_user.username) action_logger(cur_user, 'user_forked_repo:%s' % fork_name, - org_repo_name, '', DBS) + fork_of.repo_name, '', DBS) action_logger(cur_user, 'user_created_fork:%s' % fork_name, fork_name, '', DBS)
--- a/rhodecode/model/repo.py Sat Jul 21 23:25:26 2012 +0200 +++ b/rhodecode/model/repo.py Sun Jul 22 01:15:53 2012 +0200 @@ -206,6 +206,10 @@ private=False, clone_uri=None, repos_group=None, landing_rev='tip', just_db=False, fork_of=None, copy_fork_permissions=False): + """ + Create repository + + """ from rhodecode.model.scm import ScmModel owner = self._get_user(owner) @@ -292,6 +296,14 @@ raise def create(self, form_data, cur_user, just_db=False, fork=None): + """ + Backward compatibility function, just a wrapper on top of create_repo + + :param form_data: + :param cur_user: + :param just_db: + :param fork: + """ repo_name = form_data['repo_name_full'] repo_type = form_data['repo_type']