comparison 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
comparison
equal deleted inserted replaced
347:40bccabf4574 348:e8fc875467bd
21 Created on July 14, 2010 21 Created on July 14, 2010
22 settings controller for pylons 22 settings controller for pylons
23 @author: marcink 23 @author: marcink
24 """ 24 """
25 from formencode import htmlfill 25 from formencode import htmlfill
26 from pylons import request, session, tmpl_context as c, url 26 from pylons import request, session, tmpl_context as c, url, app_globals as g
27 from pylons.controllers.util import abort, redirect 27 from pylons.controllers.util import abort, redirect
28 from pylons.i18n.translation import _ 28 from pylons.i18n.translation import _
29 from pylons_app.lib import helpers as h 29 from pylons_app.lib import helpers as h
30 from pylons_app.lib.auth import LoginRequired, HasPermissionAllDecorator 30 from pylons_app.lib.auth import LoginRequired, HasPermissionAllDecorator
31 from pylons_app.lib.base import BaseController, render 31 from pylons_app.lib.base import BaseController, render
32 from pylons_app.lib.utils import repo2db_mapper, invalidate_cache
32 from pylons_app.model.db import User, UserLog 33 from pylons_app.model.db import User, UserLog
33 from pylons_app.model.forms import UserForm 34 from pylons_app.model.forms import UserForm
35 from pylons_app.model.hg_model import HgModel
34 from pylons_app.model.user_model import UserModel 36 from pylons_app.model.user_model import UserModel
35 import formencode 37 import formencode
36 import logging 38 import logging
37 39
38 log = logging.getLogger(__name__) 40 log = logging.getLogger(__name__)
72 # <input type="hidden" name="_method" value="PUT" /> 74 # <input type="hidden" name="_method" value="PUT" />
73 # Or using helpers: 75 # Or using helpers:
74 # h.form(url('admin_setting', id=ID), 76 # h.form(url('admin_setting', id=ID),
75 # method='put') 77 # method='put')
76 # url('admin_setting', id=ID) 78 # url('admin_setting', id=ID)
79 if id == 'mapping':
80 rm_obsolete = request.POST.get('destroy', False)
81 log.debug('Rescanning directories with destroy=%s', rm_obsolete)
82
83 initial = HgModel.repo_scan(g.paths[0][0], g.paths[0][1], g.baseui)
84 repo2db_mapper(initial, rm_obsolete)
85 invalidate_cache('cached_repo_list')
86
87
88 return redirect(url('admin_settings'))
89
90
91
92
77 93
78 def delete(self, id): 94 def delete(self, id):
79 """DELETE /admin/settings/id: Delete an existing item""" 95 """DELETE /admin/settings/id: Delete an existing item"""
80 # Forms posted to this method should contain a hidden field: 96 # Forms posted to this method should contain a hidden field:
81 # <input type="hidden" name="_method" value="DELETE" /> 97 # <input type="hidden" name="_method" value="DELETE" />