Skip to content

Commit

Permalink
conditional usage of plone.app.discussion
Browse files Browse the repository at this point in the history
  • Loading branch information
jensens committed May 15, 2024
1 parent 3dd18fb commit 37a0f7c
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 20 deletions.
8 changes: 5 additions & 3 deletions src/plone/restapi/serializer/configure.zcml
Original file line number Diff line number Diff line change
Expand Up @@ -107,12 +107,14 @@

<adapter factory=".registry.SerializeRegistryToJson" />

<adapter factory=".discussion.ConversationSerializer" />
<adapter factory=".discussion.CommentSerializer" />
<configure zcml:condition="installed plone.app.discussion">
<adapter factory=".discussion.ConversationSerializer" />
<adapter factory=".discussion.CommentSerializer" />
</configure>

<include package=".controlpanels" />

<!-- Summary Serializer Metadata -->
<!-- Summary Serializer Metadata -->
<utility
factory=".summary.JSONSummarySerializerMetadata"
name="plone.restapi.summary_serializer_metadata"
Expand Down
5 changes: 4 additions & 1 deletion src/plone/restapi/services/configure.zcml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,10 @@
<include package=".controlpanels" />
<include package=".copymove" />
<include package=".database" />
<include package=".discussion" />
<include
zcml:condition="installed plone.app.discussion"
package=".discussion"
/>
<include package=".groups" />
<include package=".navigation" />
<include package=".contextnavigation" />
Expand Down
37 changes: 21 additions & 16 deletions src/plone/restapi/tests/statictime.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,18 @@
from datetime import datetime
from datetime import timezone
from DateTime import DateTime
from plone.app.discussion.comment import Comment
from plone.app.layout.viewlets.content import ContentHistoryViewlet
from plone.dexterity.content import DexterityContent
from plone.locking.lockable import TTWLockable
from plone.restapi.serializer.working_copy import WorkingCopyInfo
from Products.CMFCore.WorkflowTool import _marker
from Products.CMFCore.WorkflowTool import WorkflowTool

try:
from plone.app.discussion.comment import Comment
except ImportError:
Comment = None


_originals = {
"WorkflowTool.getInfoFor": WorkflowTool.getInfoFor,
Expand Down Expand Up @@ -106,19 +110,19 @@ def start(self):
DexterityContent.modification_date = property(
static_modification_date_getter_factory(self.static_modified), nop_setter
)

# Patch the lightweight p.a.discussion 'Comment' type. Its dates are
# Python datetimes, unlike DX Content types which use zope DateTimes.
Comment.creation_date = property(
static_creation_date_getter_factory(self.static_created, type_=datetime),
nop_setter,
)
Comment.modification_date = property(
static_modification_date_getter_factory(
self.static_modified, type_=datetime
),
nop_setter,
)
if Comment is not None:
# Patch the lightweight p.a.discussion 'Comment' type. Its dates are
# Python datetimes, unlike DX Content types which use zope DateTimes.
Comment.creation_date = property(
static_creation_date_getter_factory(self.static_created, type_=datetime),
nop_setter,
)
Comment.modification_date = property(
static_modification_date_getter_factory(
self.static_modified, type_=datetime
),
nop_setter,
)

WorkflowTool.getInfoFor = static_get_info_for_factory(self.static_modified)

Expand All @@ -138,8 +142,9 @@ def stop(self):
]
WorkflowTool.getInfoFor = _originals["WorkflowTool.getInfoFor"]

Comment.modification_date = None
Comment.creation_date = None
if Comment is not None:
Comment.modification_date = None
Comment.creation_date = None

WorkingCopyInfo.created = _originals["WorkingCopyInfo.created"]

Expand Down

0 comments on commit 37a0f7c

Please sign in to comment.