@@ -116,49 +116,49 @@ class SettingsController(BaseController)
h.flash(_('Repositories successfully rescanned'), category='success')
if setting_id == 'whoosh':
repo_location = self.get_hg_ui_settings()['paths_root_path']
full_index = request.POST.get('full_index', False)
task = run_task(tasks.whoosh_index, repo_location, full_index)
h.flash(_('Whoosh reindex task scheduled'), category='success')
if setting_id == 'global':
application_form = ApplicationSettingsForm()()
try:
form_result = application_form.to_python(dict(request.POST))
settings_model = SettingsModel()
hgsettings1 = settings_model.get('title')
hgsettings1.app_settings_value = form_result['rhodecode_title']
hgsettings2 = settings_model.get('realm')
hgsettings2.app_settings_value = form_result['rhodecode_realm']
hgsettings3 = settings_model.get('ga_code')
hgsettings3.app_settings_value = form_result['ga_code']
hgsettings3.app_settings_value = form_result['rhodecode_ga_code']
self.sa.add(hgsettings1)
self.sa.add(hgsettings2)
self.sa.add(hgsettings3)
self.sa.commit()
set_rhodecode_config(config)
h.flash(_('Updated application settings'),
category='success')
except:
log.error(traceback.format_exc())
h.flash(_('error occurred during updating application settings'),
category='error')
self.sa.rollback()
except formencode.Invalid, errors:
return htmlfill.render(
render('admin/settings/settings.html'),
defaults=errors.value,
errors=errors.error_dict or {},
"""The base Controller API
Provides the BaseController class for subclassing.
"""
from pylons import config, tmpl_context as c, request, session
from pylons.controllers import WSGIController
from pylons.templating import render_mako as render
from rhodecode import __version__
from rhodecode.lib import auth
from rhodecode.lib.utils import get_repo_slug
from rhodecode.model import meta
from rhodecode.model.scm import ScmModel
from rhodecode import BACKENDS
class BaseController(WSGIController):
def __before__(self):
c.rhodecode_version = __version__
c.rhodecode_name = config.get('rhodecode_title')
c.ga_code = config.get('rhodeocode_ga_code')
c.ga_code = config.get('rhodecode_ga_code')
c.repo_name = get_repo_slug(request)
c.cached_repo_list = ScmModel().get_repos()
c.backends = BACKENDS.keys()
self.cut_off_limit = int(config.get('cut_off_limit'))
self.sa = meta.Session()
scm_model = ScmModel(self.sa)
#c.unread_journal = scm_model.get_unread_journal()
if c.repo_name:
cached_repo = scm_model.get(c.repo_name)
if cached_repo:
c.repository_tags = cached_repo.tags
c.repository_branches = cached_repo.branches
c.repository_followers = scm_model.get_followers(cached_repo.dbrepo.repo_id)
c.repository_forks = scm_model.get_forks(cached_repo.dbrepo.repo_id)
else:
c.repository_tags = {}
c.repository_branches = {}
c.repository_followers = 0
c.repository_forks = 0
def __call__(self, environ, start_response):
"""Invoke the Controller"""
@@ -417,49 +417,49 @@ def RepoForkForm(edit=False, old_data={}
description = UnicodeString(strip=True, min=1, not_empty=True)
private = StringBoolean(if_missing=False)
repo_type = All(ValidForkType(old_data), OneOf(supported_backends))
return _RepoForkForm
def RepoSettingsForm(edit=False, old_data={}):
class _RepoForm(formencode.Schema):
allow_extra_fields = True
filter_extra_fields = False
repo_name = All(UnicodeString(strip=True, min=1, not_empty=True),
ValidRepoName(edit, old_data))
chained_validators = [ValidPerms, ValidSettings]
return _RepoForm
def ApplicationSettingsForm():
class _ApplicationSettingsForm(formencode.Schema):
rhodecode_title = UnicodeString(strip=True, min=1, not_empty=True)
rhodecode_realm = UnicodeString(strip=True, min=1, not_empty=True)
ga_code = UnicodeString(strip=True, min=1, not_empty=False)
rhodecode_ga_code = UnicodeString(strip=True, min=1, not_empty=False)
return _ApplicationSettingsForm
def ApplicationUiSettingsForm():
class _ApplicationUiSettingsForm(formencode.Schema):
web_push_ssl = OneOf(['true', 'false'], if_missing='false')
paths_root_path = All(ValidPath(), UnicodeString(strip=True, min=1, not_empty=True))
hooks_changegroup_update = OneOf(['True', 'False'], if_missing=False)
hooks_changegroup_repo_size = OneOf(['True', 'False'], if_missing=False)
hooks_pretxnchangegroup_push_logger = OneOf(['True', 'False'], if_missing=False)
hooks_preoutgoing_pull_logger = OneOf(['True', 'False'], if_missing=False)
return _ApplicationUiSettingsForm
def DefaultPermissionsForm(perms_choices, register_choices, create_choices):
class _DefaultPermissionsForm(formencode.Schema):
filter_extra_fields = True
overwrite_default = StringBoolean(if_missing=False)
anonymous = OneOf(['True', 'False'], if_missing=False)
default_perm = OneOf(perms_choices)
default_register = OneOf(register_choices)
@@ -82,49 +82,49 @@
<div class="field">
<div class="label">
<label for="rhodecode_title">${_('Application name')}:</label>
</div>
<div class="input">
${h.text('rhodecode_title',size=30)}
<label for="rhodecode_realm">${_('Realm text')}:</label>
${h.text('rhodecode_realm',size=30)}
<label for="ga_code">${_('Google analytics code')}:</label>
${h.text('ga_code',size=30)}
${h.text('rhodecode_ga_code',size=30)}
<div class="buttons">
${h.submit('save','Save settings',class_="ui-button")}
${h.reset('reset','Reset',class_="ui-button")}
${h.end_form()}
<h3>${_('Mercurial settings')}</h3>
${h.form(url('admin_setting', setting_id='mercurial'),method='put')}
<div class="form">
<!-- fields -->
<div class="fields">
<div class="label label-checkbox">
<label for="web_push_ssl">${_('Web')}:</label>
<div class="checkboxes">
<div class="checkbox">
Status change: