This repository has been archived on 2023-02-21. You can view files and clone it, but cannot push or open issues or pull requests.
auquotidien/extra/auquotidien.py

84 lines
2.8 KiB
Python

from quixote import get_publisher
from qommon.publisher import get_publisher_class, get_request
from qommon.misc import get_cfg
import modules.admin
import modules.backoffice
import modules.links_ui
import modules.announces_ui
import modules.categories_admin
import modules.events_ui
import modules.payments_ui
import modules.strongbox_ui
import modules.formpage
import modules.template
import modules.root
import modules.form
import modules.payments
import modules.connectors
import modules.abelium_domino_ui
import modules.abelium_domino_vars
import modules.abelium_domino_synchro
get_publisher_class().register_translation_domain('auquotidien')
get_publisher_class().default_configuration_path = 'au-quotidien-wcs-settings.xml'
get_publisher_class().backoffice_feed_url = {
'fr': 'http://www.au-quotidien.com/fr/backoffice.atom'
}
def check_visibility(target):
user = get_request().user
if not user:
return False
target = target.strip('/')
if target == 'management':
target = 'forms'
if target == 'strongbox':
if not get_publisher().has_site_option(target):
# strongbox disabled in site-options.cfg
return False
if not get_cfg('misc', {}).get('aq-strongbox'):
# strongbox disabled in settings panel
return False
admin_role = get_cfg('aq-permissions', {}).get(target, None)
if not admin_role:
return False
if not (user.is_admin or admin_role in (user.roles or [])):
return False
return True
rdb = get_publisher_class().backoffice_directory_class
rdb.items = []
rdb.register_directory('announces', modules.announces_ui.AnnouncesDirectory())
rdb.register_menu_item('announces/', _('Announces'), check_visibility)
rdb.register_directory('links', modules.links_ui.LinksDirectory())
rdb.register_menu_item('links/', _('Links'), check_visibility)
rdb.register_directory('events', modules.events_ui.EventsDirectory())
rdb.register_menu_item('events/', _('Events'), check_visibility)
rdb.register_directory('payments', modules.payments_ui.PaymentsDirectory())
rdb.register_menu_item('payments/', _('Payments'), check_visibility)
rdb.register_directory('strongbox', modules.strongbox_ui.StrongboxDirectory())
rdb.register_menu_item('strongbox/', _('Strongbox'), check_visibility)
rdb.register_directory('panel', modules.admin.PanelDirectory())
rdb.register_menu_item('panel/', _('Control Panel'))
rdb.register_directory('categories', modules.categories_admin.CategoriesDirectory())
import wcs.fields
wcs.fields.FileField.widget_class = modules.form.FileWithPreviewAndStrongboxWidget
import wcs.admin.settings
wcs.admin.settings.SettingsDirectory.domino = modules.abelium_domino_ui.AbeliumDominoDirectory()
wcs.admin.settings.SettingsDirectory._q_exports.append('domino')