diff --git a/browser/concept.py b/browser/concept.py
index 7d6b398..69e53b4 100644
--- a/browser/concept.py
+++ b/browser/concept.py
@@ -89,7 +89,9 @@ class ConceptView(BaseView):
cm = self.loopsRoot.getConceptManager()
hasType = cm.getTypePredicate()
standard = cm.getDefaultPredicate()
- for r in self.context.getChildRelations():
+ rels = sorted(self.context.getChildRelations(),
+ key=(lambda x: x.second.title))
+ for r in rels:
if r.predicate == hasType:
# only show top-level entries for type instances:
skip = False
@@ -101,11 +103,15 @@ class ConceptView(BaseView):
yield ConceptRelationView(r, self.request, contextIsSecond=True)
def parents(self):
- for r in self.context.getParentRelations():
+ rels = sorted(self.context.getParentRelations(),
+ key=(lambda x: x.first.title))
+ for r in rels:
yield ConceptRelationView(r, self.request)
def resources(self):
- for r in self.context.getResourceRelations():
+ rels = sorted(self.context.getResourceRelations(),
+ key=(lambda x: x.second.title))
+ for r in rels:
yield ConceptRelationView(r, self.request, contextIsSecond=True)
@Lazy
@@ -238,11 +244,6 @@ class ConceptConfigureView(ConceptView):
result = [r for r in result if r.conceptType is None]
return self.viewIterator(result)
- def viewIterator(self, objs):
- request = self.request
- for o in objs:
- yield BaseView(o, request)
-
def conceptTypes(self):
return util.KeywordVocabulary([(t.token, t.title)
for t in ITypeManager(self.context).listTypes(('concept',))])
diff --git a/browser/configure.zcml b/browser/configure.zcml
index 8f2af13..1aa9dd7 100644
--- a/browser/configure.zcml
+++ b/browser/configure.zcml
@@ -521,6 +521,14 @@
permission="zope.View"
/>
+
diff --git a/browser/node.py b/browser/node.py
index d615982..fe107fb 100644
--- a/browser/node.py
+++ b/browser/node.py
@@ -242,6 +242,17 @@ class ListPages(NodeView):
return self
+class ListResources(NodeView):
+
+ @Lazy
+ def macro(self):
+ return self.template.macros['listresources']
+
+ @Lazy
+ def view(self):
+ return self
+
+
class ConfigureView(NodeView):
""" An editing view for configuring a node, optionally creating
a target object.
diff --git a/browser/node_macros.pt b/browser/node_macros.pt
index 5cd8dd7..aea1bd3 100644
--- a/browser/node_macros.pt
+++ b/browser/node_macros.pt
@@ -80,6 +80,8 @@
+
+