diff --git a/browser/lobo/standard.pt b/browser/lobo/standard.pt
index bb655dc..40a8061 100644
--- a/browser/lobo/standard.pt
+++ b/browser/lobo/standard.pt
@@ -17,7 +17,7 @@
title cell/description">
-
+
@@ -36,7 +36,7 @@
-
+
diff --git a/browser/lobo/standard.py b/browser/lobo/standard.py
index b70d4eb..5b80e36 100644
--- a/browser/lobo/standard.py
+++ b/browser/lobo/standard.py
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2011 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 @@
"""
View classes for lobo (blueprint-based) layouts.
-
-$Id$
"""
from cgi import parse_qs
@@ -66,8 +64,20 @@ class ConceptView(BaseConceptView):
@Lazy
def resources(self):
+ return self.getResources()
+
+ @Lazy
+ def representingResources(self):
+ pred = self.representationPredicate
+ if pred is None:
+ return {}
+ return self.getResources([pred])
+
+ def getResources(self, predicates=None):
result = dict(texts=[], images=[], files=[])
- for r in self.context.getResources([self.defaultPredicate]):
+ if predicates is None:
+ predicates = [self.defaultPredicate]
+ for r in self.context.getResources(predicates):
if r.contentType.startswith('text/'):
result['texts'].append(r)
if r.contentType.startswith('image/'):
@@ -81,6 +91,10 @@ class ConceptView(BaseConceptView):
for r in self.resources['images']:
yield r
+ @Lazy
+ def representationPredicate(self):
+ return self.conceptManager.get('represents')
+
# properties from base class: title, description, renderedDescription
@Lazy
@@ -99,6 +113,12 @@ class ConceptView(BaseConceptView):
return u''
return self.renderDescription(self.textDescription)
+ @Lazy
+ def textRepresentation(self):
+ for r in self.representingResources.get('texts', []):
+ return self.renderText(r.data, r.contentType)
+ return self.renderedDescription
+
@Lazy
def targetUrl(self):
return self.nodeView.getUrlForTarget(self.context)
diff --git a/organize/stateful/base.py b/organize/stateful/base.py
index f6da53b..fc2d942 100644
--- a/organize/stateful/base.py
+++ b/organize/stateful/base.py
@@ -67,9 +67,13 @@ class StatefulConceptIndexInfo(IndexInfo):
@property
def availableStatesDefinitions(self):
globalOptions = IOptions(self.context.getLoopsRoot())
- typeOptions = IOptions(adapted(self.context.conceptType))
- return (globalOptions('organize.stateful.concept', []) +
- typeOptions('organize.stateful', []))
+ type = self.context.conceptType
+ if type is None: # may happen during object creation
+ return globalOptions('organize.stateful.concept', [])
+ else:
+ typeOptions = IOptions(adapted(type))
+ return (globalOptions('organize.stateful.concept', []) +
+ typeOptions('organize.stateful', []))
class StatefulResourceIndexInfo(IndexInfo):