Skip to content

Commit

Permalink
Moved revertversion from skin to a browser view.
Browse files Browse the repository at this point in the history
  • Loading branch information
mauritsvanrees committed Dec 21, 2021
1 parent 5164a8b commit a4432c6
Show file tree
Hide file tree
Showing 4 changed files with 61 additions and 47 deletions.
7 changes: 7 additions & 0 deletions Products/CMFEditions/browser/configure.zcml
Original file line number Diff line number Diff line change
Expand Up @@ -69,5 +69,12 @@
permission="zope2.View"
/>

<browser:page
for="*"
name="revertversion"
class=".policies.RevertVersion"
permission="zope2.View"
/>

</configure>

54 changes: 53 additions & 1 deletion Products/CMFEditions/browser/policies.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
from Products.CMFCore.utils import getToolByName
from Products.CMFEditions import CMFEditionsMessageFactory as _
from Products.CMFEditions.interfaces.IModifier import FileTooLargeToVersionError
from Products.Five import BrowserView
from Products.statusmessages.interfaces import IStatusMessage
from zope.i18n import translate


class SaveAsNewVersion(BrowserView):
Expand All @@ -14,4 +18,52 @@ def __call__(self):
versioncomment = self.request.get("versioncomment")
# Note: the save method explicitly checks a permission.
pr.save(obj=self.context, comment=versioncomment)
self.request.RESPONSE.redirect("versions_history_form")
self.request.response.redirect("versions_history_form")


class RevertVersion(BrowserView):
"""Revert version
Originally a Script (Python): revertversion
"""

def __call__(self):
version_id = self.request.get("version_id")
pr = getToolByName(self.context, "portal_repository")
pr.revert(self.context, version_id)

obj_type_view_url = self.context.getTypeInfo().getActionInfo("object/view")[
"url"
]
if obj_type_view_url != "/":
view_url = "%s/%s" % (self.context.absolute_url(), obj_type_view_url)
else:
view_url = self.context.absolute_url()

if pr.supportsPolicy(self.context, "version_on_revert"):
try:
commit_msg = translate(
_(
u"Reverted to revision ${version}",
mapping={"version": version_id},
),
context=self.request,
)
pr.save(obj=self.context, comment=commit_msg)
except FileTooLargeToVersionError:
IStatusMessage(self.request).addStatusMessage(
_(
"The most current revision of the file could not be "
"saved before reverting because the file is too large."
),
"warning",
)

title = self.context.title_or_id()
msg = _(
"${title} has been reverted to revision ${version}.",
mapping={"title": title, "version": version_id},
)
IStatusMessage(self.request).addStatusMessage(msg, "info")

return self.request.response.redirect(view_url)
45 changes: 0 additions & 45 deletions Products/CMFEditions/skins/CMFEditions/revertversion.py

This file was deleted.

2 changes: 1 addition & 1 deletion news/71.feature.1
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
Moved ``saveasnewversion`` from skin to a browser view.
Moved ``saveasnewversion`` and ``revertversion`` from skin to a browser view.
[maurits]

0 comments on commit a4432c6

Please sign in to comment.