diff --git a/browser/common.py b/browser/common.py index c48ebb1..42f648f 100644 --- a/browser/common.py +++ b/browser/common.py @@ -23,6 +23,7 @@ $Id$ """ from cgi import parse_qs, parse_qsl +import re from urllib import urlencode from zope import component from zope.app.form.browser.interfaces import ITerms @@ -357,6 +358,9 @@ class BaseView(GenericView, I18NView): @Lazy def renderedDescription(self): + htmlPattern = re.compile(r'<(.+)>.+') + if htmlPattern.search(self.description): + return self.description return self.renderText(self.description, 'text/restructured') # type listings diff --git a/browser/concept.py b/browser/concept.py index c5abcdf..6b5d39e 100644 --- a/browser/concept.py +++ b/browser/concept.py @@ -46,6 +46,7 @@ from zope.traversing.api import getName from cybertools.browser.action import actions from cybertools.composer.interfaces import IInstance +from cybertools.composer.schema.grid.interfaces import Grid from cybertools.composer.schema.interfaces import ISchemaFactory from cybertools.typology.interfaces import IType, ITypeManager from cybertools.util.jeep import Jeep @@ -54,6 +55,7 @@ from loops.common import adapted from loops.concept import Concept, ConceptTypeSourceList, PredicateSourceList from loops.i18n.browser import I18NView from loops.interfaces import IConcept, IConceptSchema, ITypeConcept, IResource +from loops.schema.base import RelationSet, Relation from loops import util from loops.util import _ from loops.versioning.util import getVersion @@ -63,6 +65,8 @@ class ConceptEditForm(EditForm, I18NView): """ Classic-style (zope.formlib-based) form for editing concepts. """ + ignoredFieldTypes = (Grid, Relation, RelationSet,) + #@Lazy # zope.formlib does not issue a redirect after changes, so that # it tries to redisplay the old form even after a type change that # changes the set of available attributes. So the typeInterface @@ -85,7 +89,8 @@ class ConceptEditForm(EditForm, I18NView): fields = FormFields(typeInterface, f1) else: fields = FormFields(IConcept, typeInterface) - return fields + return [f for f in fields + if not isinstance(f.field, self.ignoredFieldTypes)] def setUpWidgets(self, ignore_request=False): # TODO: get rid of removeSecurityProxy(): use ConceptSchema in interfaces diff --git a/browser/form_macros.pt b/browser/form_macros.pt index 55869f2..c3ef4a0 100644 --- a/browser/form_macros.pt +++ b/browser/form_macros.pt @@ -16,12 +16,18 @@ tal:attributes="value view/form_action" /> + +

Edit Information Object

+
+
+ - +
- Edit Information Object