Общий реестр настроек гранул

Материал из Course Orchestra
Перейти к: навигация, поиск
Внимание! Вы просматриваете документацию к Celesta 6.x. Документация по Celesta 7.x доступна на courseorchestra.github.io/celesta.

1. Справочник Celesta

1.1 Введение и основные понятия
1.2 Запуск и авто-обновление
1.3 Базовая настройка
1.4 Системные таблицы
1.5 CelestaSQL
1.6 CelestaDoc
1.7 Контексты сессии и вызова
1.8 Курсоры
1.9 BLOB-поля
1.10 Option-поля
1.11 Защита от потерянных обновлений
1.12 Метаданные Celesta
1.13 CelestaUnit

2. Celesta и базы данных

2.1 Особенности работы Celesta с поддерживаемыми типами СУБД
2.2 Проектирование базы данных Celesta в DBSchema

3. Создание решений с использованием Celesta для ShowCase

3.1 Программа обучения Celesta
3.2 Подготовка рабочего места для работы с Celesta
3.2.1 Для разработчиков платформы
3.2.2 Для разработчиков решений
3.3 Системные гранулы Celesta
3.3.1 common
3.3.1.1 Экспорт/импорт данных
3.3.1.2 Навигатор
3.3.1.3 Серии номеров
3.3.1.4 Иерархия Дьюи
3.3.1.5 Системные функции
3.3.1.6 Реестр настроек
3.3.1.7 Mailsender
3.3.1.8 Common.filter
3.3.2 common.api
3.3.4 security
3.3.3 lyra
3.4 Стандартные гранулы Celesta
3.4.1 dirusing
3.4.2 workflow
3.4.3 File repository
3.5 Отрисовка элементов Showcase при помощи Celesta
3.5.1 Конвертер XML-JSON
3.5.2 Навигатор (Navigator)
3.5.3 Информационная панель (Datapanel)
3.5.4 Серверное действие (Server activity)
3.5.5 Вебтекст (WebText)
3.5.6 Грид (Grid)
3.5.6.1 Панель инструментов (ToolBar)
3.5.7 XForms
3.5.7.1 Селекторы
3.5.7.2 Submission
3.5.7.3 Загрузка/Выгрузка файлов (Upload/Download)

5. Решение проблем

5.1 Проблемы с кодировкой jython-файлов

Количество системных гранул растет, а вместе с этим растет и количество настроек. Очень неудобно,когда настройки лежат отдельно в каждой грануле, т.к. при настройке приходится залезать в каждую гранулу и производить изменения. Поэтому теперь рекомендуется хранить настройки всех гранул в одном файле grainssettings.xml Шаблон файла grainssettings.xml.template расположен в корне гранулы common. Для работы с новыми функциями необходимо скопировать данный шаблон и изменить имя на grainssettings.xml

Данный файл имеет следующий вид:

<?xml version="1.0" encoding="UTF-8"?>
<grainSettings>
	<!--Общие настройки для гранул-->
	<generalSettings>
	</generalSettings>
	<!--Отдельные настройки для гранул-->
	<grains>
		<grain name="common">
			<!--Указание необходимых групп навигатора для каждой userdata-->
			<navigator>
				<userdata name="workflow">
					<group>0</group>
					<group>1</group>
					<group>3</group>
				</userdata> 				
			</navigator>
		</grain>
		<grain name="security">			
		</grain>
	</grains>
</grainSettings>
  • grainSettings — (обязательный тэг)корневой тег
  • generalSettings — (обязательный тэг) общие настройки для всех гранул, в своем решении пользователь может вставлять сюда любые необходимые ему настройки
  • grains — (обязательный тэг) сожержит индивидуальные настройки гранул внутри него должны находиться только тэги grain
  • grain — седержит имя гранулы а также её настройки атрибут @name обязателен, и должен соджержать имя настраиваемой гранулы. Для системных гранул настройки изменяемы, но должны иметь формат указанный разработчиком гранулы, для гранул решения формат настроек может быть произвольным

Для того чтобы получить настройку необходимо создать объект класса SettingsManager, с одним необязательным аргументом context.

from common.grainssettings import SettingsManager    
test= SettingsManager(context)

Далее у данного объекта доступны четыре метода:

  • getGrainSettings(path, grain) - получение настроек гранулы. Первый аргумент обязательный и содержит путь к настройкам в формате ограниченного XPath, второй аргумент имя гранулы, можно не указывать,тогда оно будет взято из context (если он указан)
  • getGeneralSettings(path) - получение общих настроек. Обязательный аргумент содержит путь к настройкам в формате ограниченного XPath
  • setGrainSettings (path, value, grain)- изменение настроек гранулы и одновременное возвращение старых. Первый аргумент обязательный и содержит путь к настройкам в формате ограниченного XPath, второй аргумент - изменяемое значение, третий аргумент - имя гранулы, можно не указывать,тогда оно будет взято из context (если он указан)
  • setGeneralSettings (path, value)-изменение общих настроек и одновременное возвращение старых. Обязательный аргумент содержит путь к настройкам в формате ограниченного XPath
Важная информация
Функциями set... стоит пользоваться очень осторожно и только там, где это действительно необходимо, т.к. они работают относительно долго и переписывают файл настроек.


Xpath, доступный в описанных выше функциях, имеет следующие ограничения:

  • Путь всегда относительный (т.е. начинается с тега или атрибута).
  • Путь может содеражать теги и атрибуты.
  • К тегам можно писать условия на атрибут вида [@attr="значение"] (поддерживаются оба вариант кавычек).
  • К тегам можно писать условия относительно номера [3].
  • Путь для функций типа [get|set]GeneralSettings должен начинаться с тега следующего за тегом generalSettings (см. пример xml).
  • Путь для функций типа [get|set]GrainSettings должен начинаться с тега следующего за тегом grain, соответствующей гранулы (см. пример xml).

Пример запроса:

 tag1/tag2[@attr1='test']/tag3[2]/@value

Все перечисленные функции возвращают словарь значений. Если данных нет, будет возвращен пустой словарь.

Функции set... также возвращают словарь измененных настриоек, при этом на одно и тоже значение будут заменены все найденные настройки.