diff -r 2b5eeaf6cbbc -r 6cdea4a15bfd src/pyams_content/workflow/zmi/task.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/pyams_content/workflow/zmi/task.py Mon Sep 11 14:43:43 2017 +0200 @@ -0,0 +1,64 @@ +# +# Copyright (c) 2008-2015 Thierry Florac +# All Rights Reserved. +# +# This software is subject to the provisions of the Zope Public License, +# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution. +# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED +# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS +# FOR A PARTICULAR PURPOSE. +# + +__docformat__ = 'restructuredtext' + + +# import standard library + +# import interfaces +from pyams_skin.interfaces.viewlet import IToolbarAddingMenu +from pyams_skin.layer import IPyAMSLayer +from pyams_utils.interfaces import MANAGE_SYSTEM_PERMISSION +from zope.component.interfaces import ISite + +# import packages +from pyams_content.workflow.task import ContentArchiverTask +from pyams_form.form import AJAXAddForm +from pyams_pagelet.pagelet import pagelet_config +from pyams_scheduler.zmi.scheduler import SchedulerTasksTable +from pyams_scheduler.zmi.task import TaskBaseAddForm +from pyams_skin.viewlet.toolbar import ToolbarMenuItem +from pyams_viewlet.viewlet import viewlet_config +from pyramid.view import view_config + +from pyams_content import _ + + +@viewlet_config(name='add-content-archiver-task.menu', context=ISite, layer=IPyAMSLayer, + view=SchedulerTasksTable, manager=IToolbarAddingMenu, + permission=MANAGE_SYSTEM_PERMISSION, weight=100) +class ContentArchiverTaskAddMenu(ToolbarMenuItem): + """Content archiver task add menu""" + + label = _("Add content archiver task...") + label_css_class = 'fa fa-fw fa-archive' + url = 'add-content-archiver-task.html' + modal_target = True + + +@pagelet_config(name='add-content-archiver-task.html', context=ISite, layer=IPyAMSLayer, + permission=MANAGE_SYSTEM_PERMISSION) +class ContentArchiverTaskAddForm(TaskBaseAddForm): + """Content archiver task add form""" + + legend = _("Add automatic content archiver") + icon_css_class = 'fa fa-fw fa-archive' + + ajax_handler = 'add-content-archiver-task.json' + task_factory = ContentArchiverTask + + +@view_config(name='add-content-archiver-task.json', context=ISite, request_type=IPyAMSLayer, + permission=MANAGE_SYSTEM_PERMISSION, renderer='json', xhr=True) +class ContentArchiverTaskAJAXAddForm(AJAXAddForm, ContentArchiverTaskAddForm): + """Content archiver task add form, JSON renderer"""