use qommon admin settings directory and cfg_submit
This commit is contained in:
parent
ffc52318bb
commit
db8a773f19
|
@ -15,26 +15,17 @@ from quixote.directory import Directory, AccessControlled
|
|||
from qommon import misc, get_cfg
|
||||
from qommon.form import *
|
||||
|
||||
from qommon.admin.menu import html_top, command_icon, error_page
|
||||
from qommon.admin.cfg import cfg_submit
|
||||
from qommon.admin.emails import EmailsDirectory
|
||||
from qommon.admin.texts import TextsDirectory
|
||||
from qommon.admin.menu import html_top, command_icon, error_page
|
||||
from qommon.admin.settings import SettingsDirectory as QommonSettingsDirectory
|
||||
import qommon.ident
|
||||
import qommon.template
|
||||
|
||||
from formdef import FormDef
|
||||
from fields import FieldWidget, FieldDefPage, FieldsDirectory
|
||||
|
||||
|
||||
def cfg_submit(form, cfg_key, fields):
|
||||
get_publisher().reload_cfg()
|
||||
cfg_key = str(cfg_key)
|
||||
cfg_dict = get_cfg(cfg_key, {})
|
||||
for k in fields:
|
||||
cfg_dict[str(k)] = form.get_widget(k).parse()
|
||||
get_publisher().cfg[cfg_key] = cfg_dict
|
||||
get_publisher().write_cfg()
|
||||
|
||||
|
||||
class UserFormDirectory(Directory):
|
||||
_q_exports = ['']
|
||||
|
||||
|
@ -139,7 +130,7 @@ class UsersDirectory(Directory):
|
|||
return Directory._q_traverse(self, path)
|
||||
|
||||
|
||||
class SettingsDirectory(AccessControlled, Directory):
|
||||
class SettingsDirectory(QommonSettingsDirectory):
|
||||
_q_exports = ['', 'themes', 'users',
|
||||
'template', 'misc', 'emails', 'debug_options', 'language',
|
||||
('import', 'p_import'), 'export', 'identification', 'sitename',
|
||||
|
@ -150,9 +141,6 @@ class SettingsDirectory(AccessControlled, Directory):
|
|||
users = UsersDirectory()
|
||||
texts = TextsDirectory()
|
||||
|
||||
def _q_access(self):
|
||||
get_response().breadcrumb.append( ('settings/', _('Settings')) )
|
||||
|
||||
def _q_index [html] (self):
|
||||
html_top('settings', title = _('Settings'))
|
||||
|
||||
|
@ -493,61 +481,6 @@ class SettingsDirectory(AccessControlled, Directory):
|
|||
z.close()
|
||||
return results
|
||||
|
||||
def debug_options [html] (self):
|
||||
form = Form(enctype="multipart/form-data")
|
||||
debug_cfg = get_cfg('debug', {})
|
||||
form.add(StringWidget, 'error_email', title = _('Email for Tracebacks'),
|
||||
value = debug_cfg.get('error_email', ''))
|
||||
form.add(SingleSelectWidget, 'display_exceptions', title = _('Display Exceptions'),
|
||||
value = debug_cfg.get('display_exceptions', ''),
|
||||
options = [ (str(''), _('No display')),
|
||||
(str('text'), _('Display as Text')),
|
||||
(str('text-in-html'), _('Display as Text in HTML an error page')),
|
||||
(str('html'), _('Display as HTML')) ])
|
||||
form.add(CheckboxWidget, 'logger', title = _('Logger'),
|
||||
value = debug_cfg.get('logger', False))
|
||||
form.add(CheckboxWidget, 'debug_mode', title = _('Enable debug mode'),
|
||||
value = debug_cfg.get('debug_mode', False))
|
||||
form.add_submit('submit', _('Submit'))
|
||||
form.add_submit('cancel', _('Cancel'))
|
||||
|
||||
if form.get_widget('cancel').parse():
|
||||
return redirect('.')
|
||||
|
||||
if not form.is_submitted() or form.has_errors():
|
||||
get_response().breadcrumb.append(('debug_options', _('Debug Options')))
|
||||
html_top('settings', title = _('Debug Options'))
|
||||
'<h2>%s</h2>' % _('Debug Options')
|
||||
form.render()
|
||||
else:
|
||||
cfg_submit(form, 'debug', ('error_email', 'display_exceptions', 'logger', 'debug_mode'))
|
||||
redirect('.')
|
||||
|
||||
def language [html] (self):
|
||||
form = Form(enctype='multipart/form-data')
|
||||
language_cfg = get_cfg('language', {})
|
||||
form.add(SingleSelectWidget, 'language', title = _('Language'),
|
||||
value = language_cfg.get('language'),
|
||||
options = [ (None, _('System Default')),
|
||||
(str('HTTP'), _('From HTTP Accept-Language header')),
|
||||
(str('en'), _('English')),
|
||||
(str('es'), _('Spanish')),
|
||||
(str('fr'), _('French')) ] )
|
||||
|
||||
form.add_submit('submit', _('Submit'))
|
||||
form.add_submit('cancel', _('Cancel'))
|
||||
if form.get_widget('cancel').parse():
|
||||
return redirect('.')
|
||||
|
||||
if not form.is_submitted() or form.has_errors():
|
||||
get_response().breadcrumb.append(('language', _('Language')))
|
||||
html_top('settings', title = _('Language'))
|
||||
'<h2>%s</h2>' % _('Language')
|
||||
form.render()
|
||||
else:
|
||||
cfg_submit(form, 'language', ['language'])
|
||||
redirect('.')
|
||||
|
||||
def sitename [html] (self):
|
||||
form = Form(enctype='multipart/form-data')
|
||||
misc_cfg = get_cfg('misc', {})
|
||||
|
@ -568,7 +501,6 @@ class SettingsDirectory(AccessControlled, Directory):
|
|||
cfg_submit(form, 'misc', ['sitename'])
|
||||
redirect('.')
|
||||
|
||||
|
||||
def utf8switch(self):
|
||||
def toutf8(x):
|
||||
if x is None:
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
from quixote import get_publisher
|
||||
from qommon import misc, get_cfg
|
||||
|
||||
from qommon import get_cfg
|
||||
|
||||
def cfg_submit(form, cfg_key, fields):
|
||||
get_publisher().reload_cfg()
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
from quixote import redirect
|
||||
from quixote.directory import Directory
|
||||
|
||||
from qommon.form import *
|
||||
from qommon import misc, get_cfg
|
||||
from qommon.admin.menu import html_top
|
||||
|
||||
from cfg import misc, get_cfg, cfg_submit
|
||||
from qommon.admin.cfg import cfg_submit
|
||||
|
||||
class EmailsDirectory(Directory):
|
||||
emails_dict = {}
|
||||
|
|
|
@ -0,0 +1,91 @@
|
|||
from quixote import redirect
|
||||
from quixote.directory import Directory, AccessControlled
|
||||
|
||||
from qommon.form import *
|
||||
from qommon.admin.cfg import cfg_submit
|
||||
from qommon.admin.menu import html_top
|
||||
|
||||
class SettingsDirectory(AccessControlled, Directory):
|
||||
def _q_access(self):
|
||||
get_response().breadcrumb.append( ('settings/', _('Settings')) )
|
||||
|
||||
def language [html] (self):
|
||||
form = Form(enctype='multipart/form-data')
|
||||
language_cfg = get_cfg('language', {})
|
||||
|
||||
form.add(SingleSelectWidget, 'language', title = _('Language'),
|
||||
value = language_cfg.get('language'),
|
||||
options = [ (None, _('System Default')),
|
||||
(str('en'), _('English')),
|
||||
(str('fr'), _('French')) ] )
|
||||
|
||||
form.add_submit('submit', _('Submit'))
|
||||
form.add_submit('cancel', _('Cancel'))
|
||||
if form.get_widget('cancel').parse():
|
||||
return redirect('.')
|
||||
|
||||
if not form.is_submitted() or form.has_errors():
|
||||
html_top('settings', title = _('Language'))
|
||||
'<h2>%s</h2>' % _('Language')
|
||||
form.render()
|
||||
else:
|
||||
cfg_submit(form, 'language', ['language'])
|
||||
redirect('.')
|
||||
|
||||
def proxy [html] (self):
|
||||
form = Form(enctype='multipart/form-data')
|
||||
proxy_cfg = get_cfg('proxy', {})
|
||||
|
||||
form.add(CheckboxWidget, 'enabled', title = _('Use a web proxy'),
|
||||
value = proxy_cfg.get(str('enabled'), False))
|
||||
form.add(StringWidget, 'ip', title = _('Proxy IP address or domain name'),
|
||||
value = proxy_cfg.get(str('ip')))
|
||||
form.add(StringWidget, 'port', title = _('Proxy port'),
|
||||
value = proxy_cfg.get(str('port')))
|
||||
form.add(StringWidget, 'user', title = _('User name'),
|
||||
value = proxy_cfg.get(str('user')))
|
||||
form.add(PasswordWidget, 'password', title = _('User password'),
|
||||
value = proxy_cfg.get(str('password')))
|
||||
|
||||
form.add_submit('submit', _('Submit'))
|
||||
form.add_submit('cancel', _('Cancel'))
|
||||
if form.get_widget('cancel').parse():
|
||||
return redirect('.')
|
||||
|
||||
if not form.is_submitted() or form.has_errors():
|
||||
html_top('settings', title = _('Proxy'))
|
||||
'<h2>%s</h2>' % _('Proxy')
|
||||
form.render()
|
||||
else:
|
||||
cfg_submit(form, 'proxy', ['enabled', 'ip', 'port', 'user', 'password'])
|
||||
redirect('.')
|
||||
|
||||
def debug_options [html] (self):
|
||||
form = Form(enctype="multipart/form-data")
|
||||
debug_cfg = get_cfg('debug', {})
|
||||
form.add(StringWidget, 'error_email', title = _('Email for Tracebacks'),
|
||||
value = debug_cfg.get('error_email', ''))
|
||||
form.add(SingleSelectWidget, 'display_exceptions', title = _('Display Exceptions'),
|
||||
value = debug_cfg.get('display_exceptions', ''),
|
||||
options = [ (str(''), _('No display')),
|
||||
(str('text'), _('Display as Text')),
|
||||
(str('text-in-html'), _('Display as Text in HTML an error page')),
|
||||
(str('html'), _('Display as HTML')) ])
|
||||
form.add(CheckboxWidget, 'logger', title = _('Logger'),
|
||||
value = debug_cfg.get('logger', False))
|
||||
form.add(CheckboxWidget, 'debug_mode', title = _('Enable debug mode'),
|
||||
value = debug_cfg.get('debug_mode', False))
|
||||
form.add_submit('submit', _('Submit'))
|
||||
form.add_submit('cancel', _('Cancel'))
|
||||
|
||||
if form.get_widget('cancel').parse():
|
||||
return redirect('.')
|
||||
|
||||
if not form.is_submitted() or form.has_errors():
|
||||
get_response().breadcrumb.append(('debug_options', _('Debug Options')))
|
||||
html_top('settings', title = _('Debug Options'))
|
||||
'<h2>%s</h2>' % _('Debug Options')
|
||||
form.render()
|
||||
else:
|
||||
cfg_submit(form, 'debug', ('error_email', 'display_exceptions', 'logger', 'debug_mode'))
|
||||
redirect('.')
|
|
@ -2,13 +2,13 @@ import os
|
|||
|
||||
from quixote import redirect, get_publisher
|
||||
from quixote.html import htmltext
|
||||
|
||||
from quixote.directory import Directory
|
||||
|
||||
from qommon.form import *
|
||||
from qommon import misc, get_cfg
|
||||
from qommon.admin.menu import html_top
|
||||
|
||||
from cfg import misc, get_cfg, cfg_submit
|
||||
from cfg import cfg_submit
|
||||
|
||||
class TextsDirectory(Directory):
|
||||
texts_dict = {}
|
||||
|
|
Loading…
Reference in New Issue