--- a/src/pyams_scheduler/zmi/scheduler.py Wed Mar 28 16:02:34 2018 +0200
+++ b/src/pyams_scheduler/zmi/scheduler.py Wed Apr 11 11:37:21 2018 +0200
@@ -37,7 +37,7 @@
from pyams_form.form import AJAXEditForm, AJAXAddForm
from pyams_form.schema import CloseButton
from pyams_pagelet.pagelet import pagelet_config
-from pyams_skin.container import ContainerView
+from pyams_skin.container import ContainerView, delete_container_element
from pyams_skin.page import DefaultPageHeaderAdapter
from pyams_skin.table import DefaultElementEditorAdapter, BaseTable, I18nColumn, TrashColumn, ActionColumn, TableViewlet
from pyams_skin.viewlet.menu import MenuItem
@@ -99,12 +99,9 @@
def data_attributes(self):
manager = query_utility(IScheduler)
attributes = super(SchedulerTasksTable, self).data_attributes
- table_attrs = {'data-ams-location': absolute_url(manager, self.request),
- 'data-ams-delete-target': 'delete-task.json'}
- if 'table' in attributes:
- attributes['table'].update(table_attrs)
- else:
- attributes['table'] = table_attrs
+ attributes.setdefault('table', {}).update({
+ 'data-ams-location': absolute_url(manager, self.request)
+ })
return attributes
def getCSSHighlightClass(self, column, item, cssClass):
@@ -198,22 +195,11 @@
permission = MANAGE_SYSTEM_PERMISSION
-@view_config(name='delete-task.json', context=IScheduler, request_type=IPyAMSLayer,
+@view_config(name='delete-element.json', context=IScheduler, request_type=IPyAMSLayer,
permission=MANAGE_SYSTEM_PERMISSION, renderer='json', xhr=True)
def delete_scheduler_task(request):
"""Delete task from scheduler utility"""
- translate = request.localizer.translate
- name = request.params.get('object_name')
- if not name:
- return {'status': 'message',
- 'messagebox': {'status': 'error',
- 'content': translate(_("No provided object_name argument!"))}}
- if name not in request.context:
- return {'status': 'message',
- 'messagebox': {'status': 'error',
- 'content': translate(_("Given task name doesn't exist!"))}}
- del request.context[name]
- return {'status': 'success'}
+ return delete_container_element(request, ignore_permission=True)
@adapter_config(context=(ISite, IAdminLayer, SchedulerTasksTable), provides=IValues)
@@ -265,6 +251,8 @@
class SchedulerPropertiesEditForm(AdminDialogEditForm):
"""Scheduler properties edit form"""
+ prefix = 'scheduler_properties.'
+
@property
def title(self):
return self.context.__name__
@@ -319,11 +307,15 @@
@property
def data_attributes(self):
- return {'table': {'data-ams-datatable-global-filter': 'false',
- 'data-ams-datatable-info': 'false',
- 'data-ams-datatable-sdom': "t<'dt-row dt-bottom-row'<'text-right'p>>",
- 'data-ams-datatable-display-length': '20',
- 'data-ams-datatable-pagination-type': 'bootstrap_prevnext'}}
+ return {
+ 'table': {
+ 'data-ams-datatable-global-filter': 'false',
+ 'data-ams-datatable-info': 'false',
+ 'data-ams-datatable-sdom': "t<'dt-row dt-bottom-row'<'text-right'p>>",
+ 'data-ams-datatable-display-length': '20',
+ 'data-ams-datatable-pagination-type': 'bootstrap_prevnext'
+ }
+ }
@adapter_config(name='name', context=(Interface, IAdminLayer, SchedulerJobsTable), provides=IColumn)
@@ -456,10 +448,18 @@
def get_ajax_output(self, changes):
status, message = changes
if status == 200:
- return {'status': 'success',
- 'content': {'html': text_to_html(message)},
- 'close_form': False}
+ return {
+ 'status': 'success',
+ 'content': {
+ 'html': text_to_html(message)
+ },
+ 'close_form': False
+ }
else:
- return {'status': 'info',
- 'content': {'html': text_to_html(message)},
- 'close_form': False}
+ return {
+ 'status': 'info',
+ 'content': {
+ 'html': text_to_html(message)
+ },
+ 'close_form': False
+ }