Mercurial > kallithea
diff rhodecode/controllers/admin/settings.py @ 3960:5293d4bbb1ea
Merged dev into stable/default/master branch
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Fri, 07 Jun 2013 00:31:11 +0200 |
parents | 3563bb7b4b82 fc63a1d93803 |
children | 9b4ba12ef8c3 |
line wrap: on
line diff
--- a/rhodecode/controllers/admin/settings.py Mon May 20 12:26:09 2013 +0200 +++ b/rhodecode/controllers/admin/settings.py Fri Jun 07 00:31:11 2013 +0200 @@ -41,13 +41,13 @@ HasReposGroupPermissionAll, HasReposGroupPermissionAny, AuthUser from rhodecode.lib.base import BaseController, render from rhodecode.lib.celerylib import tasks, run_task -from rhodecode.lib.utils import repo2db_mapper, invalidate_cache, \ - set_rhodecode_config, repo_name_slug, check_git_version +from rhodecode.lib.utils import repo2db_mapper, set_rhodecode_config, \ + check_git_version from rhodecode.model.db import RhodeCodeUi, Repository, RepoGroup, \ RhodeCodeSetting, PullRequest, PullRequestReviewers from rhodecode.model.forms import UserForm, ApplicationSettingsForm, \ ApplicationUiSettingsForm, ApplicationVisualisationForm -from rhodecode.model.scm import ScmModel, GroupList +from rhodecode.model.scm import ScmModel, RepoGroupList from rhodecode.model.user import UserModel from rhodecode.model.repo import RepoModel from rhodecode.model.db import User @@ -55,7 +55,6 @@ from rhodecode.model.meta import Session from rhodecode.lib.utils2 import str2bool, safe_unicode from rhodecode.lib.compat import json -from webob.exc import HTTPForbidden log = logging.getLogger(__name__) @@ -68,15 +67,13 @@ @LoginRequired() def __before__(self): - c.admin_user = session.get('admin_user') - c.admin_username = session.get('admin_username') + super(SettingsController, self).__before__() c.modules = sorted([(p.project_name, p.version) for p in pkg_resources.working_set] + [('git', check_git_version())], key=lambda k: k[0].lower()) c.py_version = platform.python_version() c.platform = platform.platform() - super(SettingsController, self).__before__() @HasPermissionAllDecorator('hg.admin') def index(self, format='html'): @@ -115,13 +112,17 @@ if setting_id == 'mapping': rm_obsolete = request.POST.get('destroy', False) - log.debug('Rescanning directories with destroy=%s' % rm_obsolete) - initial = ScmModel().repo_scan() - log.debug('invalidating all repositories') - for repo_name in initial.keys(): - invalidate_cache('get_repo_cached_%s' % repo_name) + invalidate_cache = request.POST.get('invalidate', False) + log.debug('rescanning repo location with destroy obsolete=%s' + % (rm_obsolete,)) - added, removed = repo2db_mapper(initial, rm_obsolete) + if invalidate_cache: + log.debug('invalidating all repositories cache') + for repo in Repository.get_all(): + ScmModel().mark_for_invalidation(repo.repo_name) + + filesystem_repos = ScmModel().repo_scan() + added, removed = repo2db_mapper(filesystem_repos, rm_obsolete) _repr = lambda l: ', '.join(map(safe_unicode, l)) or '-' h.flash(_('Repositories successfully ' 'rescanned added: %s ; removed: %s') % @@ -186,6 +187,7 @@ ) try: + #TODO: rewrite this to something less ugly sett1 = RhodeCodeSetting.get_by_name_or_create('show_public_icon') sett1.app_settings_value = \ form_result['rhodecode_show_public_icon'] @@ -201,16 +203,21 @@ form_result['rhodecode_stylify_metatags'] Session().add(sett3) - sett4 = RhodeCodeSetting.get_by_name_or_create('lightweight_dashboard') - sett4.app_settings_value = \ - form_result['rhodecode_lightweight_dashboard'] - Session().add(sett4) - sett4 = RhodeCodeSetting.get_by_name_or_create('repository_fields') sett4.app_settings_value = \ form_result['rhodecode_repository_fields'] Session().add(sett4) + sett5 = RhodeCodeSetting.get_by_name_or_create('dashboard_items') + sett5.app_settings_value = \ + form_result['rhodecode_dashboard_items'] + Session().add(sett5) + + sett6 = RhodeCodeSetting.get_by_name_or_create('show_version') + sett6.app_settings_value = \ + form_result['rhodecode_show_version'] + Session().add(sett6) + Session().commit() set_rhodecode_config(config) h.flash(_('Updated visualisation settings'), @@ -239,10 +246,10 @@ sett = RhodeCodeUi.get_by_key('push_ssl') sett.ui_value = form_result['web_push_ssl'] Session().add(sett) - - sett = RhodeCodeUi.get_by_key('/') - sett.ui_value = form_result['paths_root_path'] - Session().add(sett) + if c.visual.allow_repo_location_change: + sett = RhodeCodeUi.get_by_key('/') + sett.ui_value = form_result['paths_root_path'] + Session().add(sett) #HOOKS sett = RhodeCodeUi.get_by_key(RhodeCodeUi.HOOK_UPDATE)