Welcome, guest | Sign In | My Account | Store | Cart

Notice! PyPM is being replaced with the ActiveState Platform, which enhances PyPM’s build and deploy capabilities. Create your free Platform account to download ActivePython or customize Python with the packages you require and get automatic updates.

Download
ActivePython
INSTALL>
pypm install horae.autocomplete

How to install horae.autocomplete

  1. Download and install ActivePython
  2. Open Command Prompt
  3. Type pypm install horae.autocomplete
 Python 2.7Python 3.2Python 3.3
Windows (32-bit)
1.0a1 Available View build log
Windows (64-bit)
1.0a1 Available View build log
Mac OS X (10.5+)
1.0a1 Available View build log
Linux (32-bit)
1.0a1 Available View build log
Linux (64-bit)
1.0a1 Available View build log
 
Author
License
GPL
Lastest release
version 1.0a1 on Jan 17th, 2012

Introduction

The horae.autocomplete package provides autocomplete fields and widgets for zope.formlib based on the autocomplete widget of jQuery UI.

Usage

There are two types of autocomplete fields available:

AutocompleteList Allows selection of multiple values AutocompleteChoice Allows selection of one value

To enable autocompletion for a list or choice field simply replace the List respectively the Choice from zope.schema by the one provided in horae.autocomplete.fields:

System Message: WARNING/2 (<string>, line 22)

Literal block expected; none found.

from zope import interface, schema

from horae.autocomplete import fields

class ISampleSchema(interface.Interface): """ A schema using an autocomplete choice and list field """

choice = fields.AutocompleteChoice( values = (u'one', u'two', u'three',) )

list = fields.AutocompleteList( value_type = schema.Choice( values=(u'Tag 1', u'Tag 2', u'Tag 3',) ) )

The AutocompleteChoice field takes exactly the same parameters as the Choice field provided by zope.schema. The same is true for the AutocompleteList field which takes the same parameters as the List field of zope.schema with the only restriction that the value_type has to be either a Choice or TextLine field.

Advanced usage
Value providers

The available values presented to the user when entering a term into the field are provided by adapters implementing horae.autocomplete.interfaces.IValueProvider. There are default value providers already implemented which look up the available values based on the given input in the vocabulary of the field. This is done by iterating over the values in the vocabulary and check whether a value matches the given input. For very large or infinite vocabularies this is quite expensive or not possible at all. To efficiently support such vocabularies value providers may be overridden by registering a more specific adapter implementing horae.autocomplete.interfaces.IValueProvider. Those adapters are looked up in the following order where the first one found is used:

Named contextual provider A value provider adapting the context, field and request registered with the same name as the field Named uncontextual provider A value provider adapting the field and request registered with the same name as the field Contextual provider A value provider adapting the context, field and request Uncontextual provider A value provider adapting the field and request

Examples of custom value providers is found in the horae.search package which provides non iterable vocabularies and corresponding value providers which use full text search in a catalog to look up the available values based on the input.

Field providers

As mentioned in the previous chapter the value providers are adapters adapting at least the field and the request. To look up those providers the field needs to be looked up first. In most cases this is not an issue at all since the fields are defined by the schema of the form. But in some cases the field is placed in the form only when rendering it which would then require to render the whole form only to find the required field. To efficiently support this use-case the way how a field is looked up may be overridden by registering an adapter implementing horae.autocomplete.interfaces.IFieldProvider and adapting the context and request.

Changelog

1.0a1 (2012-01-16)
  • Initial release

Subscribe to package updates

Last updated Jan 17th, 2012

Download Stats

Last month:1

What does the lock icon mean?

Builds marked with a lock icon are only available via PyPM to users with a current ActivePython Business Edition subscription.

Need custom builds or support?

ActivePython Enterprise Edition guarantees priority access to technical support, indemnification, expert consulting and quality-assured language builds.

Plan on re-distributing ActivePython?

Get re-distribution rights and eliminate legal risks with ActivePython OEM Edition.