Показаны сообщения с ярлыком Archgenxml. Показать все сообщения
Показаны сообщения с ярлыком Archgenxml. Показать все сообщения

пятница, 17 декабря 2010 г.

Проверка полей формы

Для каждого поля схемы Archetypes может быть установлен набор валидаторов - обработчиков, отслеживающих  соответствие вводимых данных определенным критериям. Валидатор указывается  атрибутом validators в поле схемы
StringField('email',
                 required = 1,
                 validators = ('isEmail'),
              ),
Валидаторов   может быть несколько:
validators = ('isMaxSize', 'isTidyHtmlWithCleanup',)
 
Если значение, вводимое в поле не удовлетворяет условию валидации, в форму будет выведено сообщение об ошибке. О  существующих валидаторах и самостоятельном их создании смотри:
http://plone.org/documentation/manual/developer-manual/archetypes/fields/validator-reference 
http://www.pererikstrandberg.se/blog/index.cgi?page=PloneArchetypesFieldValidator 
 


 
 

четверг, 16 декабря 2010 г.

Вкладки на форме контент-типа

Для добавления вкладки в базовый вид контент-типа достаточно в модели класса добавить метод и определить у него стереотпы, как на рисунке. При генерации Archgenxml  выдает сообщение "WARNING Deprecated usage of stereotype view or form!", но вкладку регистрирует.
Добавление вкладки можно сделать  вручную, добавив запись в файл имя_типа.xml в папке profiles/defaults/types.

Для модели на рисунке в файле Discipline.xml добавлена запись:

<action title="addTemsFromList" i18n:attributes="title" action_id="addTems" category="object" condition_expr="python:1" url_expr="string:${object_url}/addTems" visible="True">
  <permission value="View" />
  action>

вторник, 7 декабря 2010 г.

Отображение полей типа ImageField

Для того, чтобы поле типа ImageField отображалось в формах редактирования и просмотра объекта, нужно установить следующие  именованные значения для этого поля в UML-модели:
storage        AttributeStorage()
original_size  python:(600,600)
sizes            python:{'small':(100,100),'medium':(200,200),'large':(600,600)},

Атрибут original_size определяет  размер, в который будет преобразовано  исходное  изображение, если его размер превышает 'large'. 


Замечание к использованию Archgenxml

При разработке модели и генерации продукта Plone с помощью Archgenxml следите за одинаковым  именованием  модели в ArgoUML, файла хранении модели и папки генерируемого продукта. Эти имена  чуствительны к регистру и  нарушениие правила сквозного именования  может  привести к трудно определяемой ошибке.

Использование buildout

После установки Plone все задачи по изменению конфигурации и установка новых продуктов выполняются  через изменение  соответствующих записей в buildout.cfg и последующем выполнении команды bin\buildout -v.  Указание ключа -v позволяет просматривать лог выполнения в консоле.
Для возможности отладки установите в соответствующей строчке buildout.cfg значение debug-mode = off на debug-mode = on.
Запуск сервера:
 в отладочном режиме bin\instance fg
 в обычном режиме bin\instance start
Остановка сервера: bin\instance stop
Перезапуск сервера: bin\instance restart
Все команды набираются в консоле из корневой папки инстанса . Так, если Plone установлен в C:\Plone 3.3.5, то запуск производится именно из этой папки.
Для любителей мышки: не запускайте buildout.exe  и  instance.exe мышкой из окна "проводника" или каким-либо другим способом - консоль ваш друг, в крайнем случае - опция "Выполнить" из меню "Пуск".

среда, 1 декабря 2010 г.

Наследование от архетипов

Создать наследуемый от архетипов класс можно двумя способами.

1. Классический
 Создаем класс ATNewsItem со стереотипами archetype и stub и наследуем от него.
Устанавливаем величину именованнго значения import_from, присвоив значение Products.ATContentTypes.content.newsitem, что указывает на модуль с классом -архетипом. На этм все. Способ устаревший, но иногда (когда не срабатывает способ 2) используется.
2. Для Plone 3
Создаем свой класс и  устанавливаем ему стереотип соответствующий нужному архетипу, в данном примере atnewsitem.    

