diff pylons_app/controllers/admin/settings.py @ 348:e8fc875467bd

implemented manual repo rescann and remapping
author Marcin Kuzminski <marcin@python-works.com>
date Wed, 14 Jul 2010 16:51:19 +0200
parents 51362853ac3b
children 664a5b8c551a
line wrap: on
line diff
--- a/pylons_app/controllers/admin/settings.py	Wed Jul 14 15:42:39 2010 +0200
+++ b/pylons_app/controllers/admin/settings.py	Wed Jul 14 16:51:19 2010 +0200
@@ -23,14 +23,16 @@
 @author: marcink
 """
 from formencode import htmlfill
-from pylons import request, session, tmpl_context as c, url
+from pylons import request, session, tmpl_context as c, url, app_globals as g
 from pylons.controllers.util import abort, redirect
 from pylons.i18n.translation import _
 from pylons_app.lib import helpers as h
 from pylons_app.lib.auth import LoginRequired, HasPermissionAllDecorator
 from pylons_app.lib.base import BaseController, render
+from pylons_app.lib.utils import repo2db_mapper, invalidate_cache
 from pylons_app.model.db import User, UserLog
 from pylons_app.model.forms import UserForm
+from pylons_app.model.hg_model import HgModel
 from pylons_app.model.user_model import UserModel
 import formencode
 import logging
@@ -74,6 +76,20 @@
         #    h.form(url('admin_setting', id=ID),
         #           method='put')
         # url('admin_setting', id=ID)
+        if id == 'mapping':
+            rm_obsolete = request.POST.get('destroy', False)
+            log.debug('Rescanning directories with destroy=%s', rm_obsolete)
+
+            initial = HgModel.repo_scan(g.paths[0][0], g.paths[0][1], g.baseui)
+            repo2db_mapper(initial, rm_obsolete)
+            invalidate_cache('cached_repo_list')
+            
+            
+        return redirect(url('admin_settings'))
+
+
+
+
 
     def delete(self, id):
         """DELETE /admin/settings/id: Delete an existing item"""