--- a/src/pyams_content/shared/common/zmi/workflow.py Wed Jun 06 13:32:14 2018 +0200
+++ b/src/pyams_content/shared/common/zmi/workflow.py Fri Jun 08 10:33:23 2018 +0200
@@ -36,7 +36,7 @@
# import packages
from pyams_content.workflow import DRAFT, DELETED
-from pyams_form.form import AJAXAddForm
+from pyams_form.form import AJAXAddForm, ajax_config
from pyams_form.schema import CloseButton
from pyams_pagelet.pagelet import pagelet_config
from pyams_template.template import template_config
@@ -128,6 +128,8 @@
@pagelet_config(name='wf-propose.html', context=IWfSharedContent, layer=IPyAMSLayer,
permission=MANAGE_CONTENT_PERMISSION)
+@ajax_config(name='wf-propose.json', context=IWfSharedContent, layer=IPyAMSLayer,
+ permission=MANAGE_CONTENT_PERMISSION, base=WorkflowContentTransitionAJAXForm)
class PublicationRequestForm(WorkflowContentTransitionForm):
"""Shared content publication request form"""
@@ -146,7 +148,6 @@
field.Fields(IWorkflowCommentInfo)
buttons = button.Buttons(IPublicationRequestButtons)
- ajax_handler = 'wf-propose.json'
def updateWidgets(self, prefix=None):
super(PublicationRequestForm, self).updateWidgets(prefix)
@@ -174,12 +175,6 @@
return super(PublicationRequestForm, self).createAndAdd(data)
-@view_config(name='wf-propose.json', context=IWfSharedContent, request_type=IPyAMSLayer,
- permission=MANAGE_CONTENT_PERMISSION, renderer='json', xhr=True)
-class PublicationRequestAJAXForm(WorkflowContentTransitionAJAXForm, PublicationRequestForm):
- """Shared content publication request form, JSON renderer"""
-
-
@subscriber(IDataExtractedEvent, form_selector=PublicationRequestForm)
def handle_publication_request_form_data_extraction(event):
"""Handle publication request form data extraction"""
@@ -220,17 +215,12 @@
@pagelet_config(name='wf-cancel-propose.html', context=IWfSharedContent, layer=IPyAMSLayer,
permission=MANAGE_CONTENT_PERMISSION)
+@ajax_config(name='wf-cancel-propose.json', context=IWfSharedContent, layer=IPyAMSLayer,
+ permission=MANAGE_CONTENT_PERMISSION, base=WorkflowContentTransitionAJAXForm)
class PublicationRequestCancelForm(WorkflowContentTransitionForm):
"""Shared content publication request cancel form"""
buttons = button.Buttons(IPublicationRequestCancelButtons)
- ajax_handler = 'wf-cancel-propose.json'
-
-
-@view_config(name='wf-cancel-propose.json', context=IWfSharedContent, request_type=IPyAMSLayer,
- permission=MANAGE_CONTENT_PERMISSION, renderer='json', xhr=True)
-class PublicationRequestCancelAJAXForm(WorkflowContentTransitionAJAXForm, PublicationRequestCancelForm):
- """Shared content publication request cancel form, JSON renderer"""
@viewlet_config(name='wf-cancel-propose-message', context=IWfSharedContent, layer=IPyAMSLayer,
@@ -265,11 +255,12 @@
@pagelet_config(name='wf-refuse.html', context=IWfSharedContent, layer=IPyAMSLayer,
permission=PUBLISH_CONTENT_PERMISSION)
+@ajax_config(name='wf-refuse.json', context=IWfSharedContent, layer=IPyAMSLayer,
+ permission=PUBLISH_CONTENT_PERMISSION, base=WorkflowContentTransitionAJAXForm)
class PublicationRequestRefuseForm(WorkflowContentTransitionForm):
"""Shared content publication request refuse form"""
buttons = button.Buttons(IPublicationRequestRefuseButtons)
- ajax_handler = 'wf-refuse.json'
def updateWidgets(self, prefix=None):
super(PublicationRequestRefuseForm, self).updateWidgets(prefix)
@@ -277,12 +268,6 @@
self.widgets['comment'].required = True
-@view_config(name='wf-refuse.json', context=IWfSharedContent, request_type=IPyAMSLayer,
- permission=PUBLISH_CONTENT_PERMISSION, renderer='json', xhr=True)
-class PublicationRequestRefuseAJAXForm(WorkflowContentTransitionAJAXForm, PublicationRequestRefuseForm):
- """Shared content publication request refuse form, JSON renderer"""
-
-
@subscriber(IDataExtractedEvent, form_selector=PublicationRequestRefuseForm)
def handle_publication_request_refuse_form_data_extraction(event):
"""Handle publication request refuse form data extraction"""
@@ -324,6 +309,8 @@
@pagelet_config(name='wf-publish.html', context=IWfSharedContent, layer=IPyAMSLayer,
permission=PUBLISH_CONTENT_PERMISSION)
+@ajax_config(name='wf-publish.json', context=IWfSharedContent, layer=IPyAMSLayer,
+ permission=PUBLISH_CONTENT_PERMISSION, base=WorkflowContentTransitionAJAXForm)
class PublicationForm(WorkflowContentTransitionForm):
"""Shared content publication form"""
@@ -341,7 +328,6 @@
field.Fields(IWorkflowCommentInfo)
buttons = button.Buttons(IPublicationButtons)
- ajax_handler = 'wf-publish.json'
def updateWidgets(self, prefix=None):
super(PublicationForm, self).updateWidgets(prefix)
@@ -371,12 +357,6 @@
return super(PublicationForm, self).createAndAdd(data)
-@view_config(name='wf-publish.json', context=IWfSharedContent, request_type=IPyAMSLayer,
- permission=PUBLISH_CONTENT_PERMISSION, renderer='json', xhr=True)
-class PublicationAJAXForm(WorkflowContentTransitionAJAXForm, PublicationForm):
- """Shared content publication form, JSON renderer"""
-
-
@subscriber(IDataExtractedEvent, form_selector=PublicationForm)
def handle_publication_form_data_extraction(event):
"""Handle publication form data extraction"""
@@ -418,6 +398,8 @@
@pagelet_config(name='wf-retiring.html', context=IWfSharedContent, layer=IPyAMSLayer,
permission=MANAGE_CONTENT_PERMISSION)
+@ajax_config(name='wf-retiring.json', context=IWfSharedContent, layer=IPyAMSLayer,
+ permission=MANAGE_CONTENT_PERMISSION, base=WorkflowContentTransitionAJAXForm)
class PublicationRetireRequestForm(WorkflowContentTransitionForm):
"""Shared content publication request refuse form"""
@@ -425,7 +407,6 @@
field.Fields(IWorkflowRequestUrgencyInfo) + \
field.Fields(IWorkflowCommentInfo)
buttons = button.Buttons(IPublicationRetireRequestButtons)
- ajax_handler = 'wf-retiring.json'
def updateWidgets(self, prefix=None):
super(PublicationRetireRequestForm, self).updateWidgets(prefix)
@@ -433,12 +414,6 @@
self.widgets['comment'].required = True
-@view_config(name='wf-retiring.json', context=IWfSharedContent, request_type=IPyAMSLayer,
- permission=MANAGE_CONTENT_PERMISSION, renderer='json', xhr=True)
-class PublicationRetireRequestAJAXForm(WorkflowContentTransitionAJAXForm, PublicationRetireRequestForm):
- """Shared content publication retire request form, JSON renderer"""
-
-
@subscriber(IDataExtractedEvent, form_selector=PublicationRetireRequestForm)
def handle_publication_retire_request_form_data_extraction(event):
"""Handle publication retire request form data extraction"""
@@ -479,17 +454,12 @@
@pagelet_config(name='wf-cancel-retiring.html', context=IWfSharedContent, layer=IPyAMSLayer,
permission=MANAGE_CONTENT_PERMISSION)
+@ajax_config(name='wf-cancel-retiring.json', context=IWfSharedContent, layer=IPyAMSLayer,
+ permission=MANAGE_CONTENT_PERMISSION, base=WorkflowContentTransitionAJAXForm)
class PublicationRetireCancelForm(WorkflowContentTransitionForm):
"""Shared content publication retire request cancel form"""
buttons = button.Buttons(IPublicationRetireCancelButtons)
- ajax_handler = 'wf-cancel-retiring.json'
-
-
-@view_config(name='wf-cancel-retiring.json', context=IWfSharedContent, request_type=IPyAMSLayer,
- permission=MANAGE_CONTENT_PERMISSION, renderer='json', xhr=True)
-class PublicationRetireCancelAJAXForm(WorkflowContentTransitionAJAXForm, PublicationRetireCancelForm):
- """Shared content publication retire request cancel form, JSON renderer"""
@viewlet_config(name='wf-cancel-retiring-message', context=IWfSharedContent, layer=IPyAMSLayer,
@@ -524,17 +494,12 @@
@pagelet_config(name='wf-retire.html', context=IWfSharedContent, layer=IPyAMSLayer,
permission=PUBLISH_CONTENT_PERMISSION)
+@ajax_config(name='wf-retire.json', context=IWfSharedContent, layer=IPyAMSLayer,
+ permission=PUBLISH_CONTENT_PERMISSION, base=WorkflowContentTransitionAJAXForm)
class PublicationRetireForm(WorkflowContentTransitionForm):
"""Shared content publication retire form"""
buttons = button.Buttons(IPublicationRetireButtons)
- ajax_handler = 'wf-retire.json'
-
-
-@view_config(name='wf-retire.json', context=IWfSharedContent, request_type=IPyAMSLayer,
- permission=PUBLISH_CONTENT_PERMISSION, renderer='json', xhr=True)
-class PublicationRetireAJAXForm(WorkflowContentTransitionAJAXForm, PublicationRetireForm):
- """Shared content publication retire form, JSON renderer"""
@viewlet_config(name='wf-retire-message', context=IWfSharedContent, layer=IPyAMSLayer,
@@ -570,6 +535,8 @@
@pagelet_config(name='wf-archiving.html', context=IWfSharedContent, layer=IPyAMSLayer,
permission=MANAGE_CONTENT_PERMISSION)
+@ajax_config(name='wf-archiving.json', context=IWfSharedContent, layer=IPyAMSLayer,
+ permission=MANAGE_CONTENT_PERMISSION, base=WorkflowContentTransitionAJAXForm)
class PublicationArchiveRequestForm(WorkflowContentTransitionForm):
"""Shared content publication request archive form"""
@@ -577,13 +544,6 @@
field.Fields(IWorkflowRequestUrgencyInfo) + \
field.Fields(IWorkflowCommentInfo)
buttons = button.Buttons(IPublicationArchiveRequestButtons)
- ajax_handler = 'wf-archiving.json'
-
-
-@view_config(name='wf-archiving.json', context=IWfSharedContent, request_type=IPyAMSLayer,
- permission=MANAGE_CONTENT_PERMISSION, renderer='json', xhr=True)
-class PublicationArchiveRequestAJAXForm(WorkflowContentTransitionAJAXForm, PublicationArchiveRequestForm):
- """Shared content publication archive request form, JSON renderer"""
@viewlet_config(name='wf-archiving-message', context=IWfSharedContent, layer=IPyAMSLayer,
@@ -618,17 +578,12 @@
@pagelet_config(name='wf-cancel-archiving.html', context=IWfSharedContent, layer=IPyAMSLayer,
permission=MANAGE_CONTENT_PERMISSION)
+@ajax_config(name='wf-cancel-archiving.json', context=IWfSharedContent, layer=IPyAMSLayer,
+ permission=MANAGE_CONTENT_PERMISSION, base=WorkflowContentTransitionAJAXForm)
class PublicationArchiveCancelForm(WorkflowContentTransitionForm):
"""Shared content publication archive request cancel form"""
buttons = button.Buttons(IPublicationArchiveCancelButtons)
- ajax_handler = 'wf-cancel-archiving.json'
-
-
-@view_config(name='wf-cancel-archiving.json', context=IWfSharedContent, request_type=IPyAMSLayer,
- permission=MANAGE_CONTENT_PERMISSION, renderer='json', xhr=True)
-class PublicationArchiveCancelAJAXForm(WorkflowContentTransitionAJAXForm, PublicationArchiveCancelForm):
- """Shared content publication archive request cancel form, JSON renderer"""
@viewlet_config(name='wf-cancel-archiving-message', context=IWfSharedContent, layer=IPyAMSLayer,
@@ -663,17 +618,12 @@
@pagelet_config(name='wf-archive.html', context=IWfSharedContent, layer=IPyAMSLayer,
permission=PUBLISH_CONTENT_PERMISSION)
+@ajax_config(name='wf-archive.json', context=IWfSharedContent, layer=IPyAMSLayer,
+ permission=PUBLISH_CONTENT_PERMISSION, base=WorkflowContentTransitionAJAXForm)
class PublicationArchiveForm(WorkflowContentTransitionForm):
"""Shared content publication archive form"""
buttons = button.Buttons(IPublicationArchiveButtons)
- ajax_handler = 'wf-archive.json'
-
-
-@view_config(name='wf-archive.json', context=IWfSharedContent, request_type=IPyAMSLayer,
- permission=PUBLISH_CONTENT_PERMISSION, renderer='json', xhr=True)
-class PublicationArchiveAJAXForm(WorkflowContentTransitionAJAXForm, PublicationArchiveForm):
- """Shared content publication archive form, JSON renderer"""
@viewlet_config(name='wf-archive-message', context=IWfSharedContent, layer=IPyAMSLayer,
@@ -709,23 +659,18 @@
@pagelet_config(name='wf-clone.html', context=IWfSharedContent, layer=IPyAMSLayer,
permission=CREATE_CONTENT_PERMISSION)
+@ajax_config(name='wf-clone.json', context=IWfSharedContent, layer=IPyAMSLayer,
+ permission=CREATE_CONTENT_PERMISSION, base=AJAXAddForm)
class SharedContentCloneForm(WorkflowContentTransitionForm):
"""Shared content clone form"""
buttons = button.Buttons(ISharedContentCloneButtons)
- ajax_handler = 'wf-clone.json'
def createAndAdd(self, data):
data = data.get(self, data)
info = IWorkflowInfo(self.context)
return info.fire_transition_toward(DRAFT, comment=data.get('comment'))
-
-@view_config(name='wf-clone.json', context=IWfSharedContent, request_type=IPyAMSLayer,
- permission=CREATE_CONTENT_PERMISSION, renderer='json', xhr=True)
-class SharedContentCloneAJAXForm(AJAXAddForm, SharedContentCloneForm):
- """Shared content clone form, JSON rendener"""
-
def get_ajax_output(self, changes):
return {
'status': 'redirect',
@@ -765,11 +710,12 @@
@pagelet_config(name='wf-delete.html', context=IWfSharedContent, layer=IPyAMSLayer,
permission=MANAGE_CONTENT_PERMISSION)
+@ajax_config(name='wf-delete.json', context=IWfSharedContent, layer=IPyAMSLayer,
+ permission=MANAGE_CONTENT_PERMISSION, base=WorkflowContentTransitionAJAXForm)
class SharedContentDeleteForm(WorkflowContentTransitionForm):
"""Shared content delete form"""
buttons = button.Buttons(ISharedContentDeleteButtons)
- ajax_handler = 'wf-delete.json'
@property
def fields(self):
@@ -806,16 +752,10 @@
versions.remove_version(state.version_id, state=DELETED, comment=data.get('comment'))
self.__target = versions.get_last_versions(count=1)[0]
-
-@view_config(name='wf-delete.json', context=IWfSharedContent, request_type=IPyAMSLayer,
- permission=MANAGE_CONTENT_PERMISSION, renderer='json', xhr=True)
-class SharedContentDeleteAJAXForm(AJAXAddForm, SharedContentDeleteForm):
- """Shared content delete form, JSON rendener"""
-
def get_ajax_output(self, changes):
return {
'status': 'redirect',
- 'location': absolute_url(self._SharedContentDeleteForm__target, self.request, 'admin')
+ 'location': absolute_url(self.__target, self.request, 'admin')
}