Skip to content

Commit

Permalink
Merge c765a23 into 7cbaac5
Browse files Browse the repository at this point in the history
  • Loading branch information
gbastien committed Nov 21, 2022
2 parents 7cbaac5 + c765a23 commit 2624c07
Show file tree
Hide file tree
Showing 9 changed files with 76 additions and 26 deletions.
5 changes: 3 additions & 2 deletions CHANGES.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,9 @@ Changelog
1.28 (unreleased)
-----------------

- Nothing changed yet.

- Added possibility to display an event preview under the comment
in the `@@contenthistory` view.
[gbastien]

1.27 (2022-06-14)
-----------------
Expand Down
22 changes: 13 additions & 9 deletions src/imio/history/browser/configure.zcml
Original file line number Diff line number Diff line change
Expand Up @@ -9,32 +9,36 @@
<!-- Publish static files -->
<browser:resourceDirectory
name="imio.history"
directory="static"
/>
directory="static" />

<browser:view
for="*"
name="contenthistory"
class=".views.IHContentHistoryView"
layer="imio.history.interfaces.IImioHistoryLayer"
permission="zope.Public"
/>
permission="zope.Public" />

<browser:page
for="OFS.interfaces.IItem"
name="history-version-preview"
class=".views.IHVersionPreviewView"
class=".views.VersionPreviewView"
layer="imio.history.interfaces.IImioHistoryLayer"
template="templates/version_preview.pt"
permission="zope2.View"
/>
permission="zope2.View" />

<browser:page
for="OFS.interfaces.IItem"
name="history-event-preview"
class=".views.EventPreviewView"
layer="imio.history.interfaces.IImioHistoryLayer"
template="templates/event_preview.pt"
permission="zope2.View" />

<browser:viewlet
name="imio.history.documentbyline"
manager="plone.app.layout.viewlets.interfaces.IBelowContentTitle"
class=".views.IHDocumentBylineViewlet"
layer="imio.history.interfaces.IImioHistoryLayer"
permission="zope2.View"
/>
permission="zope2.View" />

