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, |