src/pyams_scheduler/zmi/scheduler.py
changeset 64 e9e71b24f431
parent 58 7f1f4243b5b8
--- 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
+            }