Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Collection "Event End Date: after today" criterion error #179 #3959

Open
sauzher opened this issue May 15, 2024 · 7 comments
Open

Collection "Event End Date: after today" criterion error #179 #3959

sauzher opened this issue May 15, 2024 · 7 comments

Comments

@sauzher
Copy link

sauzher commented May 15, 2024

Steps to reproduce:

  • Create events whose end date is in the future

  • Create a collection and set criteria: "Event End Date -> After Today"

immagine

  • Save
  • Set Event Listing view

Got Traceback error.

In plone 6 it is:


Traceback (innermost last):
  Module ZPublisher.WSGIPublisher, line 181, in transaction_pubevents
  Module ZPublisher.WSGIPublisher, line 391, in publish_module
  Module ZPublisher.WSGIPublisher, line 285, in publish
  Module ZPublisher.mapply, line 98, in mapply
  Module ZPublisher.WSGIPublisher, line 68, in call_object
  Module zope.browserpage.simpleviewclass, line 44, in __call__
  Module Products.Five.browser.pagetemplatefile, line 126, in __call__
  Module Products.Five.browser.pagetemplatefile, line 58, in __call__
  Module zope.pagetemplate.pagetemplate, line 134, in pt_render
  Module Products.PageTemplates.engine, line 365, in __call__
  Module z3c.pt.pagetemplate, line 174, in render
  Module chameleon.zpt.template, line 331, in render
  Module chameleon.template, line 217, in render
  Module chameleon.utils, line 20, in raise_with_traceback
  Module chameleon.template, line 193, in render
  Module 03d50a5f689152d843637e4b137fc230, line 1067, in render
  Module ede39b9b0fe0206938a0ec2cc61ca09d, line 930, in render_master
  Module ede39b9b0fe0206938a0ec2cc61ca09d, line 1553, in render_content
  Module 03d50a5f689152d843637e4b137fc230, line 1052, in __fill_content_core
  Module 03d50a5f689152d843637e4b137fc230, line 140, in render_content_core
  Module zope.tales.expressions, line 248, in __call__
  Module Products.PageTemplates.Expressions, line 221, in _eval
  Module Products.PageTemplates.Expressions, line 152, in render
  Module plone.memoize.view, line 50, in memogetter
  Module plone.app.event.browser.event_listing, line 166, in events
  Module plone.app.event.base, line 286, in expand_events
  Module DateTime.DateTime, line 1360, in lessThanEqualTo
AttributeError: 'datetime.datetime' object has no attribute '_micros'

 - Expression: "view/events"
 - Filename:   ... 1/site-packages/plone/app/event/browser/event_listing.pt
 - Location:   (line 74: col 25)
 - Source:     batch view/events;
                     ^^^^^^^^^^^
 - Expression: "provider:plone.abovecontentbody"
 - Filename:   ... ges/Products/CMFPlone/browser/templates/main_template.pt
 - Location:   (line 107: col 74)
 - Source:     ... ontent="structure provider:plone.abovecontentbody" />
                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 - Expression: "context/main_template/macros/master"
 - Filename:   ... 1/site-packages/plone/app/event/browser/event_listing.pt
 - Location:   (line 6: col 23)
 - Source:     ... etal:use-macro="context/main_template/macros/master"
                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 - Arguments:  template: <Products.Five.browser.pagetemplatefile.ViewPageTemplateFile object at 0x7f4b95259010>
               options: {}
               args: ()
               nothing: None
               modules: <Products.PageTemplates.ZRPythonExpr._SecureModuleImporter object at 0x7f4b9cbec190>
               request: <WSGIRequest, URL=https://classic.demo.plone.org/en/eventi/eventi/event_listing>
               view: <Products.Five.browser.metaconfigure.SimpleViewClass from /app/lib/python3.11/site-packages/plone/app/event/browser/event_listing.pt object at 0x7f4b97571d10>
               context: <Collection at /Plone/en/eventi/eventi>
               views: <Products.Five.browser.pagetemplatefile.ViewMapper object at 0x7f4b94e61090>
               here: <Collection at /Plone/en/eventi/eventi>
               container: <Collection at /Plone/en/eventi/eventi>
               root: <Application at >
               traverse_subpath: []
               user: <PloneUser 'manager'>
               default: <DEFAULT>
               repeat: <Products.PageTemplates.engine.RepeatDictWrapper object at 0x7f4b9761d950>
               loop: {}
               target_language: None
               translate: <function BaseTemplate.render.<locals>.translate at 0x7f4b95498c20>
               macroname: 'master'
               attrs: {}Traceback (innermost last):
  Module ZPublisher.WSGIPublisher, line 181, in transaction_pubevents
  Module ZPublisher.WSGIPublisher, line 391, in publish_module
  Module ZPublisher.WSGIPublisher, line 285, in publish
  Module ZPublisher.mapply, line 98, in mapply
  Module ZPublisher.WSGIPublisher, line 68, in call_object
  Module zope.browserpage.simpleviewclass, line 44, in __call__
  Module Products.Five.browser.pagetemplatefile, line 126, in __call__
  Module Products.Five.browser.pagetemplatefile, line 58, in __call__
  Module zope.pagetemplate.pagetemplate, line 134, in pt_render
  Module Products.PageTemplates.engine, line 365, in __call__
  Module z3c.pt.pagetemplate, line 174, in render
  Module chameleon.zpt.template, line 331, in render
  Module chameleon.template, line 217, in render
  Module chameleon.utils, line 20, in raise_with_traceback
  Module chameleon.template, line 193, in render
  Module 03d50a5f689152d843637e4b137fc230, line 1067, in render
  Module ede39b9b0fe0206938a0ec2cc61ca09d, line 930, in render_master
  Module ede39b9b0fe0206938a0ec2cc61ca09d, line 1553, in render_content
  Module 03d50a5f689152d843637e4b137fc230, line 1052, in __fill_content_core
  Module 03d50a5f689152d843637e4b137fc230, line 140, in render_content_core
  Module zope.tales.expressions, line 248, in __call__
  Module Products.PageTemplates.Expressions, line 221, in _eval
  Module Products.PageTemplates.Expressions, line 152, in render
  Module plone.memoize.view, line 50, in memogetter
  Module plone.app.event.browser.event_listing, line 166, in events
  Module plone.app.event.base, line 286, in expand_events
  Module DateTime.DateTime, line 1360, in lessThanEqualTo
