diff --git a/browser/common.py b/browser/common.py index 79eb472..9493567 100644 --- a/browser/common.py +++ b/browser/common.py @@ -239,10 +239,13 @@ class BaseView(GenericView): def listTypes(self, include=None, exclude=None, sortOn='title'): types = [dict(token=t.token, title=t.title) for t in ITypeManager(self.context).listTypes(include, exclude)] - if sortOn: - types.sort(key=lambda x: x[sortOn]) + #if sortOn: + # types.sort(key=lambda x: x[sortOn]) return types + def getTypesVocabulary(self, include=None): + return util.KeywordVocabulary(self.listTypes(include, ('hidden',))) + def resourceTypes(self): return util.KeywordVocabulary(self.listTypes(('resource',), ('hidden',))) #if t.factory == Resource]) # ? if necessary -> type.qualifiers @@ -377,16 +380,6 @@ class BaseView(GenericView): cm.register('js', 'dojo.js', resourceName='ajax.dojo/dojo.js') -# actions - obsolete, see loops.browser.action - -#class Action(object): - -# def __init__(self, renderer, url, **kw): -# self.renderer = renderer -# self.url = url -# self.__dict__.update(kw) - - # vocabulary stuff class LoopsTerms(object): diff --git a/browser/concept.py b/browser/concept.py index 7957577..664bf18 100644 --- a/browser/concept.py +++ b/browser/concept.py @@ -1,5 +1,5 @@ # -# Copyright (c) 2004 Helmut Merz helmutm@cy55.de +# Copyright (c) 2007 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 @@ -60,10 +60,13 @@ class ConceptEditForm(EditForm): @property def form_fields(self): - fields = FormFields(IConcept) typeInterface = self.typeInterface - if typeInterface is not None: - fields = FormFields(fields, typeInterface) + if typeInterface is None: + fields = FormFields(IConcept) + elif 'title' in typeInterface: # new "complete" type interface + fields = FormFields(typeInterface) + else: + fields = FormFields(IConcept, typeInterface) return fields def setUpWidgets(self, ignore_request=False): @@ -96,9 +99,12 @@ class ConceptView(BaseView): def fieldData(self): ti = IType(self.context).typeInterface - if not ti: return + if not ti: + return adapter = ti(self.context) for n, f in schema.getFieldsInOrder(ti): + if n in ('title', 'description',): # already shown in header + continue value = getattr(adapter, n, '') if not value: continue diff --git a/browser/configure.zcml b/browser/configure.zcml index 963e6e5..77175e8 100644 --- a/browser/configure.zcml +++ b/browser/configure.zcml @@ -557,6 +557,13 @@ permission="zope.ManageContent" /> + + + + + + + + -
+ @@ -47,10 +49,12 @@ tal:attributes="onChange string:return replaceFieldsNode( 'form.fields', 'form.type', - '${view/url}/inner_form.html')"> + '${view/url}/$innerForm')">