src/pyams_scheduler/zmi/task.py
changeset 36 42761bc38f66
parent 22 b1a1ccc1fa26
child 64 e9e71b24f431
equal deleted inserted replaced
35:d7024f05f72d 36:42761bc38f66
    18 # import interfaces
    18 # import interfaces
    19 from pyams_form.interfaces.form import IWidgetsSuffixViewletsManager, IWidgetsPrefixViewletsManager, IFormHelp
    19 from pyams_form.interfaces.form import IWidgetsSuffixViewletsManager, IWidgetsPrefixViewletsManager, IFormHelp
    20 from pyams_scheduler.interfaces import ITaskInfo, IScheduler, ITask, ICronTask, ICronTaskScheduling, IDateTask, \
    20 from pyams_scheduler.interfaces import ITaskInfo, IScheduler, ITask, ICronTask, ICronTaskScheduling, IDateTask, \
    21     IDateTaskScheduling, ILoopTask, ILoopTaskScheduling, ITaskHistory, IBaseTaskScheduling
    21     IDateTaskScheduling, ILoopTask, ILoopTaskScheduling, ITaskHistory, IBaseTaskScheduling
    22 from pyams_skin.layer import IPyAMSLayer
    22 from pyams_skin.layer import IPyAMSLayer
    23 from pyams_utils.interfaces import VIEW_SYSTEM_PERMISSION, MANAGE_SYSTEM_PERMISSION
    23 from pyams_utils.interfaces import MANAGE_SYSTEM_PERMISSION
    24 from pyams_zmi.layer import IAdminLayer
    24 from pyams_zmi.layer import IAdminLayer
    25 from z3c.form.interfaces import IDataExtractedEvent, DISPLAY_MODE
    25 from z3c.form.interfaces import IDataExtractedEvent, DISPLAY_MODE
    26 from z3c.table.interfaces import IValues, IColumn
    26 from z3c.table.interfaces import IValues, IColumn
    27 from zope.traversing.interfaces import ITraversable
    27 from zope.traversing.interfaces import ITraversable
    28 
    28 
    92     name = event.data.get('name')
    92     name = event.data.get('name')
    93     if name.lower() in manager:
    93     if name.lower() in manager:
    94         event.form.widgets.errors += (Invalid(_("Specified task name is already used!")),)
    94         event.form.widgets.errors += (Invalid(_("Specified task name is already used!")),)
    95 
    95 
    96 
    96 
    97 @pagelet_config(name='properties.html', context=ITask, layer=IPyAMSLayer, permission=VIEW_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     @property
   101     @property
   102     def title(self):
   102     def title(self):
   154             return {'status': 'reload'}
   154             return {'status': 'reload'}
   155         else:
   155         else:
   156             return super(TaskSchedulerAJAXEditForm, self).get_ajax_output(changes)
   156             return super(TaskSchedulerAJAXEditForm, self).get_ajax_output(changes)
   157 
   157 
   158 
   158 
   159 @pagelet_config(name='schedule.html', context=ICronTask, layer=IPyAMSLayer, permission=VIEW_SYSTEM_PERMISSION)
   159 @pagelet_config(name='schedule.html', context=ICronTask, layer=IPyAMSLayer, permission=MANAGE_SYSTEM_PERMISSION)
   160 class CronTaskScheduleEditForm(TaskScheduleEditForm):
   160 class CronTaskScheduleEditForm(TaskScheduleEditForm):
   161     """Cron-style task schedule edit form"""
   161     """Cron-style task schedule edit form"""
   162 
   162 
   163     fields = field.Fields(ICronTaskScheduling)
   163     fields = field.Fields(ICronTaskScheduling)
   164 
   164 
   167              permission=MANAGE_SYSTEM_PERMISSION, renderer='json', xhr=True)
   167              permission=MANAGE_SYSTEM_PERMISSION, renderer='json', xhr=True)
   168 class CronTaskScheduleAJAXEditForm(TaskSchedulerAJAXEditForm, CronTaskScheduleEditForm):
   168 class CronTaskScheduleAJAXEditForm(TaskSchedulerAJAXEditForm, CronTaskScheduleEditForm):
   169     """Cron-style task schedule edit form, AJAX view"""
   169     """Cron-style task schedule edit form, AJAX view"""
   170 
   170 
   171 
   171 
   172 @pagelet_config(name='schedule.html', context=IDateTask, layer=IPyAMSLayer, permission=VIEW_SYSTEM_PERMISSION)
   172 @pagelet_config(name='schedule.html', context=IDateTask, layer=IPyAMSLayer, permission=MANAGE_SYSTEM_PERMISSION)
   173 class DateTaskScheduleEditForm(TaskScheduleEditForm):
   173 class DateTaskScheduleEditForm(TaskScheduleEditForm):
   174     """Date-style task schedule edit form"""
   174     """Date-style task schedule edit form"""
   175 
   175 
   176     fields = field.Fields(IDateTaskScheduling)
   176     fields = field.Fields(IDateTaskScheduling)
   177 
   177 
   180              permission=MANAGE_SYSTEM_PERMISSION, renderer='json', xhr=True)
   180              permission=MANAGE_SYSTEM_PERMISSION, renderer='json', xhr=True)
   181 class DateTaskScheduleAJAXEditForm(TaskSchedulerAJAXEditForm, DateTaskScheduleEditForm):
   181 class DateTaskScheduleAJAXEditForm(TaskSchedulerAJAXEditForm, DateTaskScheduleEditForm):
   182     """Date-style task schedule edit form, AJAX view"""
   182     """Date-style task schedule edit form, AJAX view"""
   183 
   183 
   184 
   184 
   185 @pagelet_config(name='schedule.html', context=ILoopTask, layer=IPyAMSLayer, permission=VIEW_SYSTEM_PERMISSION)
   185 @pagelet_config(name='schedule.html', context=ILoopTask, layer=IPyAMSLayer, permission=MANAGE_SYSTEM_PERMISSION)
   186 class LoopTaskScheduleEditForm(TaskScheduleEditForm):
   186 class LoopTaskScheduleEditForm(TaskScheduleEditForm):
   187     """Loop-style task schedule edit form"""
   187     """Loop-style task schedule edit form"""
   188 
   188 
   189     fields = field.Fields(ILoopTaskScheduling)
   189     fields = field.Fields(ILoopTaskScheduling)
   190 
   190 
   277 @template_config(template='templates/task-debug-report.pt')
   277 @template_config(template='templates/task-debug-report.pt')
   278 class TaskDebugReportViewlet(Viewlet):
   278 class TaskDebugReportViewlet(Viewlet):
   279     """Task debug report viewlet"""
   279     """Task debug report viewlet"""
   280 
   280 
   281 
   281 
   282 @pagelet_config(name='history.html', context=ITask, layer=IPyAMSLayer, permission=VIEW_SYSTEM_PERMISSION)
   282 @pagelet_config(name='history.html', context=ITask, layer=IPyAMSLayer, permission=MANAGE_SYSTEM_PERMISSION)
   283 class TaskHistoryDisplayForm(AdminDialogDisplayForm):
   283 class TaskHistoryDisplayForm(AdminDialogDisplayForm):
   284     """Task history display form"""
   284     """Task history display form"""
   285 
   285 
   286     @property
   286     @property
   287     def title(self):
   287     def title(self):
   361         super(TaskHistoryViewlet, self).update()
   361         super(TaskHistoryViewlet, self).update()
   362         self.table.update()
   362         self.table.update()
   363 
   363 
   364 
   364 
   365 @view_config(name='info.json', context=ITaskHistory, request_type=IPyAMSLayer,
   365 @view_config(name='info.json', context=ITaskHistory, request_type=IPyAMSLayer,
   366              permission=VIEW_SYSTEM_PERMISSION, renderer='json', xhr=True)
   366              permission=MANAGE_SYSTEM_PERMISSION, renderer='json', xhr=True)
   367 def TaskHistoryInfoView(request):
   367 def TaskHistoryInfoView(request):
   368     return {'status': 'success',
   368     return {'status': 'success',
   369             'close_form': False,
   369             'close_form': False,
   370             'content': {'raw': True,
   370             'content': {'raw': True,
   371                         'text': request.context.report,
   371                         'text': request.context.report,