Fixed widget for thesaurus search form in thesaurus base view
This commit is contained in:
parent
7c931a1671
commit
eae5e649ec
|
@ -37,4 +37,23 @@
|
|||
permission="zope2.View"
|
||||
/>
|
||||
|
||||
<browser:page
|
||||
for="collective.dms.thesaurus.dmsthesaurus.IDmsThesaurus"
|
||||
name="autocomplete-search-form"
|
||||
class="collective.dms.thesaurus.browser.thesaurusview.DmsThesaurusForm"
|
||||
permission="cmf.ModifyPortalContent"
|
||||
/>
|
||||
<adapter factory="collective.dms.thesaurus.browser.thesaurusview.AutocompleteSearchFieldWidget" />
|
||||
|
||||
|
||||
<!--
|
||||
<browser:page
|
||||
for="*"
|
||||
name="search-widget"
|
||||
class=".searchform.SearchView"
|
||||
permission="cmf.ModifyPortalContent"
|
||||
/>
|
||||
<adapter factory=".searchform.SearchAdapter" />
|
||||
-->
|
||||
|
||||
</configure>
|
||||
|
|
|
@ -17,8 +17,12 @@
|
|||
onsubmit="window.location=window.location+'/'+document.forms['thesaurus-search-form']['form-widgets-keyword_search'].value; return false" />
|
||||
|
||||
<div id="dmsthesaurus-entry-points-field"
|
||||
tal:define="widget python:view.widgets.get('entry_points')"
|
||||
tal:content="structure widget/render" />
|
||||
class="field"
|
||||
tal:define="widget python:view.widgets.get('entry_points')">
|
||||
<label tal:content="widget/label" />
|
||||
<br />
|
||||
<div tal:content="structure widget/render" />
|
||||
</div>
|
||||
|
||||
</metal:main>
|
||||
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
<script type="text/javascript" tal:content="structure view/js"></script>
|
||||
<div tal:attributes="id string:${view/id}-autocomplete">
|
||||
<tal:block replace="structure view/subform/render" />
|
||||
</div>
|
|
@ -1,29 +1,65 @@
|
|||
from zope import schema
|
||||
from zope.interface import implementer
|
||||
from zope.interface import implements
|
||||
from zope.interface import Interface
|
||||
from zope.component import adapter
|
||||
|
||||
from z3c.form import form, button, field
|
||||
#from plone.z3cform import layout
|
||||
#from plone.formwidget.autocomplete.widget import AutocompleteFieldWidget
|
||||
from zope import schema
|
||||
from zope.schema.interfaces import IChoice
|
||||
|
||||
from zope.browserpage.viewpagetemplatefile import ViewPageTemplateFile
|
||||
|
||||
from z3c.form.interfaces import IFormLayer, IFieldWidget
|
||||
from z3c.form.widget import FieldWidget
|
||||
from z3c.form import form, button, field
|
||||
from plone.z3cform import layout
|
||||
#from plone.formwidget.autocomplete.widget import AutocompleteFieldWidget
|
||||
|
||||
|
||||
from plone.formwidget.autocomplete.widget import AutocompleteBase, AutocompleteSelectionWidget
|
||||
from plone.formwidget.autocomplete.interfaces import IAutocompleteWidget
|
||||
|
||||
#from plone.formwidget.autocomplete import AutocompleteFieldWidget
|
||||
from plone.dexterity.browser.view import DefaultView
|
||||
#from Products.Five.browser import BrowserView
|
||||
|
||||
#from plone.dexterity.interfaces import IDexterityFTI
|
||||
#from plone.dexterity.utils import getAdditionalSchemata
|
||||
|
||||
from collective.dms.thesaurus import _
|
||||
from collective.dms.thesaurus.vocabulary import InternalThesaurusSource
|
||||
|
||||
class IAutocompleteSearchWidget(IAutocompleteWidget):
|
||||
"""Simple autocomplete search input widget
|
||||
"""
|
||||
|
||||
class AutocompleteSearchWidget(AutocompleteSelectionWidget):
|
||||
"""Search widget with autocompletion.
|
||||
"""
|
||||
implements(IAutocompleteSearchWidget)
|
||||
|
||||
klass = u'autocomplete-search-widget'
|
||||
input_template = ViewPageTemplateFile('thesaurus_search_input.pt')
|
||||
display_template = ViewPageTemplateFile('thesaurus_search_input.pt')
|
||||
|
||||
|
||||
@adapter(IAutocompleteSearchWidget, IFormLayer)
|
||||
@implementer(IFieldWidget)
|
||||
def AutocompleteSearchFieldWidget(field, request):
|
||||
return FieldWidget(field, AutocompleteSearchWidget(request))
|
||||
|
||||
|
||||
class IThesaurusForm(Interface):
|
||||
keyword_search = schema.Choice(title=u"Search for keyword",
|
||||
keyword_search = schema.Choice(
|
||||
title=_(u"Quick Search"),
|
||||
description=_(u"Search for a keyword in this Thesaurus"),
|
||||
source=InternalThesaurusSource(), required=False)
|
||||
|
||||
|
||||
class DmsThesaurusForm(form.Form):
|
||||
implements(IThesaurusForm)
|
||||
|
||||
fields = field.Fields(IThesaurusForm)
|
||||
#fields['keyword_search'].widgetFactory = AutocompleteFieldWidget
|
||||
fields['keyword_search'].widgetFactory = AutocompleteSearchFieldWidget
|
||||
ignoreContext = True
|
||||
template = ViewPageTemplateFile('thesaurus_form.pt')
|
||||
|
||||
|
@ -32,10 +68,13 @@ class DmsThesaurusForm(form.Form):
|
|||
data, errors = self.extractData()
|
||||
print data, errors
|
||||
|
||||
#from .searchform import SearchForm
|
||||
|
||||
class DmsThesaurusView(DefaultView):
|
||||
|
||||
def renderForm(self):
|
||||
form = DmsThesaurusForm(self.context, self.request)
|
||||
#form = SearchForm(self.context, self.request)
|
||||
form.update()
|
||||
return form.render()
|
||||
|
|
@ -31,20 +31,16 @@ class IDmsThesaurus(model.Schema):
|
|||
""" """
|
||||
|
||||
entry_points = EntryPoints(
|
||||
title=_(u"Entry Points"),
|
||||
description=_(u"First level of navigation for this Thesaurus"),
|
||||
required=False)
|
||||
|
||||
title=_(u"Entry Points"),
|
||||
description=_(u"First level of navigation for this Thesaurus"),
|
||||
required=False)
|
||||
|
||||
class DmsThesaurus(Container):
|
||||
""" """
|
||||
implements(IDmsThesaurus)
|
||||
|
||||
|
||||
class DmsThesaurusSchemaPolicy(DexteritySchemaPolicy):
|
||||
""" """
|
||||
|
||||
def bases(self, schemaName, tree):
|
||||
return (IDmsThesaurus, )
|
||||
|
||||
|
||||
|
|
|
@ -53,3 +53,11 @@ msgstr ""
|
|||
msgid "nothing"
|
||||
msgstr ""
|
||||
|
||||
#: ./browser/thesaurusview.py
|
||||
msgid "Quick Search"
|
||||
msgstr ""
|
||||
|
||||
#: ./browser/thesaurusview.py
|
||||
msgid "Search for a keyword in this Thesaurus"
|
||||
msgstr ""
|
||||
|
||||
|
|
|
@ -47,3 +47,11 @@ msgstr ""
|
|||
msgid "nothing"
|
||||
msgstr ""
|
||||
|
||||
#: ./browser/thesaurusview.py
|
||||
msgid "Quick Search"
|
||||
msgstr ""
|
||||
|
||||
#: ./browser/thesaurusview.py
|
||||
msgid "Search for a keyword in this Thesaurus"
|
||||
msgstr ""
|
||||
|
||||
|
|
|
@ -51,3 +51,11 @@ msgstr "NA (Note d'application)"
|
|||
msgid "nothing"
|
||||
msgstr "néant"
|
||||
|
||||
#: ./browser/thesaurusview.py
|
||||
msgid "Quick Search"
|
||||
msgstr "Recherche rapide"
|
||||
|
||||
#: ./browser/thesaurusview.py
|
||||
msgid "Search for a keyword in this Thesaurus"
|
||||
msgstr "Recherche rapide d'un terme du thésaurus"
|
||||
|
||||
|
|
Reference in New Issue