</configure>
4 changes: 4 additions & 0 deletions src/imio/history/browser/templates/content_history.pt
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,10 @@
<tal:renderedComments replace="structure python: view.renderComments(event)"/>
</tal:renderComments>
<span tal:condition="not: comments" i18n:translate="no_comments" class="discreet">No comments</span>
<tal:renderEventPreview condition="python: view.show_preview(event)">
<p>&nbsp;</p>
<tal:previewEvent replace="structure python: context.restrictedTraverse('@@history-event-preview')(event)" />
</tal:renderEventPreview>
</td>
<td tal:condition="isDataChange">
<tal:comment replace="nothing">
Expand Down
1 change: 1 addition & 0 deletions src/imio/history/browser/templates/event_preview.pt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
<span class="discreet" i18n:domain="imio.history" i18n:translate="">No preview available.</span>
24 changes: 21 additions & 3 deletions src/imio/history/browser/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,10 @@ def show_history(self):
"""
return True

def show_preview(self, event):
"""When True, a @@history-event-preview view is displayed under the comment."""
return False

def showRevisionInfos(self):
"""Return True if the type of the context is versioned. """
pr = getToolByName(self.context, 'portal_repository')
Expand All @@ -155,16 +159,30 @@ def member(self):
return member


class IHVersionPreviewView(BrowserView):
class VersionPreviewView(BrowserView):
"""Makes it possible to display a preview of a given version."""

def __init__(self, context, request):
""" """
super(IHVersionPreviewView, self).__init__(context, request)
super(VersionPreviewView, self).__init__(context, request)
self.portal = getToolByName(self.context, 'portal_url').getPortalObject()
self.portal_url = self.portal.absolute_url()

def __call__(self, version_id):
pr = getToolByName(self.context, 'portal_repository')
self.versioned_object = pr.retrieve(self.context, version_id).object
return super(IHVersionPreviewView, self).__call__()
return super(VersionPreviewView, self).__call__()


class EventPreviewView(BrowserView):
"""Makes it possible to display a preview of a given event."""

def __init__(self, context, request):
""" """
super(EventPreviewView, self).__init__(context, request)
self.portal = getToolByName(self.context, 'portal_url').getPortalObject()
self.portal_url = self.portal.absolute_url()

def __call__(self, event):
self.event = event
return super(EventPreviewView, self).__call__(event)
19 changes: 9 additions & 10 deletions src/imio/history/testing-adapter.zcml
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,16 @@
xmlns:genericsetup="http://namespaces.zope.org/genericsetup"
i18n_domain="imio.history">

<include package="zope.component" file="meta.zcml" />

<include package="zope.component" file="meta.zcml" />
<adapter for="OFS.interfaces.IItem"
factory=".tests.adapters.TestingImioWfHistoryAdapter"
name="workflow"
provides=".interfaces.IImioWfHistory" />

<adapter for="OFS.interfaces.IItem"
factory=".tests.adapters.TestingImioWfHistoryAdapter"
name="workflow"
provides=".interfaces.IImioWfHistory" />

<adapter for="OFS.interfaces.IItem"
factory=".tests.adapters.TestingImioRevisionHistoryAdapter"
name="revision"
provides=".interfaces.IImioRevisionHistory" />
<adapter for="OFS.interfaces.IItem"
factory=".tests.adapters.TestingImioRevisionHistoryAdapter"
name="revision"
provides=".interfaces.IImioRevisionHistory" />

</configure>
12 changes: 10 additions & 2 deletions src/imio/history/testing.zcml
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
<configure
xmlns="http://namespaces.zope.org/zope"
xmlns:browser="http://namespaces.zope.org/browser"
xmlns:five="http://namespaces.zope.org/five"
xmlns:i18n="http://namespaces.zope.org/i18n"
xmlns:genericsetup="http://namespaces.zope.org/genericsetup"
Expand All @@ -12,7 +13,14 @@
title="imio.history tests"
directory="profiles/testing"
description="Steps to ease tests of imio.history"
provides="Products.GenericSetup.interfaces.EXTENSION"
/>
provides="Products.GenericSetup.interfaces.EXTENSION" />

<browser:view
for="*"
name="contenthistory"
class=".tests.adapters.TestingIHContentHistoryView"
layer="imio.history.interfaces.IImioHistoryLayer"
permission="zope.Public" />


</configure>
8 changes: 8 additions & 0 deletions src/imio/history/tests/adapters.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

from imio.history.adapters import ImioRevisionHistoryAdapter
from imio.history.adapters import ImioWfHistoryAdapter
from imio.history.browser.views import IHContentHistoryView


class TestingImioWfHistoryAdapter(ImioWfHistoryAdapter):
Expand Down Expand Up @@ -33,3 +34,10 @@ def mayViewComment(self, event):
if self.request.get('hide_revisions_comment', False):
return False
return True


class TestingIHContentHistoryView(IHContentHistoryView):

def show_preview(self, event):
""" """
return True
7 changes: 7 additions & 0 deletions src/imio/history/tests/test_contenthistory.py
Original file line number Diff line number Diff line change
Expand Up @@ -200,3 +200,10 @@ def test_renderComments(self):
last_event = view.getHistory()[0]
self.assertEquals(view.renderComments(last_event),
u'<p>Custom comments not translatable.<br />And one additional line.</p>')

def test_contenthistoryWithEventPreview(self):
"""Test the event-preview-view."""
self.wft.doActionFor(self.doc, 'publish', comment='My comment')
view = getMultiAdapter((self.doc, self.portal.REQUEST), name='contenthistory')
# preview is there because we overrided show_preview in adapters.TestingIHContentHistoryView
self.assertTrue("No preview available." in view())

0 comments on commit 2624c07

Please sign in to comment.