Skip to main content

AJAX autocomplete widget for z3c.form

Project description

Autocomplete widget

gocept.autocomplete provides an autocomplete widget for z3c.form based on YUI AutoComplete.

>>> import zope.app.testing.functional
>>> root = zope.app.testing.functional.getRootFolder()
>>> import gocept.autocomplete.tests.color
>>> house = gocept.autocomplete.tests.color.House()
>>> root['house'] = house
>>> import zope.testbrowser.testing
>>> b = zope.testbrowser.testing.Browser()
>>> b.handleErrors = False

The AutocompleteWidget is an enhanced TextWidget. Thus, in display mode, it behaves just like a TextWidget:

>>> b.open('http://localhost/house')
>>> print b.contents
<?xml...
...<span id="form-widgets-color" class="text-widget autocomplete required choice-field"></span>...

But in edit mode, it generates additional javascript code:

>>> b.addHeader('Authorization', 'Basic mgr:mgrpw')
>>> b.open('http://localhost/house')
>>> print b.contents
<?xml...
...<script src=".../autocomplete-min.js"...
...<input id="form-widgets-color"...
...<div id="form-widgets-color-container"...
...DS_XHR("http://localhost/house/@@index.html/++widget++color/@@autocomplete-search"...
...new YAHOO.widget.AutoComplete( "form-widgets-color", "form-widgets-color-container"...

The autocompletion is populated via a view registered on the widget:

>>> b.open('http://localhost/house/@@index.html/++widget++color/@@autocomplete-search')
>>> print b.contents
>>> b.open('http://localhost/house/@@index.html/++widget++color/@@autocomplete-search?q=r')
>>> print b.contents
red
ruby

But we can still enter any value we want and have it saved:

>>> b.open('http://localhost/house')
>>> b.getControl('Color').value = 'foo'
>>> b.getControl(name='form.buttons.apply').click()
>>> print b.contents
<?xml...
...foo...

Changes

0.1 (unreleased)

  • first release

  • NOTE: still missing security declarations on the autocomplete-search view. This means anyone can query the source for values.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gocept.autocomplete-0.1dev.tar.gz (9.7 kB view details)

Uploaded Source

File details

Details for the file gocept.autocomplete-0.1dev.tar.gz.

File metadata

File hashes

Hashes for gocept.autocomplete-0.1dev.tar.gz
Algorithm Hash digest
SHA256 ce538df05e4fa9d620dd52bb1d16a7d516f48913fe6e52226e0f577d9c516a06
MD5 aaafcb1c3ded6dfd906c02d225adcf3e
BLAKE2b-256 0abeb40c4b0f25ebc46c73bdbf8975fa0674331f249f969fadf23052f343c201

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page