AttributeError: 'datetime.datetime' object has no attribute '_micros'

 - Expression: "view/events"
 - Filename:   ... 1/site-packages/plone/app/event/browser/event_listing.pt
 - Location:   (line 74: col 25)
 - Source:     batch view/events;
                     ^^^^^^^^^^^
 - Expression: "provider:plone.abovecontentbody"
 - Filename:   ... ges/Products/CMFPlone/browser/templates/main_template.pt
 - Location:   (line 107: col 74)
 - Source:     ... ontent="structure provider:plone.abovecontentbody" />
                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 - Expression: "context/main_template/macros/master"
 - Filename:   ... 1/site-packages/plone/app/event/browser/event_listing.pt
 - Location:   (line 6: col 23)
 - Source:     ... etal:use-macro="context/main_template/macros/master"
                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 - Arguments:  template: <Products.Five.browser.pagetemplatefile.ViewPageTemplateFile object at 0x7f4b95259010>
               options: {}
               args: ()
               nothing: None
               modules: <Products.PageTemplates.ZRPythonExpr._SecureModuleImporter object at 0x7f4b9cbec190>
               request: <WSGIRequest, URL=https://classic.demo.plone.org/en/eventi/eventi/event_listing>
               view: <Products.Five.browser.metaconfigure.SimpleViewClass from /app/lib/python3.11/site-packages/plone/app/event/browser/event_listing.pt object at 0x7f4b97571d10>
               context: <Collection at /Plone/en/eventi/eventi>
               views: <Products.Five.browser.pagetemplatefile.ViewMapper object at 0x7f4b94e61090>
               here: <Collection at /Plone/en/eventi/eventi>
               container: <Collection at /Plone/en/eventi/eventi>
               root: <Application at >
               traverse_subpath: []
               user: <PloneUser 'manager'>
               default: <DEFAULT>
               repeat: <Products.PageTemplates.engine.RepeatDictWrapper object at 0x7f4b9761d950>
               loop: {}
               target_language: None
               translate: <function BaseTemplate.render.<locals>.translate at 0x7f4b95498c20>
               macroname: 'master'
               attrs: {}

In plone 5 I get a slightly different error:

