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'<(.+)>.+\1>')
+ 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 |
---|