molly.apps.contact – Contact search

This application provides contact search functionality

Configuration

  • provider: the provider which provides contact search results

Sample:

Application('molly.apps.contact', 'contact', 'Contact search',
    provider = Provider('molly.apps.contact.providers.LDAPContactProvider'
                        url='ldap://ldap.mit.edu:389', base_dn='dc=mit,dc=edu'),
),

Providers

molly.apps.contact.providers.LDAPContactProvider

This queries an LDAP server for contact details. It takes three options:

  • url: The URL to the LDAP server to use
  • base_dn: The base DN to use when searching the LDAP tree
  • phone_prefix (optional, defaults to blank): A prefix to add to phone numbers, e.g., if your LDAP servers only store extension numbers, you can add the prefix to make it externally callable here (e.g., ‘+44190443’). This is not used when phone_formatter is set.
  • phone_formatter (optional, defaults to nothing): A custom “number formatter”. The option expects to have a callable (either a function defined elsewhere in your settings file, or a lambda defined there) which is called with the raw phone number from LDAP and is expected to return a normalised phone number. Use this is you need more advanced logic than the phone_prefix option can give you.
  • alphabetical (defaults to False): A boolean which indicates whether or not results from the LDAP server should be sorted alphabetically by surname.
  • query (defaults to ‘(sn={surname})’): This is the query which is passed to the LDAP server. It uses new style string formatting and has two fields available ‘forename’ and surname.

Writing Your Own Providers

A contact provider must inherit BaseContactProvider and expose the following interface:

Views

index

This view lives at the / URL of this app and is handled by molly.apps.contact.views.IndexView.

This view renders contact/index.html, providing the following context:

  • form: A form defined by the provider to use as the input for searching
  • medium_choices: A list of tuples, representing the different media the provider can search (e.g., phone book, e-mail address list), in the format specified by

There are no overridable blocks provided by this template, but the search form is rendered by the separate template contact/search_form.html

result_list

This view lives at results/ in this app and is handled by molly.apps.contact.views.ResultListView.

This view renders contact/result_list.html providing the following context:

  • form: The form used to perform the search
  • medium: The medium selected for this query
  • results: The list of results (as returned by molly.apps.contact.providers.BaseContactProvider.perform_query)
  • message: If set, any error messages generated in the search

There are no overridable blocks provided by this template, but each individual result is rendered by contact/result.html

result_detail

The view lives at results/:ID: in this app, and is handled by molly.apps.contact.views.ResultDetailView.

This view renders contact/result_detail.html providing the following context:

  • result: The result object (as returned by molly.apps.contact.providers.BaseContactProvider.perform_query to be rendered)

Project Versions

Table Of Contents

Previous topic

molly.wurfl – Device Detection

Next topic

molly.apps.desktop – Desktop

This Page