equal
deleted
inserted
replaced
24 from pyams_scheduler.interfaces import IScheduler, SCHEDULER_HANDLER_KEY |
24 from pyams_scheduler.interfaces import IScheduler, SCHEDULER_HANDLER_KEY |
25 from pyams_scheduler.zmi.interfaces import ISchedulerMenu |
25 from pyams_scheduler.zmi.interfaces import ISchedulerMenu |
26 from pyams_skin.interfaces import IInnerPage, IPageHeader |
26 from pyams_skin.interfaces import IInnerPage, IPageHeader |
27 from pyams_skin.interfaces.container import ITableElementEditor |
27 from pyams_skin.interfaces.container import ITableElementEditor |
28 from pyams_skin.layer import IPyAMSLayer |
28 from pyams_skin.layer import IPyAMSLayer |
29 from pyams_utils.interfaces import VIEW_SYSTEM_PERMISSION, MANAGE_SYSTEM_PERMISSION |
29 from pyams_utils.interfaces import MANAGE_SYSTEM_PERMISSION |
30 from pyams_zmi.interfaces.menu import IControlPanelMenu |
30 from pyams_zmi.interfaces.menu import IControlPanelMenu |
31 from pyams_zmi.layer import IAdminLayer |
31 from pyams_zmi.layer import IAdminLayer |
32 from z3c.table.interfaces import IColumn, IValues |
32 from z3c.table.interfaces import IColumn, IValues |
33 from zope.component.interfaces import ISite |
33 from zope.component.interfaces import ISite |
34 |
34 |
71 site = get_parent(self.context, ISite) |
71 site = get_parent(self.context, ISite) |
72 return resource_url(site, self.request, 'admin#{0}'.format(self.view_name)) |
72 return resource_url(site, self.request, 'admin#{0}'.format(self.view_name)) |
73 |
73 |
74 |
74 |
75 @viewlet_config(name='scheduler.menu', context=ISite, layer=IAdminLayer, manager=IControlPanelMenu, |
75 @viewlet_config(name='scheduler.menu', context=ISite, layer=IAdminLayer, manager=IControlPanelMenu, |
76 permission=VIEW_SYSTEM_PERMISSION, weight=10) |
76 permission=MANAGE_SYSTEM_PERMISSION, weight=10) |
77 @viewletmanager_config(name='scheduler.menu', context=ISite, layer=IAdminLayer) |
77 @viewletmanager_config(name='scheduler.menu', context=ISite, layer=IAdminLayer) |
78 @implementer(ISchedulerMenu) |
78 @implementer(ISchedulerMenu) |
79 class SchedulerMenuItem(MenuItem): |
79 class SchedulerMenuItem(MenuItem): |
80 """Scheduler menu""" |
80 """Scheduler menu""" |
81 |
81 |
119 icon_hint = _("Task settings") |
119 icon_hint = _("Task settings") |
120 url = 'settings.html' |
120 url = 'settings.html' |
121 target = None |
121 target = None |
122 modal_target = True |
122 modal_target = True |
123 |
123 |
124 permission = VIEW_SYSTEM_PERMISSION |
124 permission = MANAGE_SYSTEM_PERMISSION |
125 weight = 1 |
125 weight = 1 |
126 |
126 |
127 |
127 |
128 @adapter_config(name='scheduler', context=(Interface, IAdminLayer, SchedulerTasksTable), provides=IColumn) |
128 @adapter_config(name='scheduler', context=(Interface, IAdminLayer, SchedulerTasksTable), provides=IColumn) |
129 class SchedulerTasksScheduleColumn(ActionColumn): |
129 class SchedulerTasksScheduleColumn(ActionColumn): |
133 icon_hint = _("Schedule task") |
133 icon_hint = _("Schedule task") |
134 url = 'schedule.html' |
134 url = 'schedule.html' |
135 target = None |
135 target = None |
136 modal_target = True |
136 modal_target = True |
137 |
137 |
138 permission = VIEW_SYSTEM_PERMISSION |
138 permission = MANAGE_SYSTEM_PERMISSION |
139 weight = 2 |
139 weight = 2 |
140 |
140 |
141 |
141 |
142 @adapter_config(name='name', context=(Interface, IAdminLayer, SchedulerTasksTable), provides=IColumn) |
142 @adapter_config(name='name', context=(Interface, IAdminLayer, SchedulerTasksTable), provides=IColumn) |
143 class SchedulerTasksNameColumn(I18nColumn, GetAttrColumn): |
143 class SchedulerTasksNameColumn(I18nColumn, GetAttrColumn): |
170 icon_hint = _("Task run history") |
170 icon_hint = _("Task run history") |
171 url = 'history.html' |
171 url = 'history.html' |
172 target = None |
172 target = None |
173 modal_target = True |
173 modal_target = True |
174 |
174 |
175 permission = VIEW_SYSTEM_PERMISSION |
175 permission = MANAGE_SYSTEM_PERMISSION |
176 weight = 30 |
176 weight = 30 |
177 |
177 |
178 |
178 |
179 @adapter_config(name='trash', context=(Interface, IAdminLayer, SchedulerTasksTable), provides=IColumn) |
179 @adapter_config(name='trash', context=(Interface, IAdminLayer, SchedulerTasksTable), provides=IColumn) |
180 class SchedulerTasksTrashColumn(TrashColumn): |
180 class SchedulerTasksTrashColumn(TrashColumn): |
212 if manager is not None: |
212 if manager is not None: |
213 return list(manager.values()) |
213 return list(manager.values()) |
214 return () |
214 return () |
215 |
215 |
216 |
216 |
217 @pagelet_config(name='scheduler-tasks.html', context=ISite, layer=IPyAMSLayer, permission=VIEW_SYSTEM_PERMISSION) |
217 @pagelet_config(name='scheduler-tasks.html', context=ISite, layer=IPyAMSLayer, permission=MANAGE_SYSTEM_PERMISSION) |
218 @implementer(IInnerPage) |
218 @implementer(IInnerPage) |
219 class SchedulerTasksView(AdminView, ContainerView): |
219 class SchedulerTasksView(AdminView, ContainerView): |
220 """Scheduler tasks view""" |
220 """Scheduler tasks view""" |
221 |
221 |
222 table_class = SchedulerTasksTable |
222 table_class = SchedulerTasksTable |
233 title = _("Control panel") |
233 title = _("Control panel") |
234 subtitle = _("Tasks scheduler") |
234 subtitle = _("Tasks scheduler") |
235 |
235 |
236 |
236 |
237 @viewlet_config(name='scheduler.properties.menu', context=ISite, layer=IAdminLayer, |
237 @viewlet_config(name='scheduler.properties.menu', context=ISite, layer=IAdminLayer, |
238 manager=ISchedulerMenu, permission=VIEW_SYSTEM_PERMISSION, weight=1) |
238 manager=ISchedulerMenu, permission=MANAGE_SYSTEM_PERMISSION, weight=1) |
239 class SchedulerPropertiesMenuItem(MenuItem): |
239 class SchedulerPropertiesMenuItem(MenuItem): |
240 """Scheduler properties menu""" |
240 """Scheduler properties menu""" |
241 |
241 |
242 label = _("Properties...") |
242 label = _("Properties...") |
243 url = 'properties.html' |
243 url = 'properties.html' |
246 def get_url(self): |
246 def get_url(self): |
247 manager = query_utility(IScheduler) |
247 manager = query_utility(IScheduler) |
248 return resource_url(manager, self.request, self.url) |
248 return resource_url(manager, self.request, self.url) |
249 |
249 |
250 |
250 |
251 @pagelet_config(name='properties.html', context=IScheduler, layer=IPyAMSLayer, permission=VIEW_SYSTEM_PERMISSION) |
251 @pagelet_config(name='properties.html', context=IScheduler, layer=IPyAMSLayer, permission=MANAGE_SYSTEM_PERMISSION) |
252 class SchedulerPropertiesEditForm(AdminDialogEditForm): |
252 class SchedulerPropertiesEditForm(AdminDialogEditForm): |
253 """Scheduler properties edit form""" |
253 """Scheduler properties edit form""" |
254 |
254 |
255 @property |
255 @property |
256 def title(self): |
256 def title(self): |
268 class SchedulerPropertiesAJAXEditForm(AJAXEditForm, SchedulerPropertiesEditForm): |
268 class SchedulerPropertiesAJAXEditForm(AJAXEditForm, SchedulerPropertiesEditForm): |
269 """Scheduler properties edit form, AJAX view""" |
269 """Scheduler properties edit form, AJAX view""" |
270 |
270 |
271 |
271 |
272 @viewlet_config(name='scheduler.jobs.menu', context=ISite, layer=IAdminLayer, |
272 @viewlet_config(name='scheduler.jobs.menu', context=ISite, layer=IAdminLayer, |
273 manager=ISchedulerMenu, permission=VIEW_SYSTEM_PERMISSION, weight=5) |
273 manager=ISchedulerMenu, permission=MANAGE_SYSTEM_PERMISSION, weight=5) |
274 class SchedulerJobsMenuItem(MenuItem): |
274 class SchedulerJobsMenuItem(MenuItem): |
275 """Scheduler jobs menu""" |
275 """Scheduler jobs menu""" |
276 |
276 |
277 label = _("Active jobs...") |
277 label = _("Active jobs...") |
278 url = 'jobs.html' |
278 url = 'jobs.html' |
281 def get_url(self): |
281 def get_url(self): |
282 manager = query_utility(IScheduler) |
282 manager = query_utility(IScheduler) |
283 return resource_url(manager, self.request, self.url) |
283 return resource_url(manager, self.request, self.url) |
284 |
284 |
285 |
285 |
286 @pagelet_config(name='jobs.html', context=IScheduler, layer=IPyAMSLayer, permission=VIEW_SYSTEM_PERMISSION) |
286 @pagelet_config(name='jobs.html', context=IScheduler, layer=IPyAMSLayer, permission=MANAGE_SYSTEM_PERMISSION) |
287 class SchedulerJobsDisplayForm(AdminDialogDisplayForm): |
287 class SchedulerJobsDisplayForm(AdminDialogDisplayForm): |
288 """Scheduler jobs display form""" |
288 """Scheduler jobs display form""" |
289 |
289 |
290 @property |
290 @property |
291 def title(self): |
291 def title(self): |