diff --git a/pylons_app/controllers/repos.py b/pylons_app/controllers/repos.py
--- a/pylons_app/controllers/repos.py
+++ b/pylons_app/controllers/repos.py
@@ -34,12 +34,9 @@ from pylons_app.model.repo_model import
from pylons_app.model.hg_model import HgModel
from pylons_app.model.forms import RepoForm
from pylons_app.model.meta import Session
-from datetime import datetime
import formencode
from formencode import htmlfill
import logging
-import os
-import shutil
log = logging.getLogger(__name__)
class ReposController(BaseController):
@@ -93,24 +90,24 @@ class ReposController(BaseController):
return render('admin/repos/repo_add.html')
- def update(self, id):
- """PUT /repos/id: Update an existing item"""
+ def update(self, repo_name):
+ """PUT /repos/repo_name: Update an existing item"""
# Forms posted to this method should contain a hidden field:
#
# Or using helpers:
- # h.form(url('repo', id=ID),
+ # h.form(url('repo', repo_name=ID),
# method='put')
- # url('repo', id=ID)
+ # url('repo', repo_name=ID)
repo_model = RepoModel()
_form = RepoForm(edit=True)()
try:
form_result = _form.to_python(dict(request.POST))
- repo_model.update(id, form_result)
+ repo_model.update(repo_name, form_result)
invalidate_cache('cached_repo_list')
- h.flash(_('Repository %s updated succesfully' % id), category='success')
+ h.flash(_('Repository %s updated succesfully' % repo_name), category='success')
except formencode.Invalid as errors:
- c.repo_info = repo_model.get(id)
+ c.repo_info = repo_model.get(repo_name)
c.users_array = repo_model.get_users_js()
errors.value.update({'user':c.repo_info.user.username})
c.form_errors = errors.error_dict
@@ -123,59 +120,72 @@ class ReposController(BaseController):
% form_result['repo_name'], category='error')
return redirect(url('repos'))
- def delete(self, id):
- """DELETE /repos/id: Delete an existing item"""
+ def delete(self, repo_name):
+ """DELETE /repos/repo_name: Delete an existing item"""
# Forms posted to this method should contain a hidden field:
#
# Or using helpers:
- # h.form(url('repo', id=ID),
+ # h.form(url('repo', repo_name=ID),
# method='delete')
- # url('repo', id=ID)
+ # url('repo', repo_name=ID)
repo_model = RepoModel()
- repo = repo_model.get(id)
+ repo = repo_model.get(repo_name)
if not repo:
h.flash(_('%s repository is not mapped to db perhaps'
' it was moved or renamed from the filesystem'
' please run the application again'
- ' in order to rescan repositories') % id, category='error')
+ ' in order to rescan repositories') % repo_name, category='error')
return redirect(url('repos'))
try:
repo_model.delete(repo)
invalidate_cache('cached_repo_list')
- h.flash(_('deleted repository %s') % id, category='success')
+ h.flash(_('deleted repository %s') % repo_name, category='success')
except Exception:
- h.flash(_('An error occured during deletion of %s') % id,
+ h.flash(_('An error occured during deletion of %s') % repo_name,
category='error')
return redirect(url('repos'))
- def show(self, id, format='html'):
- """GET /repos/id: Show a specific item"""
- # url('repo', id=ID)
+ def delete_perm_user(self, repo_name):
+ """
+ DELETE an existing repository permission user
+ @param repo_name:
+ """
- def edit(self, id, format='html'):
- """GET /repos/id/edit: Form to edit an existing item"""
- # url('edit_repo', id=ID)
+ try:
+ repo_model = RepoModel()
+ repo_model.delete_perm_user(request.POST, repo_name)
+ except Exception as e:
+ h.flash(_('An error occured during deletion of repository user'),
+ category='error')
+
+
+ def show(self, repo_name, format='html'):
+ """GET /repos/repo_name: Show a specific item"""
+ # url('repo', repo_name=ID)
+
+ def edit(self, repo_name, format='html'):
+ """GET /repos/repo_name/edit: Form to edit an existing item"""
+ # url('edit_repo', repo_name=ID)
repo_model = RepoModel()
- c.repo_info = repo = repo_model.get(id)
+ c.repo_info = repo = repo_model.get(repo_name)
if not repo:
h.flash(_('%s repository is not mapped to db perhaps'
' it was created or renamed from the filesystem'
' please run the application again'
- ' in order to rescan repositories') % id, category='error')
+ ' in order to rescan repositories') % repo_name, category='error')
return redirect(url('repos'))
defaults = c.repo_info.__dict__
defaults.update({'user':c.repo_info.user.username})
-
c.users_array = repo_model.get_users_js()
for p in c.repo_info.repo2perm:
defaults.update({'perm_%s' % p.user.username:
p.permission.permission_name})
-
+
return htmlfill.render(
render('admin/repos/repo_edit.html'),
defaults=defaults,