From 7a48f12735bdf95051cc0114c19d86f6c688d23b Mon Sep 17 00:00:00 2001 From: Helmut Merz Date: Mon, 13 Aug 2012 12:44:59 +0200 Subject: [PATCH] add view attribute to job manager --- organize/job/base.py | 6 +++--- organize/job/browser.py | 13 ++++++++----- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/organize/job/base.py b/organize/job/base.py index 09d2371..ee3982a 100644 --- a/organize/job/base.py +++ b/organize/job/base.py @@ -1,5 +1,5 @@ # -# Copyright (c) 2008 Helmut Merz helmutm@cy55.de +# Copyright (c) 2012 Helmut Merz helmutm@cy55.de # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -18,8 +18,6 @@ """ Base class(es) for job management. - -$Id$ """ from zope import component, interface @@ -33,6 +31,8 @@ class JobManager(object): interface.implements(IJobManager) component.adapts(ILoops) + view = None # may be set by calling view + def __init__(self, context): self.context = context diff --git a/organize/job/browser.py b/organize/job/browser.py index 4f54043..80c2f52 100644 --- a/organize/job/browser.py +++ b/organize/job/browser.py @@ -1,5 +1,5 @@ # -# Copyright (c) 2009 Helmut Merz helmutm@cy55.de +# Copyright (c) 2012 Helmut Merz helmutm@cy55.de # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -18,13 +18,12 @@ """ Definition of view classes and other browser related stuff for job management. - -$Id$ """ from logging import getLogger from zope import component from zope.cachedescriptors.property import Lazy +from zope.security.proxy import removeSecurityProxy from cybertools.meta.interfaces import IOptions from cybertools.organize.interfaces import IJobManager @@ -49,16 +48,20 @@ class Executor(object): def processJobs(self): output = [] - names = [n for n in self.request.get('job_managers', '').split(',') if n] + names = [n for n in self.request.get('job_managers', '').split(',') + if n] if not names: names = self.options('organize.job.managers', []) for name in names: - manager = component.queryAdapter(self.context, IJobManager, name=name) + manager = component.queryAdapter(self.context, IJobManager, + name=name) if manager is None: msg = "Job manager '%s' not found." % name self.logger.warn(msg) output.append(msg) else: + manager = removeSecurityProxy(manager) + manager.view = self output.append(manager.process()) if not output: return 'No job managers available.'