diff --git a/browser/common.py b/browser/common.py index dbf00c4..c41a76b 100644 --- a/browser/common.py +++ b/browser/common.py @@ -392,6 +392,40 @@ class BaseView(GenericView, I18NView): def uniqueId(self): return util.getUidForObject(self.context) + @Lazy + def breadcrumbsTitle(self): + return self.title + + @Lazy + def listingTitle(self): + return self.title + + def getViewForObject(self, obj): + if obj is not None: + obj = baseObject(obj) + basicView = component.getMultiAdapter((obj, self.request)) + if hasattr(basicView, 'view'): + return basicView.view + + def viewIterator(self, objs): + request = self.request + for obj in objs: + view = self.getViewForObject(obj) + if view is None: + view = BaseView(obj, request) + yield view + + def xx_viewIterator(self,obj): + view = component.queryMultiAdapter( + (o, request), name='index.html') + #if view is None: + # view = component.queryMultiAdapter((o, request), IBrowserView) + if view is None: + view = BaseView(o, request) + if hasattr(view, 'view'): # use view setting for type + view = view.view + yield view + # type stuff @Lazy @@ -434,16 +468,6 @@ class BaseView(GenericView, I18NView): return absoluteURL(provider, self.request) return None - def viewIterator(self, objs): - request = self.request - for o in objs: - view = component.queryMultiAdapter((o, request), name='index.html') - #if view is None: - # view = component.queryMultiAdapter((o, request), IBrowserView) - if view is None: - view = BaseView(o, request) - yield view - def renderText(self, text, contentType): text = util.toUnicode(text) typeKey = util.renderingFactories.get(contentType, None) diff --git a/browser/form.py b/browser/form.py index 4e9e361..0547c17 100644 --- a/browser/form.py +++ b/browser/form.py @@ -397,6 +397,8 @@ class CreateConceptForm(CreateObjectForm): parentType.getChildren([subtypePred])) types = [dict(token=ConceptTypeInfo(t).token, title=t.title) for t in tconcepts] + if self.defaultTypeToken is None and types: + self.defaultTypeToken = types[0]['token'] if include or include is None: return util.KeywordVocabulary(types + self.listTypes(include, ('hidden',))) return util.KeywordVocabulary(types) diff --git a/browser/form_macros.pt b/browser/form_macros.pt index 47f56b1..39f6669 100644 --- a/browser/form_macros.pt +++ b/browser/form_macros.pt @@ -78,7 +78,10 @@ id="dialog_form" class="dialog" dojoType="dijit.form.Form" tal:define="qualifier request/qualifier|view/qualifier|string:resource; - innerForm request/inner_form|view/inner_form|string:inner_form.html; + innerForm + request/inner_form|view/inner_form|string:inner_form.html; + typesVocabulary python: + view.getTypesVocabulary((qualifier,)); typeToken view/typeToken; fixedType view/fixedType; langInfo view/languageInfo; @@ -104,8 +107,7 @@ '${view/virtualTargetUrl}/$innerForm')">