diff rhodecode/controllers/admin/repos.py @ 1361:87ca17540603 beta

fixed #47 adding a new repo that have a group chosen had wrong paths.
author Marcin Kuzminski <marcin@python-works.com>
date Sat, 04 Jun 2011 22:57:22 +0200
parents 3bce31f026b8
children 9c0f5d558789
line wrap: on
line diff
--- a/rhodecode/controllers/admin/repos.py	Sat Jun 04 20:34:30 2011 +0200
+++ b/rhodecode/controllers/admin/repos.py	Sat Jun 04 22:57:22 2011 +0200
@@ -44,6 +44,7 @@
 from rhodecode.model.forms import RepoForm
 from rhodecode.model.scm import ScmModel
 from rhodecode.model.repo import RepoModel
+from sqlalchemy.exc import IntegrityError
 
 log = logging.getLogger(__name__)
 
@@ -179,11 +180,12 @@
                     category='success')
 
             if request.POST.get('user_created'):
+                #created by regular non admin user
                 action_logger(self.rhodecode_user, 'user_created_repo',
-                              form_result['repo_name'], '', self.sa)
+                              form_result['repo_name_full'], '', self.sa)
             else:
                 action_logger(self.rhodecode_user, 'admin_created_repo',
-                              form_result['repo_name'], '', self.sa)
+                              form_result['repo_name_full'], '', self.sa)
 
         except formencode.Invalid, errors:
 
@@ -287,6 +289,18 @@
             invalidate_cache('get_repo_cached_%s' % repo_name)
             h.flash(_('deleted repository %s') % repo_name, category='success')
 
+        except IntegrityError, e:
+            if e.message.find('repositories_fork_id_fkey'):
+                log.error(traceback.format_exc())
+                h.flash(_('Cannot delete %s it still contains attached '
+                          'forks') % repo_name,
+                        category='warning')
+            else:
+                log.error(traceback.format_exc())
+                h.flash(_('An error occurred during '
+                          'deletion of %s') % repo_name,
+                        category='error')
+
         except Exception, e:
             log.error(traceback.format_exc())
             h.flash(_('An error occurred during deletion of %s') % repo_name,