# HG changeset patch # User Thierry Florac # Date 1437578613 -7200 # Node ID 5f2f8657934bc3604c6c619d07017dca8b764c4c # Parent 65193a93dd6a47d5a8bc895a209ef683e432e8f1 Added terms selector with access to full terms list diff -r 65193a93dd6a -r 5f2f8657934b src/pyams_thesaurus/widget/__init__.py --- a/src/pyams_thesaurus/widget/__init__.py Wed Jul 22 17:22:01 2015 +0200 +++ b/src/pyams_thesaurus/widget/__init__.py Wed Jul 22 17:23:33 2015 +0200 @@ -135,7 +135,8 @@ thesaurus = query_utility(IThesaurus, name=thesaurus_name) if thesaurus is None: return None - value = value.split('|') + if isinstance(value, str): + value = value.split('|') for idx, val in enumerate(value): match = SYNONYM.match(val) if match: @@ -169,3 +170,17 @@ def ThesaurusTermsListFieldWidget(field, request): """Thesaurus terms list field widget factory""" return FieldWidget(field, ThesaurusTermsListWidget(request)) + + +# +# Terms list widget with selector +# + +@widgettemplate_config(mode='input', template='templates/terms-list-selector-input.pt', layer=IFormLayer) +class ThesaurusTermsListSelectorWidget(ThesaurusTermsListWidget): + """Thesaurus terms list widget with selector""" + + +def ThesaurusTermsListSelectorFieldWidget(field, request): + """Thesaurus terms list field widget with selector factory""" + return FieldWidget(field, ThesaurusTermsListSelectorWidget(request)) diff -r 65193a93dd6a -r 5f2f8657934b src/pyams_thesaurus/widget/templates/terms-list-selector-input.pt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/pyams_thesaurus/widget/templates/terms-list-selector-input.pt Wed Jul 22 17:23:33 2015 +0200 @@ -0,0 +1,48 @@ +