diff --git a/browser/concept.py b/browser/concept.py
index c94dce3..b550830 100644
--- a/browser/concept.py
+++ b/browser/concept.py
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2012 Helmut Merz helmutm@cy55.de
+# Copyright (c) 2013 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
@@ -50,6 +50,7 @@ from cybertools.meta.interfaces import IOptions
from cybertools.typology.interfaces import IType, ITypeManager
from cybertools.util.jeep import Jeep
from loops.browser.common import EditForm, BaseView, LoopsTerms, concept_macros
+from loops.browser.common import ViewMode
from loops.common import adapted
from loops.concept import Concept, ConceptTypeSourceList, PredicateSourceList
from loops.i18n.browser import I18NView
@@ -746,3 +747,30 @@ class ListTypeInstances(ListChildren):
noDuplicates, useFilter, [self.typePredicate]):
yield c
+
+class TabbedPage(ConceptView):
+
+ @Lazy
+ def subpagePredicates(self):
+ pred = self.conceptManager.get('issubpage')
+ if pred is None:
+ pred = self.isPartOfPredicate
+ return [pred]
+
+ def viewModes(self):
+ modes = Jeep()
+ for s in self.getSiblings(self.subpagePredicates):
+ url = self.nodeView.getUrlForTarget(s)
+ modes.append(ViewMode(getName(s), s.title, url))
+ if not modes:
+ return modes
+ modes[getName(self.context)].active = True
+ return modes
+
+ def getSiblings(self, preds):
+ for p in self.context.getParents(preds):
+ parent = p
+ break
+ else:
+ return []
+ return p.getChildren(preds)
diff --git a/browser/configure.zcml b/browser/configure.zcml
index 97782d8..37f0542 100644
--- a/browser/configure.zcml
+++ b/browser/configure.zcml
@@ -553,6 +553,14 @@
factory="loops.browser.concept.ListTypeInstances"
permission="zope.View" />
+
+
+
diff --git a/layout/base.py b/layout/base.py
index 8a0e6eb..9cae325 100644
--- a/layout/base.py
+++ b/layout/base.py
@@ -158,4 +158,5 @@ class TargetLayoutInstance(NodeLayoutInstance):
target = self.viewAnnotations.get('target')
if target is None:
target = adapted(self.context.target)
+ #self.viewAnnotations['target'] = target # TODO: has to be tested!
return target
diff --git a/locales/de/LC_MESSAGES/loops.mo b/locales/de/LC_MESSAGES/loops.mo
index 2029589..45b1e4c 100644
Binary files a/locales/de/LC_MESSAGES/loops.mo and b/locales/de/LC_MESSAGES/loops.mo differ
diff --git a/locales/de/LC_MESSAGES/loops.po b/locales/de/LC_MESSAGES/loops.po
index bea0e51..ca2a770 100644
--- a/locales/de/LC_MESSAGES/loops.po
+++ b/locales/de/LC_MESSAGES/loops.po
@@ -3,7 +3,7 @@ msgstr ""
"Project-Id-Version: 0.13.0\n"
"POT-Creation-Date: 2007-05-22 12:00 CET\n"
-"PO-Revision-Date: 2013-04-01 12:00 CET\n"
+"PO-Revision-Date: 2013-04-06 12:00 CET\n"
"Last-Translator: Helmut Merz \n"
"Language-Team: loops developers \n"
"MIME-Version: 1.0\n"
@@ -241,6 +241,9 @@ msgstr "Trifft für unser Unternehmen voll und ganz zu"
msgid "Evaluate Questionnaire"
msgstr "Fragebogen auswerten"
+msgid "Reset Responses Entered"
+msgstr "Eingaben zurücksetzen"
+
msgid "Back to Questionnaire"
msgstr "Zurück zum Fragebogen"
diff --git a/organize/browser/configure.zcml b/organize/browser/configure.zcml
index 91d40f1..e351efa 100644
--- a/organize/browser/configure.zcml
+++ b/organize/browser/configure.zcml
@@ -27,6 +27,18 @@
class="loops.organize.browser.member.MemberRegistration"
permission="zope.View" />
+
+
+
+
+
+
+
+
diff --git a/organize/stateful/browser.py b/organize/stateful/browser.py
index 8dc1069..5b77b7d 100644
--- a/organize/stateful/browser.py
+++ b/organize/stateful/browser.py
@@ -43,6 +43,16 @@ statefulActions = ('classification_quality',
'publishable_task',)
+def registerStatesPortlet(controller, view, statesDefs,
+ region='portlet_right', priority=98):
+ cm = controller.macros
+ stfs = [component.getAdapter(view.context, IStateful, name=std)
+ for std in statesDefs]
+ cm.register(region, 'states', title=_(u'States'),
+ subMacro=template.macros['portlet_states'],
+ priority=priority, info=view, stfs=stfs)
+
+
class StateAction(Action):
url = None
diff --git a/organize/stateful/view_macros.pt b/organize/stateful/view_macros.pt
index 6dfad17..d1be431 100644
--- a/organize/stateful/view_macros.pt
+++ b/organize/stateful/view_macros.pt
@@ -68,4 +68,32 @@
+
+
+
+
+
+ Workflow
+
+
+
+ State:
+
+
+
+
Available Transitions:
+
+
+
+
+
+