# HG changeset patch # User Marcin Kuzminski # Date 1273403296 -7200 # Node ID 919b5bcd8630b688def5271e1117b74bcf968230 # Parent 20680c6b0a7fb23c564930b7303b4919b8bde01a Changed creation of repository to vcs implementation, added cache invalidate just after repo creation for repo switch list diff -r 20680c6b0a7f -r 919b5bcd8630 pylons_app/controllers/admin.py --- a/pylons_app/controllers/admin.py Sun May 09 12:19:08 2010 +0200 +++ b/pylons_app/controllers/admin.py Sun May 09 13:08:16 2010 +0200 @@ -1,10 +1,10 @@ import logging +import os from pylons import request, response, session, tmpl_context as c, url, app_globals as g from pylons.controllers.util import abort, redirect - +from beaker.cache import region_invalidate from pylons_app.lib.base import BaseController, render -import os from pylons_app.lib import auth from pylons_app.model.forms import LoginForm import formencode @@ -18,7 +18,6 @@ class AdminController(BaseController): def __before__(self): - c.admin_user = session.get('admin_user', False) c.admin_username = session.get('admin_username') @@ -73,7 +72,7 @@ if new_repo == '_admin': c.msg = 'DENIED' c.new_repo = '' - return render('add.html') + return render('admin/add.html') new_repo = new_repo.replace(" ", "_") new_repo = new_repo.replace("-", "_") @@ -82,19 +81,22 @@ self._create_repo(new_repo) c.new_repo = new_repo c.msg = 'added repo' + from pylons_app.lib.base import _get_repos + #clear our cached list for refresh with new repo + region_invalidate(_get_repos, None, 'repo_list_2') except Exception as e: c.new_repo = 'Exception when adding: %s' % new_repo c.msg = str(e) - return render('add.html') + return render('admin/add.html') def _create_repo(self, repo_name): if repo_name in [None, '', 'add']: raise Exception('undefined repo_name of repo') - + repo_path = os.path.join(g.base_path, repo_name) if check_repo(repo_name, g.base_path): - log.info('creating repo %s in %s', repo_name, self.repo_path) - cmd = """mkdir %s && hg init %s""" \ - % (self.repo_path, self.repo_path) - os.popen(cmd) + log.info('creating repo %s in %s', repo_name, repo_path) + from vcs.backends.hg import MercurialRepository + MercurialRepository(repo_path, create=True) +