src/pyams_scheduler/zmi/task.py
changeset 64 e9e71b24f431
parent 36 42761bc38f66
equal deleted inserted replaced
63:a72adec69419 64:e9e71b24f431
    96 
    96 
    97 @pagelet_config(name='properties.html', context=ITask, layer=IPyAMSLayer, permission=MANAGE_SYSTEM_PERMISSION)
    97 @pagelet_config(name='properties.html', context=ITask, layer=IPyAMSLayer, permission=MANAGE_SYSTEM_PERMISSION)
    98 class TaskPropertiesEditForm(AdminDialogEditForm):
    98 class TaskPropertiesEditForm(AdminDialogEditForm):
    99     """Scheduler task properties edit form"""
    99     """Scheduler task properties edit form"""
   100 
   100 
       
   101     prefix = 'task_properties.'
       
   102 
   101     @property
   103     @property
   102     def title(self):
   104     def title(self):
   103         translate = self.request.localizer.translate
   105         translate = self.request.localizer.translate
   104         return translate(_("Scheduler task: {0}")).format(self.context.name)
   106         return translate(_("Scheduler task: {0}")).format(self.context.name)
   105 
   107 
   123     """Scheduler task properties edit form, AJAX view"""
   125     """Scheduler task properties edit form, AJAX view"""
   124 
   126 
   125 
   127 
   126 class TaskScheduleEditForm(AdminDialogEditForm):
   128 class TaskScheduleEditForm(AdminDialogEditForm):
   127     """Scheduler task base schedule edit form"""
   129     """Scheduler task base schedule edit form"""
       
   130 
       
   131     prefix = 'task_schedule.'
   128 
   132 
   129     @property
   133     @property
   130     def title(self):
   134     def title(self):
   131         translate = self.request.localizer.translate
   135         translate = self.request.localizer.translate
   132         return translate(_("Scheduler task: {0}")).format(self.context.name)
   136         return translate(_("Scheduler task: {0}")).format(self.context.name)
   204 
   208 
   205 
   209 
   206 @pagelet_config(name='run.html', context=ITask, layer=IPyAMSLayer, permission=MANAGE_SYSTEM_PERMISSION)
   210 @pagelet_config(name='run.html', context=ITask, layer=IPyAMSLayer, permission=MANAGE_SYSTEM_PERMISSION)
   207 class TaskRunForm(AdminDialogEditForm):
   211 class TaskRunForm(AdminDialogEditForm):
   208     """Task runner form"""
   212     """Task runner form"""
       
   213 
       
   214     prefix = 'task_run.'
   209 
   215 
   210     @property
   216     @property
   211     def title(self):
   217     def title(self):
   212         translate = self.request.localizer.translate
   218         translate = self.request.localizer.translate
   213         return translate(_("Scheduler task: {0}")).format(self.context.name)
   219         return translate(_("Scheduler task: {0}")).format(self.context.name)
   242     """Task runner form, AJAX view"""
   248     """Task runner form, AJAX view"""
   243 
   249 
   244     def get_ajax_output(self, changes):
   250     def get_ajax_output(self, changes):
   245         translate = self.request.localizer.translate
   251         translate = self.request.localizer.translate
   246         if self.actions['execute'].name in self.request.params:
   252         if self.actions['execute'].name in self.request.params:
   247             return {'status': 'success',
   253             return {
   248                     'message': translate(_('Task scheduled in normal mode will start in 5 seconds...'))}
   254                 'status': 'success',
       
   255                 'message': translate(_('Task scheduled in normal mode will start in 5 seconds...'))
       
   256             }
   249         else:
   257         else:
   250             return {'status': 'message',
   258             return {
   251                     'content': {'raw': True,
   259                 'status': 'message',
   252                                 'text': changes,
   260                 'content': {
   253                                 'target': '#task-debug-report'},
   261                     'raw': True,
   254                     'message': translate(_('Task run in debug mode. Please check your console...')),
   262                     'text': changes,
   255                     'close_form': False}
   263                     'target': '#task-debug-report'
       
   264                 },
       
   265                 'message': translate(_('Task run in debug mode. Please check your console...')),
       
   266                 'close_form': False
       
   267             }
   256 
   268 
   257 
   269 
   258 @adapter_config(context=(ITask, IAdminLayer, TaskRunForm), provides=IFormHelp)
   270 @adapter_config(context=(ITask, IAdminLayer, TaskRunForm), provides=IFormHelp)
   259 class TaskRunFormHelpAdapter(FormHelp):
   271 class TaskRunFormHelpAdapter(FormHelp):
   260     """Task run form help adapter"""
   272     """Task run form help adapter"""
   308     cssClasses = {'table': 'table table-bordered table-striped table-hover table-tight datatable'}
   320     cssClasses = {'table': 'table table-bordered table-striped table-hover table-tight datatable'}
   309     sortOn = None
   321     sortOn = None
   310 
   322 
   311     @property
   323     @property
   312     def data_attributes(self):
   324     def data_attributes(self):
   313         return {'table': {'data-ams-datatable-global-filter': 'false',
   325         return {
   314                           'data-ams-datatable-info': 'false',
   326             'table': {
   315                           'data-ams-datatable-sort': 'false',
   327                 'data-ams-datatable-global-filter': 'false',
   316                           'data-ams-datatable-sdom': "t<'dt-row dt-bottom-row'<'text-right'p>>",
   328                 'data-ams-datatable-info': 'false',
   317                           'data-ams-datatable-display-length': '20',
   329                 'data-ams-datatable-sort': 'false',
   318                           'data-ams-datatable-pagination-type': 'bootstrap_prevnext'},
   330                 'data-ams-datatable-sdom': "t<'dt-row dt-bottom-row'<'text-right'p>>",
   319                 'tr': {'data-ams-url': lambda x, col: absolute_url(x, self.request, 'info.json'),
   331                 'data-ams-datatable-display-length': '20',
   320                        'data-ams-target': '#task-history-report'}}
   332                 'data-ams-datatable-pagination-type': 'bootstrap_prevnext'},
       
   333             'tr': {
       
   334                 'data-ams-url': lambda x, col: absolute_url(x, self.request, 'info.json'),
       
   335                 'data-ams-target': '#task-history-report'
       
   336             }
       
   337         }
   321 
   338 
   322     def getCSSHighlightClass(self, column, item, cssClass):
   339     def getCSSHighlightClass(self, column, item, cssClass):
   323         return STATUS_CLASS[item.status]
   340         return STATUS_CLASS[item.status]
   324 
   341 
   325 
   342 
   363 
   380 
   364 
   381 
   365 @view_config(name='info.json', context=ITaskHistory, request_type=IPyAMSLayer,
   382 @view_config(name='info.json', context=ITaskHistory, request_type=IPyAMSLayer,
   366              permission=MANAGE_SYSTEM_PERMISSION, renderer='json', xhr=True)
   383              permission=MANAGE_SYSTEM_PERMISSION, renderer='json', xhr=True)
   367 def TaskHistoryInfoView(request):
   384 def TaskHistoryInfoView(request):
   368     return {'status': 'success',
   385     return {
   369             'close_form': False,
   386         'status': 'success',
   370             'content': {'raw': True,
   387         'close_form': False,
   371                         'text': request.context.report,
   388         'content': {
   372                         'target': '#task-history-report'}}
   389             'raw': True,
       
   390             'text': request.context.report,
       
   391             'target': '#task-history-report'
       
   392         }
       
   393     }