diff --git a/organize/work/__init__.py b/organize/work/__init__.py new file mode 100644 index 0000000..38314f3 --- /dev/null +++ b/organize/work/__init__.py @@ -0,0 +1,3 @@ +""" +$Id$ +""" diff --git a/organize/work/base.py b/organize/work/base.py new file mode 100644 index 0000000..6d6b1e9 --- /dev/null +++ b/organize/work/base.py @@ -0,0 +1,41 @@ +# +# 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 +# + +""" +Recording changes to loops objects. + +$Id$ +""" + +from zope.cachedescriptors.property import Lazy +from zope.component import adapter + +from cybertools.organize.work import WorkItem as BaseWorkItem +from cybertools.organize.work import WorkItems as BaseWorkItems +from loops.organize.tracking.base import BaseRecordManager + + +class WorkItem(BaseWorkItem): + + pass + + +class WorkItems(BaseRecordManager, BaseWorkItems): + + pass + diff --git a/organize/work/browser.py b/organize/work/browser.py new file mode 100644 index 0000000..aa22319 --- /dev/null +++ b/organize/work/browser.py @@ -0,0 +1,64 @@ +# +# 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 +# + +""" +View class(es) for change tracks. + +$Id$ +""" + +from zope import component +from zope.app.security.interfaces import IAuthentication, PrincipalLookupError +from zope.cachedescriptors.property import Lazy +from zope.app.pagetemplate import ViewPageTemplateFile +from zope.traversing.browser import absoluteURL +from zope.traversing.api import getName + +from cybertools.browser.action import actions +from cybertools.tracking.browser import TrackView +from loops.browser.action import DialogAction +from loops.browser.form import ObjectForm, EditObject +from loops.organize.tracking.browser import BaseTrackView +from loops import util + + +work_macros = ViewPageTemplateFile('work_macros.pt') + + +class WorkItemView(BaseTrackView): + + pass + + +class CreateWorkItemForm(ObjectForm): + + template = work_macros + + @Lazy + def macro(self): + return self.template.macros['create_workitem'] + + +# actions + +actions.register('createWorkitem', 'portlet', DialogAction, + title=_(u'Create Work Item...'), + description=_(u'Create a work item for this object.'), + viewName='create_workitem.html', + dialogName='createWorkitem', +) diff --git a/organize/work/configure.zcml b/organize/work/configure.zcml new file mode 100644 index 0000000..e3c47ef --- /dev/null +++ b/organize/work/configure.zcml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/organize/work/setup.py b/organize/work/setup.py new file mode 100644 index 0000000..b017841 --- /dev/null +++ b/organize/work/setup.py @@ -0,0 +1,35 @@ +# +# 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 +# + +""" +Automatic setup of a loops site for the organize.work package. + +$Id$ +""" + +from cybertools.tracking.btree import TrackingStorage +from loops.organize.work.base import WorkItem +from loops.setup import SetupManager as BaseSetupManager + + +class SetupManager(BaseSetupManager): + + def setup(self): + records = self.context.getRecordManager() + work = self.addObject(records, TrackingStorage, 'work', + trackFactory=WorkItem) diff --git a/organize/work/work_macros.pt b/organize/work/work_macros.pt new file mode 100644 index 0000000..91c647e --- /dev/null +++ b/organize/work/work_macros.pt @@ -0,0 +1,31 @@ + + + + + +
+ +
Add Work Item
+
+ +
+
+
+
+ + +
+ + + + +