92 lines
3.4 KiB
Python
92 lines
3.4 KiB
Python
import os
|
|
|
|
from quixote import get_publisher, redirect
|
|
from quixote.directory import Directory
|
|
from quixote.html import htmltext, TemplateIO
|
|
|
|
import wcs.admin.root
|
|
import wcs.root
|
|
from wcs.roles import get_user_roles
|
|
|
|
from wcs.qommon import _, N_
|
|
from wcs.qommon import errors, get_cfg
|
|
from wcs.qommon.form import *
|
|
|
|
import wcs.admin.settings
|
|
from wcs.formdef import FormDef
|
|
from wcs.categories import Category
|
|
from wcs.qommon.backoffice.menu import html_top
|
|
|
|
import re
|
|
from .abelium_domino_ui import AbeliumDominoDirectory
|
|
|
|
|
|
class PanelDirectory(Directory):
|
|
_q_exports = ['', 'update', 'permissions', 'domino']
|
|
label = N_('Control Panel')
|
|
|
|
domino = AbeliumDominoDirectory()
|
|
|
|
def _verify_mask(self, form):
|
|
if form.is_submitted():
|
|
if not re.match("[0-9Xx]*$", form.get('mobile_mask') or ''):
|
|
form.set_error('mobile_mask', _('Invalid value'))
|
|
else:
|
|
string_value = form.get_widget('mobile_mask').value
|
|
if string_value:
|
|
form.get_widget('mobile_mask').value = string_value.upper()
|
|
|
|
def permissions(self):
|
|
permissions_cfg = get_cfg('aq-permissions', {})
|
|
form = Form(enctype='multipart/form-data')
|
|
form.add(SingleSelectWidget, 'forms', title = _('Admin role for forms'),
|
|
value = permissions_cfg.get('forms', None),
|
|
options = [(None, _('Nobody'), None)] + get_user_roles())
|
|
if get_publisher().has_site_option('auquotidien-payments'):
|
|
form.add(SingleSelectWidget, 'payments', title = _('Admin role for payments'),
|
|
value = permissions_cfg.get('payments', None),
|
|
options = [(None, _('Nobody'), None)] + get_user_roles())
|
|
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(('aq/permissions', _('Permissions')))
|
|
html_top('settings', _('Permissions'))
|
|
r = TemplateIO(html=True)
|
|
r += htmltext('<h2>%s</h2>') % _('Permissions')
|
|
r += form.render()
|
|
return r.getvalue()
|
|
else:
|
|
from wcs.admin.settings import cfg_submit
|
|
cfg_submit(form, 'aq-permissions', ('forms', 'payments'))
|
|
return redirect('..')
|
|
|
|
|
|
class SettingsDirectory(wcs.admin.settings.SettingsDirectory):
|
|
def _q_index(self):
|
|
if not get_publisher().has_site_option('auquotidien-payments'):
|
|
return super(SettingsDirectory, self)._q_index()
|
|
r = TemplateIO(html=True)
|
|
r += htmltext(super(SettingsDirectory, self)._q_index())
|
|
r += htmltext('<div class="splitcontent-right">')
|
|
r += htmltext('<div class="bo-block">')
|
|
r += htmltext('<h2>%s</h2>') % _('Extra Options')
|
|
r += htmltext('<ul>')
|
|
r += htmltext('<li><a href="aq/permissions">%s</a></li>') % _('Permissions')
|
|
if get_publisher().has_site_option('domino'):
|
|
r += htmltext('<li><a href="aq/domino">%s</a></li>') % _('Abelium Domino Integration')
|
|
r += htmltext('</ul>')
|
|
r += htmltext('</div>')
|
|
r += htmltext('</div>')
|
|
return r.getvalue()
|
|
|
|
def _q_lookup(self, component):
|
|
if component == 'aq':
|
|
return PanelDirectory()
|
|
return super(SettingsDirectory, self)._q_lookup(component)
|
|
|
|
from . import categories_admin
|