|
1 | 1 | from imio.helpers.security import setup_app
|
2 | 2 | from imio.helpers.security import setup_logger
|
3 | 3 | from imio.webspellchecker import config as webspellchecker_config
|
| 4 | +from imio.webspellchecker.interfaces import IImioWebspellcheckerLayer |
4 | 5 | from os import getenv
|
5 | 6 | from plone import api
|
| 7 | +from plone.browserlayer.utils import registered_layers |
6 | 8 | from Products.PloneMeeting import logger
|
7 | 9 |
|
8 | 10 | import logging
|
9 |
| -import sys |
10 | 11 | import transaction
|
11 | 12 |
|
12 | 13 |
|
13 | 14 | setup_logger(level=logging.INFO)
|
14 | 15 | setup_app(app)
|
15 | 16 | with api.env.adopt_user(username="admin"):
|
16 |
| - logger.info("Installing webspellchecker...") |
| 17 | + if IImioWebspellcheckerLayer not in registered_layers(): |
| 18 | + logger.info("Installing webspellchecker...") |
| 19 | + portal = api.portal.get() |
| 20 | + portal.portal_setup.runImportStepFromProfile( |
| 21 | + 'profile-Products.PloneMeeting:default', |
| 22 | + 'PloneMeeting-Install-Imio-Webspellchecker') |
| 23 | + logger.info("Installed webspellchecker.") |
| 24 | + else: |
| 25 | + logger.info("Webspellchecker already installed. Skipping installation.") |
| 26 | + |
17 | 27 | WSC_JS_BUNDLE_URL = getenv("WSC_JS_BUNDLE_URL")
|
18 | 28 | WSC_SERVICE_URL = getenv("WSC_SERVICE_URL")
|
19 |
| - if not WSC_JS_BUNDLE_URL or not WSC_SERVICE_URL: |
20 |
| - logger.error("Missing webspellchecker environment variables. Aborting installation.") |
21 |
| - sys.exit(-1) |
| 29 | + if WSC_SERVICE_URL: |
| 30 | + webspellchecker_config.set_service_url(WSC_SERVICE_URL.decode('utf-8')) |
| 31 | + logger.info("WSC_SERVICE_URL set to %s.", WSC_SERVICE_URL) |
| 32 | + if WSC_JS_BUNDLE_URL: |
| 33 | + webspellchecker_config.set_js_bundle_url(WSC_JS_BUNDLE_URL.decode('utf-8')) |
| 34 | + logger.info("WSC_JS_BUNDLE_URL set to %s.", WSC_JS_BUNDLE_URL) |
| 35 | + |
| 36 | + WSC_DISABLE = getenv("WSC_DISABLE") |
| 37 | + if WSC_DISABLE: |
| 38 | + webspellchecker_config.set_enabled(False) |
| 39 | + logger.info("Webspellchecker disabled.") |
22 | 40 |
|
23 |
| - portal = api.portal.get() |
24 |
| - portal.portal_setup.runImportStepFromProfile( |
25 |
| - 'profile-Products.PloneMeeting:default', |
26 |
| - 'PloneMeeting-Install-Imio-Webspellchecker') |
27 |
| - webspellchecker_config.set_js_bundle_url(WSC_JS_BUNDLE_URL.decode('utf-8')) |
28 |
| - webspellchecker_config.set_service_url(WSC_SERVICE_URL.decode('utf-8')) |
29 | 41 | transaction.commit()
|
30 |
| - logger.info("Installed webspellchecker.") |
|
0 commit comments