loops/organize/stateful/browser.py
helmutm 54d238afe9 control available states definitions by loops options
git-svn-id: svn://svn.cy55.de/Zope3/src/loops/trunk@2558 fd906abe-77d9-0310-91a1-e0d9ade77398
2008-04-27 09:58:33 +00:00

66 lines
1.9 KiB
Python

#
# Copyright (c) 2008 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
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
"""
Views and actions for states management.
$Id$
"""
from zope import component
from zope.cachedescriptors.property import Lazy
from cybertools.browser.action import Action, actions
from cybertools.stateful.interfaces import IStateful
from loops.util import _
statefulActions = ('loops.classification_quality',
'loops.simple_publishing',)
class StateAction(Action):
url = None
definition = None
@Lazy
def stateful(self):
return component.getAdapter(self.view.context, IStateful,
name=self.definition)
@Lazy
def description(self):
return (u'State information for %s: %s' %
(self.definition, self.stateObject.title))
@Lazy
def stateObject(self):
return self.stateful.getStateObject()
@Lazy
def icon(self):
icon = self.stateObject.icon or 'led%s.png' % self.stateObject.color
return 'cybertools.icons/' + icon
for std in statefulActions:
actions.register('state.' + std, 'object', StateAction,
definition = std,
cssClass='icon-action',
)