Added equivs display widget

This commit is contained in:
David Convent 2013-01-24 15:41:32 +01:00
parent c89e9dcec5
commit b5ac1977fa
2 changed files with 46 additions and 17 deletions

View File

@ -19,33 +19,18 @@ from plone.supermodel import model
from . import _
from .relatedkeywords import RelatedThesaurusKeywords
from .equivalences import ThesaurusKeywordEquivalences
#from plone.autoform import directives as form
#from plone.directives.form import default_value
class IEquivalences(IList):
""""""
class Equivalences(schema.List):
implements(IEquivalences)
def __init__(self, **kwargs):
schema.List.__init__(self, **kwargs)
@adapter(IEquivalences, IFormLayer)
@implementer(IFieldWidget)
def EquivalencesWidget(field, request):
return FieldWidget(field, TextLinesFieldWidget(request))
class IDmsKeyword(model.Schema):
""" """
# XXX: Ungly widget that needs to be replaced
equivs = Equivalences(
equivs = ThesaurusKeywordEquivalences(
title=u'EQs',
required=False,
value_type=schema.TextLine()
)
# BT: broader term

View File

@ -0,0 +1,44 @@
from zope.interface import implements, implementer
from zope.component import adapter, getUtility
from zope import schema
from zope.schema.interfaces import IList
from zope.app.intid.interfaces import IIntIds
from zc.relation.interfaces import ICatalog
from z3c.form.interfaces import IFormLayer, IFieldWidget
from z3c.form.widget import FieldWidget
from z3c.form.browser.multi import MultiWidget
# #from z3c.relationfield.interfaces import IRelationList
#from z3c.relationfield.schema import RelationChoice, RelationList
from Products.Five.browser.pagetemplatefile import ViewPageTemplateFile
class IThesaurusKeywordEquivalences(IList):
""""""
class ThesaurusKeywordEquivalencesWidget(MultiWidget):
display_template = ViewPageTemplateFile('thesaurus-keyword-equivs-display.pt')
def __init__(self, request):
super(ThesaurusKeywordEquivalencesWidget, self).__init__(request)
def terms(self):
return self.value.splitlines()
@adapter(IThesaurusKeywordEquivalences, IFormLayer)
@implementer(IFieldWidget)
def ThesaurusKeywordEquivalencesFieldWidget(field, request):
return FieldWidget(field, ThesaurusKeywordEquivalencesWidget(request))
class ThesaurusKeywordEquivalences(schema.List):
implements(IThesaurusKeywordEquivalences)
def __init__(self, **kwargs):
super(ThesaurusKeywordEquivalences, self).__init__(
value_type=schema.TextLine(),
**kwargs)