пятница, 4 июня 2010 г.

Рекомендации по локализации продукта Plone.

Рекомендации по локализации. Объяснение несколько усложнено.
1. Локализация продукта
Для локализации необходимо установить пакет i18ndude. При полной установке Archgenxml он устанавливается автоматически. Проверить наличие i18ndude.exe в Python24\Scripts.
При генерации продукта Archgenxml собирает все ссылки на записи, которые нужно локализовать в файл generated.pot в каталоге i18n продукта. Все преобразования производятся в папке locales продукта, поэтому, если ее нет - ее нада ее создать.
Дополнительно в папке locales создаем папку ru, а в ней папку LC_MESSAGES.
Сoздать в директории locales пустой текстовый файл c именем имя_продукта.pot в кодировке "UTF-8 без BOM" (я для этого использую Notepad++) и скопировать в него содержимое файла generated.pot. Можно просто скопировать и переименовать этот файл, а потом изменить у него кодировку в Notepad++.
Аналогичным образом создать в папке locales\ru\LC_MESSAGES файл с именем имя_продукта-ru.po.
Важно: если имя продукта с заглавной буквы, то и имена файлов - тоже.
В файле имя_продукта-ru.po строки :
"Language-Code: en\n"
"Language-Name: English\n"
"Preferred-Encodings: utf-8 latin1\n"
"Domain: DOMAIN\n"

заменить на:

"Language-Code: ru\n"
"Language-Name: Русский\n"
"Preferred-Encodings: utf-8\n"
"Domain: plone\n"

В строках вида
msgid "########"
msgstr ""
Вставить нуждый перевод в поле: msgstr "здесь перевод"
После преобразования скопировать файл имя_продукта-ru.po в папку i18n.
Перезапустить Plone, иногда нужно переустановить продукт.
Файл имя_продукта.pot на данном этапе не исползуется. Он будет необходим при подключении для перевода дополнительных шаблонов, которые созданы вручную, а не указаны в модели.

2. Локализация интерфейса Plone - например метку продукта в меню "Добавить новый элемент"
Выполнить внутри каталога продукта команду c:\Python24\Scripts\i18ndude sync --pot locales/plone.pot.
Выполнить внутри каталога продукта команду c:\Python24\Scripts\i18ndude rebuild-pot --pot locales/plone.pot --create plone profiles.
В результате в каталоге locales будет создан файл plone.pot, где будут собраны все ссылки на поля локализации, связанные с главным интерфейсом Plone.
Сoздать в директории i18n пустой текстовый файл имя_продукта-plone-ru.po в кодировке "UTF-8 без BOM".
Выполнить внутри каталога продукта команду c:\Python24\Scripts\i18ndude sync --pot locales/plone.pot i18n/имя_продукта-plone-ru.po
В результате в каталоге i18n будет создан файл имя_продукта-plone-ru.po с соответствующими полями.
В файле имя_продукта-plone-ru.po строки :
"Language-Code: en\n"
"Language-Name: English\n"
"Preferred-Encodings: utf-8 latin1\n"
"Domain: DOMAIN\n"

заменить на:

"Language-Code: ru\n"
"Language-Name: Русский\n"
"Preferred-Encodings: utf-8\n"
"Domain: plone\n"

В строках вида
msgid "########"
msgstr ""
Вставить нуждый перевод в поле: msgstr "здесь перевод"

Пока все. Есть еще возможности для перевода строковых величин, объявляемых в репеменных, списках и т.п.

вторник, 9 февраля 2010 г.

Получение списка тегированных значений

Для получения полного списка тегированных значений достаточно запустить на выполнение программу bin/agx_taggedvalues из папки Archgenxml и перенаправить вывод в файл, например так:
agx_taggedvalues>val.txt

Всероссийский конкурс  научно-технологических проектов страница конкурса https://dm-centre.ru/sirius-konkurs-projectov Цель конкурс...