2024-05-15 16:36:13,422 ERROR   [Zope.SiteErrorLog:252][waitress-0] 1715783773.42113350.009147154423860493 http://localhost:8080/Plone/notizie-ed-eventi/eventi/eventi/event_listing
Traceback (innermost last):
  Module ZPublisher.WSGIPublisher, line 176, in transaction_pubevents
  Module ZPublisher.WSGIPublisher, line 385, in publish_module
  Module ZPublisher.WSGIPublisher, line 280, in publish
  Module ZPublisher.mapply, line 85, in mapply
  Module ZPublisher.WSGIPublisher, line 63, in call_object
  Module zope.browserpage.simpleviewclass, line 41, in __call__
  Module Products.Five.browser.pagetemplatefile, line 126, in __call__
  Module Products.Five.browser.pagetemplatefile, line 58, in __call__
  Module zope.pagetemplate.pagetemplate, line 133, in pt_render
  Module Products.PageTemplates.engine, line 378, in __call__
  Module z3c.pt.pagetemplate, line 176, in render
  Module chameleon.zpt.template, line 302, in render
  Module chameleon.template, line 215, in render
  Module chameleon.utils, line 53, in raise_with_traceback
  Module chameleon.template, line 192, in render
  Module 71409d3e12ace82d54aa7064ff4d1c8c, line 1067, in render
  Module 418c64f173f7595aed1cc7b415aef440, line 904, in render_master
  Module 418c64f173f7595aed1cc7b415aef440, line 1540, in render_content
  Module 71409d3e12ace82d54aa7064ff4d1c8c, line 1052, in __fill_content_core
  Module 71409d3e12ace82d54aa7064ff4d1c8c, line 140, in render_content_core
  Module zope.tales.expressions, line 250, in __call__
  Module Products.PageTemplates.Expressions, line 225, in _eval
  Module Products.PageTemplates.Expressions, line 155, in render
  Module plone.memoize.view, line 59, in memogetter
  Module plone.app.event.browser.event_listing, line 166, in events
  Module plone.app.event.base, line 287, in expand_events
  Module DateTime.DateTime, line 1378, in lessThanEqualTo
TypeError: '<=' not supported between instances of 'int' and 'datetime.datetime
@davisagli
Copy link
Sponsor Member

@sauzher This may have been fixed in zopefoundation/DateTime#61. You didn't say a specific version of Plone or DateTime that you were using.

@sauzher
Copy link
Author

sauzher commented Jun 3, 2024

@davisagli I'm facing the problem in plone 5.2.13, DateTime 4.9. but the same happens in Plone 6.0.11 (6022) and Plone 6.10 DateTime 5.3

Thanks.

@stevepiercy
Copy link
Contributor

@sauzher it was fixed in DateTime 5.4, according to the last comment in the issue that @davisagli linked. The latest Plone constraints.txt file pins it to 5.3. I assume if you install DateTime 5.4, then it will work for latest Plone.

@sauzher
Copy link
Author

sauzher commented Jun 3, 2024

@davisagli @stevepiercy ,
unfortunately even pinning DateTime = 5.4 it doesn't solve. The traceback seems to be the same:

Traceback (innermost last):
  Module ZPublisher.WSGIPublisher, line 176, in transaction_pubevents
  Module ZPublisher.WSGIPublisher, line 385, in publish_module
  Module ZPublisher.WSGIPublisher, line 280, in publish
  Module ZPublisher.mapply, line 85, in mapply
  Module ZPublisher.WSGIPublisher, line 63, in call_object
  Module zope.browserpage.simpleviewclass, line 41, in __call__
  Module Products.Five.browser.pagetemplatefile, line 126, in __call__
  Module Products.Five.browser.pagetemplatefile, line 58, in __call__
  Module zope.pagetemplate.pagetemplate, line 133, in pt_render
  Module Products.PageTemplates.engine, line 378, in __call__
  Module z3c.pt.pagetemplate, line 176, in render
  Module chameleon.zpt.template, line 302, in render
  Module chameleon.template, line 215, in render
  Module chameleon.utils, line 53, in raise_with_traceback
  Module chameleon.template, line 192, in render
  Module c4d8b9e8c20076ed60bfb79b703e4984, line 1059, in render
  Module 20728d413d4a6300597bce6859f44302, line 904, in render_master
  Module 20728d413d4a6300597bce6859f44302, line 1540, in render_content
  Module c4d8b9e8c20076ed60bfb79b703e4984, line 1044, in __fill_content_core
  Module c4d8b9e8c20076ed60bfb79b703e4984, line 138, in render_content_core
  Module zope.tales.expressions, line 250, in __call__
  Module Products.PageTemplates.Expressions, line 225, in _eval
  Module Products.PageTemplates.Expressions, line 155, in render
  Module plone.memoize.view, line 59, in memogetter
  Module plone.app.event.browser.event_listing, line 171, in events
  Module plone.app.event.base, line 285, in expand_events
  Module DateTime.DateTime, line 1370, in lessThanEqualTo
TypeError: '<=' not supported between instances of 'int' and 'datetime.datetime'

@davisagli
Copy link
Sponsor Member

@sauzher Based on the traceback, it looks like a datetime instance was passed in to DateTime.lessThanEqualTo.

Based on the docstring in https://github.com/zopefoundation/DateTime/blob/5.4/src/DateTime/DateTime.py#L1352, it expects a DateTime instance or a float.

So I guess the bug is that plone.app.event is passing the wrong type.

@sauzher
Copy link
Author

sauzher commented Jun 4, 2024

@davisagli I agree, actually I've monkey patched plone.app.events.base.expand_events casting into DateTime all the operands. Not so clean but it's ok for our Plones.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants