Отрисовка элементов Showcase при помощи Celesta

Материал из 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-файлов

Введение

Перед тем как приступить к реализации различных элементов при помощи Celesta, необходимо ознакомиться с функционалом базовых гранул, в первую очередь common. Также при работе в Jython досаточно удобно использовать формат данных JSON, при этом следует помнить, что в большинстве случаев для отрисовки элементов данные необходимо возвращать в формате XML. Поэтому при разработке jython-скриптов важно уметь пользоваться обоими форматами, а также свободно переводить данные из одного типа в другой. Т.к. указанные форматы не полностью идентичны, нами была разработана спецификация для удобной конвертации данных из одного формата в другой без потери качества и конвертер, переводящий данные между этими форматами, поэтому перед началом работы рекомендуется также прочитать раздел про спецификацию и конвертер.

Перед прочтением следующих разделов стоить заметить: предполагается, что читатель уже знаком с общей концепцией Showcase и Celesta, а также с форматами данных, в которых необходимо возвращать результаты для соответствующих элементов.

Общие правила написания кода скриптов с использованием Celesta

Данные правила основаны на стандарте PEP8, особенностях работы Celesta, а также являются нашим пользовательским соглашением.

Наименования объектов

  • Все названия должны начинаться с буквы или знака подчеркивания.
  • Если в названии вашего объекта используются аббревиатуры, то необходимо писать его в одном регистре (в зависимости от того в каком регистре написна первая буква аббревиатуры): requestHTTP или httpRequest.
  • В названиях гранул следует использовать только строчные буквы и цифры, символы подчеркивания запрещены.
  • Для модулей(файлов) и пакетов(папок) используйте короткие названия состоящие целиком из строчных букв: modulename.
  • Для классов используйте имена без подчеркиваний, в которых каждое слово начинается с заглавной буквы: ClassName.
  • Для функций и переменных используйте имена без подчеркиваний, в которых каждое слово кроме первого начинается с заглавной буквы: functionName.
  • Для методов классов используйте имена, написанные строчными буквами, с подчёркиваниями: method_of_class.

Правила расположения скриптов

  • Все проецедуры касающиеся одного элемента должны находится в одном модуле (например для грида в однм модуле находиться процедуры подгрузка данных, метаданных, процедуры для скачивания файлов из грида, процедура отрисовки Toolbar и прочие).
  • Для каждого типа элемента в грануле должна быть создана папка (например xforms, grid, datapanel и т.д.).
  • Все скрипты стоить отлаживать в отдельном файлике debug.py, который необходимо создавать в корне каждой гранулы.

Прочие правила

  • для сравнение с None используйте оператор is
#писать следует так 
if a is None:
   pass

if a is not None:
   pass

#а вот так писать не следует
if a==None:
   pass

if a!=None:
   pass
  • не сравнивайте данные типа bool с True или False
a = True
b = False
#писать следует так 
if a or not b:
   pass

#а вот так писать не следует
if a==True:
   pass

if b is False:
   pass

Элементы Showcase