Plone3+Poi
Plone3でPoiがどうしても動かせなかった記録。PoiっていうのはZope/Ploneのissue trackerプロダクト。Poiに加えて
- AddRemoveWidget
- DataGridField(Plone3対応は1.6以上)
が必要。Ploneの最新版(3.0.6)とあわせてインストールし、Plone Siteを作成、new issueを追加しようとすると、こんなエラーが。長いけど全文引用します。
* Module ZPublisher.Publish, line 119, in publish * Module ZPublisher.mapply, line 88, in mapply * Module ZPublisher.Publish, line 42, in call_object * Module Products.CMFPlone.FactoryTool, line 376, in __call__ * Module ZPublisher.mapply, line 88, in mapply * Module ZPublisher.Publish, line 42, in call_object * Module Products.CMFFormController.FSControllerPageTemplate, line 90, in __call__ * Module Products.CMFFormController.BaseControllerPageTemplate, line 31, in _call * Module Shared.DC.Scripts.Bindings, line 313, in __call__ * Module Shared.DC.Scripts.Bindings, line 350, in _bindAndExec * Module Products.CMFCore.FSPageTemplate, line 216, in _exec * Module Products.CMFCore.FSPageTemplate, line 155, in pt_render * Module Products.PageTemplates.PageTemplate, line 89, in pt_render * Module zope.pagetemplate.pagetemplate, line 117, in pt_render Warning: Macro expansion failed Warning: exceptions.KeyError: 'macro' * Module zope.tal.talinterpreter, line 271, in __call__ * Module zope.tal.talinterpreter, line 346, in interpret * Module zope.tal.talinterpreter, line 861, in do_defineMacro * Module zope.tal.talinterpreter, line 346, in interpret * Module zope.tal.talinterpreter, line 536, in do_optTag_tal * Module zope.tal.talinterpreter, line 521, in do_optTag * Module zope.tal.talinterpreter, line 516, in no_tag * Module zope.tal.talinterpreter, line 346, in interpret * Module zope.tal.talinterpreter, line 891, in do_useMacro * Module zope.tal.talinterpreter, line 346, in interpret * Module zope.tal.talinterpreter, line 536, in do_optTag_tal * Module zope.tal.talinterpreter, line 521, in do_optTag * Module zope.tal.talinterpreter, line 516, in no_tag * Module zope.tal.talinterpreter, line 346, in interpret * Module zope.tal.talinterpreter, line 957, in do_defineSlot * Module zope.tal.talinterpreter, line 346, in interpret * Module zope.tal.talinterpreter, line 536, in do_optTag_tal * Module zope.tal.talinterpreter, line 521, in do_optTag * Module zope.tal.talinterpreter, line 516, in no_tag * Module zope.tal.talinterpreter, line 346, in interpret * Module zope.tal.talinterpreter, line 861, in do_defineMacro * Module zope.tal.talinterpreter, line 346, in interpret * Module zope.tal.talinterpreter, line 957, in do_defineSlot * Module zope.tal.talinterpreter, line 346, in interpret * Module zope.tal.talinterpreter, line 536, in do_optTag_tal * Module zope.tal.talinterpreter, line 521, in do_optTag * Module zope.tal.talinterpreter, line 516, in no_tag * Module zope.tal.talinterpreter, line 346, in interpret * Module zope.tal.talinterpreter, line 534, in do_optTag_tal * Module zope.tal.talinterpreter, line 516, in no_tag * Module zope.tal.talinterpreter, line 346, in interpret * Module zope.tal.talinterpreter, line 949, in do_defineSlot * Module zope.tal.talinterpreter, line 346, in interpret * Module zope.tal.talinterpreter, line 536, in do_optTag_tal * Module zope.tal.talinterpreter, line 521, in do_optTag * Module zope.tal.talinterpreter, line 516, in no_tag * Module zope.tal.talinterpreter, line 346, in interpret * Module zope.tal.talinterpreter, line 861, in do_defineMacro * Module zope.tal.talinterpreter, line 346, in interpret * Module zope.tal.talinterpreter, line 536, in do_optTag_tal * Module zope.tal.talinterpreter, line 521, in do_optTag * Module zope.tal.talinterpreter, line 516, in no_tag * Module zope.tal.talinterpreter, line 346, in interpret * Module zope.tal.talinterpreter, line 891, in do_useMacro * Module zope.tal.talinterpreter, line 346, in interpret * Module zope.tal.talinterpreter, line 536, in do_optTag_tal * Module zope.tal.talinterpreter, line 521, in do_optTag * Module zope.tal.talinterpreter, line 516, in no_tag * Module zope.tal.talinterpreter, line 346, in interpret * Module zope.tal.talinterpreter, line 891, in do_useMacro * Module zope.tal.talinterpreter, line 346, in interpret * Module zope.tal.talinterpreter, line 855, in do_condition * Module zope.tal.talinterpreter, line 346, in interpret * Module zope.tal.talinterpreter, line 949, in do_defineSlot * Module zope.tal.talinterpreter, line 346, in interpret * Module zope.tal.talinterpreter, line 536, in do_optTag_tal * Module zope.tal.talinterpreter, line 521, in do_optTag * Module zope.tal.talinterpreter, line 516, in no_tag * Module zope.tal.talinterpreter, line 346, in interpret * Module zope.tal.talinterpreter, line 957, in do_defineSlot * Module zope.tal.talinterpreter, line 346, in interpret * Module zope.tal.talinterpreter, line 536, in do_optTag_tal * Module zope.tal.talinterpreter, line 521, in do_optTag * Module zope.tal.talinterpreter, line 516, in no_tag * Module zope.tal.talinterpreter, line 346, in interpret * Module zope.tal.talinterpreter, line 855, in do_condition * Module zope.tal.talinterpreter, line 346, in interpret * Module zope.tal.talinterpreter, line 536, in do_optTag_tal * Module zope.tal.talinterpreter, line 521, in do_optTag * Module zope.tal.talinterpreter, line 516, in no_tag * Module zope.tal.talinterpreter, line 346, in interpret * Module zope.tal.talinterpreter, line 824, in do_loop_tal * Module zope.tal.talinterpreter, line 346, in interpret * Module zope.tal.talinterpreter, line 536, in do_optTag_tal * Module zope.tal.talinterpreter, line 525, in do_optTag * Module zope.tal.talinterpreter, line 346, in interpret * Module zope.tal.talinterpreter, line 824, in do_loop_tal * Module zope.tal.talinterpreter, line 346, in interpret * Module zope.tal.talinterpreter, line 536, in do_optTag_tal * Module zope.tal.talinterpreter, line 521, in do_optTag * Module zope.tal.talinterpreter, line 516, in no_tag * Module zope.tal.talinterpreter, line 346, in interpret * Module zope.tal.talinterpreter, line 870, in do_useMacro * Module zope.tales.tales, line 696, in evaluate URL: file:/usr/local/zope/project/Products/CMFEditions/skins/CMFEditions/edit_macros.pt Line 43, Column 22 Expression: <PythonExpr here.widget(field.getName(), mode='edit')> Names: {'container': <PloneSite at /poi>, 'context': <PoiTracker at /poi/portal_factory/PoiTracker/poitracker.2008-02-26.6498842052 used for /poi>, 'default': <object object at 0xbf584528>, 'here': <PoiTracker at /poi/portal_factory/PoiTracker/poitracker.2008-02-26.6498842052 used for /poi>, 'loop': {u'field': <Products.PageTemplates.Expressions.PathIterator object at 0xb9a9180c>, u'fieldset': <Products.PageTemplates.Expressions.PathIterator object at 0xb9a91e8c>}, 'nothing': None, 'options': {'args': (), 'state': <Products.CMFFormController.ControllerState.ControllerState object at 0xb9b9a5ec>}, 'repeat': <Products.PageTemplates.Expressions.SafeMapping object at 0xb9f4280c>, 'request': <HTTPRequest, URL=http://XXX.XXX.XXX.XXX:8080/poi/portal_factory/PoiTracker/poitracker.2008-02-26.6498842052/base_edit>, 'root': <Application at >, 'template': <FSControllerPageTemplate at /poi/base_edit used for /poi/portal_factory/PoiTracker/poitracker.2008-02-26.6498842052>, 'traverse_subpath': [], 'user': <PropertiedUser 'admin'>} * Module Products.PageTemplates.ZRPythonExpr, line 49, in __call__ __traceback_info__: here.widget(field.getName(), mode='edit') * Module PythonExpr, line 1, in <expression> * Module Products.Archetypes.BaseObject, line 287, in widget * Module Products.Archetypes.Renderer, line 24, in render * Module Products.Archetypes.generator.widget, line 147, in __call__ AttributeError: Macro datagridwidget does not exist for <PoiTracker at poitracker.2008-02-26.6498842052>
"datagridwidget"っていうマクロが見えないと。でもこのマクロはインストールしたDataGridFiledのDataGridWidget.pyにちゃんと定義があります。
_properties.update({ 'macro' : "datagridwidget", 'helper_css': ('datagridwidget.css',), 'helper_js': ('datagridwidget.js',), 'show_header' : True, 'auto_insert': False, 'columns' : {}, # Sequence of Column instances })
なんで見えないんだかわからない。。