Search code examples
eventsfullcalendarplonedexterity

How can I have Solgema.fullcalendar, plone.app.event and plone.app.contenttypes to work together?


On a fresh new Plone 4.3.2, I have installed these 3 products:

plone.app.contenttypes (1.1a1)
plone.app.event (1.0.4, with the dexterity and ploneintegration extras)
Solgema.fullcalendar (2.3.2)

From my policy product metadata.xml I have this:

<?xml version="1.0"?>
<metadata>
    <version>1</version>
    <dependencies>
        <dependency>profile-plone.app.dexterity:default</dependency>
        <dependency>profile-plone.app.contenttypes:default</dependency>
        <dependency>profile-plone.app.event:default</dependency>
        <dependency>profile-plone.app.event.ploneintegration:default</dependency>
        <dependency>profile-Solgema.fullcalendar:default</dependency>
    </dependencies>
</metadata>

Now, the issue is, when I install everything I:

  • Create a folder
  • Go to that folder, and apply the "Solgema Fullcalendar" view, which renders the calendar just fine.
  • Click on any date to try and add a new event, and I get the following error

    Traceback (innermost last):

    • Module ZPublisher.Publish, line 138, in publish
    • Module ZPublisher.mapply, line 77, in mapply
    • Module ZPublisher.Publish, line 48, in call_object
    • Module Products.CMFFormController.FSControllerPythonScript, line 107, in __call__
    • Module Products.CMFFormController.ControllerBase, line 231, in getNext
    • Module Products.CMFFormController.Actions.TraverseTo, line 38, in __call__
    • Module ZPublisher.mapply, line 77, in mapply
    • Module ZPublisher.Publish, line 48, in call_object
    • Module Solgema.fullcalendar.browser.dx, line 38, in __call__
    • Module Products.Five.browser.pagetemplatefile, line 125, in __call__
    • Module Products.Five.browser.pagetemplatefile, line 59, in __call__
    • Module zope.pagetemplate.pagetemplate, line 132, in pt_render
    • Module zope.pagetemplate.pagetemplate, line 240, in __call__
    • Module zope.tal.talinterpreter, line 271, in __call__
    • Module zope.tal.talinterpreter, line 343, in interpret
    • Module zope.tal.talinterpreter, line 888, in do_useMacro
    • Module zope.tal.talinterpreter, line 343, in interpret
    • Module zope.tal.talinterpreter, line 533, in do_optTag_tal
    • Module zope.tal.talinterpreter, line 518, in do_optTag
    • Module zope.tal.talinterpreter, line 513, in no_tag
    • Module zope.tal.talinterpreter, line 343, in interpret
    • Module zope.tal.talinterpreter, line 852, in do_condition
    • Module zope.tal.talinterpreter, line 343, in interpret
    • Module zope.tal.talinterpreter, line 533, in do_optTag_tal
    • Module zope.tal.talinterpreter, line 518, in do_optTag
    • Module zope.tal.talinterpreter, line 513, in no_tag
    • Module zope.tal.talinterpreter, line 343, in interpret
    • Module zope.tal.talinterpreter, line 946, in do_defineSlot
    • Module zope.tal.talinterpreter, line 343, in interpret
    • Module zope.tal.talinterpreter, line 533, in do_optTag_tal
    • Module zope.tal.talinterpreter, line 518, in do_optTag
    • Module zope.tal.talinterpreter, line 513, in no_tag
    • Module zope.tal.talinterpreter, line 343, in interpret
    • Module zope.tal.talinterpreter, line 620, in do_insertText_tal
    • Module Products.PageTemplates.Expressions, line 225, in evaluateText
    • Module zope.tales.tales, line 696, in evaluate
      URL: /trabajo/buildout/eggs/Solgema.fullcalendar-2.3.2-py2.7.egg/Solgema/fullcalendar/browser/edit_dx_event.pt
      Line 9, Column 0
      Expression: <StringExpr u" sf_goto_date='${view/isodate}'">
      Names:
      {'args': (),
       'container': <Event at /Plone/my-events/portal_factory/Event/event.2013-12-13.7249633222 used for /Plone/my-events>,
       'context': <Event at /Plone/my-events/portal_factory/Event/event.2013-12-13.7249633222 used for /Plone/my-events>,
       'default': <object object at 0x7f0fa971db80>,
       'here': <Event at /Plone/my-events/portal_factory/Event/event.2013-12-13.7249633222 used for /Plone/my-events>,
       'loop': {},
       'nothing': None,
       'options': {},
       'repeat': <Products.PageTemplates.Expressions.SafeMapping object at 0x7f0f909c2a48>,
       'request': <HTTPRequest, URL=http://localhost:8080/Plone/my-events/createSFEvent>,
       'root': <Application at >,
       'template': <Products.Five.browser.pagetemplatefile.ViewPageTemplateFile object at 0xbd1f190>,
       'traverse_subpath': [],
       'user': <PropertiedUser 'admin'>,
       'view': <Products.Five.metaclass.InlineFrameEditForm object at 0x7f0f98696c90>,
       'views': <Products.Five.browser.pagetemplatefile.ViewMapper object at 0x7f0f900e1610>}
    • Module Products.PageTemplates.Expressions, line 383, in __call__
    • Module Products.PageTemplates.Expressions, line 225, in evaluateText
    • Module zope.tales.tales, line 696, in evaluate
      URL: /trabajo/buildout/eggs/Solgema.fullcalendar-2.3.2-py2.7.egg/Solgema/fullcalendar/browser/edit_dx_event.pt
      Line 9, Column 0
      Expression: <PathExpr path:u'view/isodate'>
      Names:
      {'args': (),
       'container': <Event at /Plone/my-events/portal_factory/Event/event.2013-12-13.7249633222 used for /Plone/my-events>,
       'context': <Event at /Plone/my-events/portal_factory/Event/event.2013-12-13.7249633222 used for /Plone/my-events>,
       'default': <object object at 0x7f0fa971db80>,
       'here': <Event at /Plone/my-events/portal_factory/Event/event.2013-12-13.7249633222 used for /Plone/my-events>,
       'loop': {},
       'nothing': None,
       'options': {},
       'repeat': <Products.PageTemplates.Expressions.SafeMapping object at 0x7f0f909c2a48>,
       'request': <HTTPRequest, URL=http://localhost:8080/Plone/my-events/createSFEvent>,
       'root': <Application at >,
       'template': <Products.Five.browser.pagetemplatefile.ViewPageTemplateFile object at 0xbd1f190>,
       'traverse_subpath': [],
       'user': <PropertiedUser 'admin'>,
       'view': <Products.Five.metaclass.InlineFrameEditForm object at 0x7f0f98696c90>,
       'views': <Products.Five.browser.pagetemplatefile.ViewMapper object at 0x7f0f900e1610>}
    • Module zope.tales.expressions, line 217, in __call__
    • Module Products.PageTemplates.Expressions, line 155, in _eval
    • Module Products.PageTemplates.Expressions, line 117, in render
    • Module Solgema.fullcalendar.browser.dx, line 43, in isodate

    AttributeError: 'NoneType' object has no attribute 'isoformat'

Has anyone experience with these 3 products together? am I missing some configuration ?

I tried to follow the execution for the Solgema.fullcalendar product, and I reach the part were Solgema/fullcalendar/skins/solgemafullcalendar/createSFEvent.cpy is called, and under line 33, it calls SFAjax_base_edit, and this view fails, because this event doesn't have any date set yet.

Being that I'm creating a new event, shouldn't this be calling SFAjax_add_dx_event instead ?

Anyway, a bit lost here, any pointers would be much appreciated.


Solution

  • The issue is most likely already fixed in recent Solgema.fullcalendar versions. I cannot reproduce the error with a current setup on Plone 4.3.4.1. I'm using these version fixes in my buildout:

    [versions]
    plone.app.event = 1.1.4
    plone.app.contenttypes = 1.1b3
    Solgema.fullcalendar = 2.3.4
    

    Please note, that you do not need the profile-plone.app.event.ploneintegration:default profile anymore.