From b5ac1977fa6c2957e7456a37005e22c68c2d9eb1 Mon Sep 17 00:00:00 2001 From: David Convent Date: Thu, 24 Jan 2013 15:41:32 +0100 Subject: [PATCH] Added equivs display widget --- src/collective/dms/thesaurus/dmskeyword.py | 19 +-------- src/collective/dms/thesaurus/equivalences.py | 44 ++++++++++++++++++++ 2 files changed, 46 insertions(+), 17 deletions(-) create mode 100644 src/collective/dms/thesaurus/equivalences.py diff --git a/src/collective/dms/thesaurus/dmskeyword.py b/src/collective/dms/thesaurus/dmskeyword.py index 8d8c49a..c337d04 100644 --- a/src/collective/dms/thesaurus/dmskeyword.py +++ b/src/collective/dms/thesaurus/dmskeyword.py @@ -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 diff --git a/src/collective/dms/thesaurus/equivalences.py b/src/collective/dms/thesaurus/equivalences.py new file mode 100644 index 0000000..cd725f6 --- /dev/null +++ b/src/collective/dms/thesaurus/equivalences.py @@ -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) +