Реализация простого типа контента ловкости для Plone 4

Я очень расстраиваюсь, начав изучать разработку Plone. Я хотел бы разработать тип контента, основанный на ловкости, для Plone 4. Я опытный разработчик Python, немного знакомый с Zope и Grok, будучи довольно новым для сборки. Тем не менее, я прочитал "Профессиональную разработку Plone 4" Мартина Аспели, но довольно некоторая информация о версии в книге, кажется, устарела.

Используя buildout, я смог запустить экземпляр Plone. ZopeSkel установлен, но когда я пытаюсь создать новый пакет, я получаю сообщение об ошибке:

**************************************************************************
**  Your new package supports local commands.  To access them, change
**  directories into the 'src' directory inside your new package.
**  From there, you will be able to run the command `paster add
**  --list` to see the local commands available for this package.
**************************************************************************


ERROR: No egg-info directory found (looked in ./domma.voucher/./domma.voucher.egg-info, ./domma.voucher/bootstrap.py/domma.voucher.egg-info, ./domma.voucher/bootstrap.pyo/domma.voucher.egg-info, ./domma.voucher/buildout.cfg/domma.voucher.egg-info, ./domma.voucher/CHANGES.txt/domma.voucher.egg-info, ./domma.voucher/CONTRIBUTORS.txt/domma.voucher.egg-info, ./domma.voucher/docs/domma.voucher.egg-info, ./domma.voucher/domma/domma.voucher.egg-info, ./domma.voucher/README.txt/domma.voucher.egg-info, ./domma.voucher/setup.cfg/domma.voucher.egg-info, ./domma.voucher/setup.py/domma.voucher.egg-info, ./domma.voucher/src/domma.voucher.egg-info)

Если я пытаюсь запустить paster из данного каталога, он говорит мне, что команда "добавить" не знает. Я пробовал разные версии ZopeSkel, пробовал необработанные шаблоны plone, а также zopeskel.dexterity. Вывод немного меняется в зависимости от версии и шаблона, но результат остается прежним.

Разработка Obvisouly Plone кажется очень чувствительной к изменениям версий, что делает устаревшую документацию совершенно бесполезной. http://plone.org/products/dexterity/documentation/manual/developer-manual сообщает мне, что он был обновлен в последний раз 1114 лет назад.

Может ли кто-нибудь дать мне отправную точку для разработки очень простого типа контента "Ловкость" для Plone 4, который действительно работает?

4 ответа

Решение

Что бы это ни стоило, в то время как есть несколько более новых версий некоторых пакетов, Профессиональная разработка Plone 4 актуальна с Plone 4.1. Я бы предложил вам использовать его и начать с примера кода. Не пытайтесь произвольно модернизировать вещи, пока не узнаете, что у вас есть рабочая отправная точка, и с вами должно быть все в порядке.

http://pigeonflight.blogspot.com/2012/01/dexterity-development-quickstart-using.html предлагает хороший быстрый старт. Самые последние документы о Ловкости находятся по адресу http://dexterity-developer-manual.readthedocs.org/en/latest/index.html. Да, это немного подвижная цель, с точки зрения документации, не столько из-за Ловкости, которая стабильна и находится в производстве, но главным образом потому, что Zopeskel сейчас находится в стадии интенсивного развития / модернизации. Извини за это.

От [https://github.com/collective/templer.plone/blob/master/README.txt][1]

Templer не может сосуществовать со старым ZopeSkel в той же сборке или Python virtualenv.

В противном случае вы столкнетесь со следующей ошибкой при попытке создания пакетов:

  IOError: No egg-info directory found (looked in ./mycompany.content/./mycompany.content.egg-info, ....

Templer - это последнее воплощение ZopeSkel(версия 3). Я не уверен, какая у вас версия ZopeSkel или у вас есть смешанные версии, установленные в buildout или virtualenv. Но конфликтная установка ZopeSkel, вероятно, является виновником.

Я бы начал с нуля и воссоздал vitualenv и просто установил последнюю версию ZopeSkel 2 через buildout. ZopeSkel 3 или Templer все еще находятся в стадии разработки, и не все шаблоны были перенесены.

Я смог создать новый сайт Plone 4.1.4 с новым типом контента Dexterity, используя эту сборку. Это не должно быть официальным ответом, но вставка конфигурации в изменчивый сервис, такой как pastebin, не является опцией для постоянной документации.

# buildout.cfg file for Plone 4 development work
# - for production installations please use http://plone.org/download
# Each part has more information about its recipe on PyPi
# http://pypi.python.org/pypi 
# ... just reach by the recipe name
[buildout]
parts =  
    instance
    zopepy
    i18ndude
    zopeskel
    test
#    omelette

extends = 
    http://dist.plone.org/release/4.1-latest/versions.cfg
    http://good-py.appspot.com/release/dexterity/1.2.1?plone=4.1.4

# Add additional egg download sources here. dist.plone.org contains archives
# of Plone packages.
find-links =
    http://dist.plone.org/release/4.1-latest
    http://dist.plone.org/thirdparty

extensions = 
    mr.developer
    buildout.dumppickedversions

sources = sources

versions = versions

auto-checkout = 
    nva.borrow

# Create bin/instance command to manage Zope start up and shutdown
[instance]
recipe = plone.recipe.zope2instance
user = admin:admin
http-address = 16080
debug-mode = off
verbose-security = on
blob-storage = var/blobstorage
zope-conf-additional = %import sauna.reload

eggs =
    Pillow
    Plone
    nva.borrow
    sauna.reload
    plone.app.dexterity

# Some pre-Plone 3.3 packages may need you to register the package name here in 
# order their configure.zcml to be run (http://plone.org/products/plone/roadmap/247)
# - this is never required for packages in the Products namespace (Products.*)
zcml =
#    nva.borrow
    sauna.reload


# zopepy commands allows you to execute Python scripts using a PYTHONPATH 
# including all the configured eggs
[zopepy]
recipe = zc.recipe.egg
eggs = ${instance:eggs}
interpreter = zopepy
scripts = zopepy

# create bin/i18ndude command
[i18ndude]
unzip = true
recipe = zc.recipe.egg
eggs = i18ndude

# create bin/test command
[test]
recipe = zc.recipe.testrunner
defaults = ['--auto-color', '--auto-progress']
eggs =
    ${instance:eggs}

# create ZopeSkel and paster commands with dexterity support
[zopeskel]
recipe = zc.recipe.egg
eggs =
    ZopeSkel<=2.99
    PasteScript
    zopeskel.dexterity<=2.99
    ${instance:eggs}

# symlinks all Python source code to parts/omelette folder when buildout is run
# windows users will need to install additional software for this part to build 
# correctly.  See http://pypi.python.org/pypi/collective.recipe.omelette for
# relevant details.
# [omelette]
# recipe = collective.recipe.omelette
# eggs = ${instance:eggs}

# Put your mr.developer managed source code repositories here, see
# http://pypi.python.org/pypi/mr.developer for details on the format of
# this part
[sources]
nva.borrow = svn https://novareto.googlecode.com/svn/nva.borrow/trunk

# Version pindowns for new style products go here - this section extends one 
# provided in http://dist.plone.org/release/
[versions]
Другие вопросы по тегам