Skip to main content

A list of people, optionally organized by organisations and positions.

Project description

Municiaplities for which we contribute to OneGov often require a public list of contacts. For the customers and us this package needs to scratch the following itches:

  • The directory must not force a set of fields on the user. Each customer should have the option to create its own set of fields. At the same time there should be at least one reasonable standard.

  • Some fields should only be visible with certain permissions.

  • It must be possible to put people into various organisations and show the membership of those organisations.

Design

This is how it is done:

  • We give the user the possiblity to define a list of people. Each list consists of a number of dexterity objects with IPerson behavior. Within one list only one dexterity type is allowed.

  • This list of people is the same for all lists of people - it’s just that the contained people must all have the same type.

  • Through the schema of the dexterity type we define the fields, their required read and write permissions, the fields shown in the list, the order of those fields, the fields available for filtering in the list, and the fields shown in the detail view.

  • These dexterity types may be installed by any package or they may be included in seantis.people, available through separate profiles. (It’s technically even possible to create them through the web, but we don’t recommend this approach for various reasons.)

  • Any folderish type can be an organization. For people to be members of an organization, a membership type can be added to such a folderish type. This membership type links to the actual person object.

  • We identify the organization solely by url and title. This makes organisations very flexible. For example, with seantis.cover.people we implemented organisations using collective.cover.

Installation & Usage

To see what it’s all about install seantis.people using buildout (we assume you know how to do that) and activate the add-on using the controlpanel.

Note that we don’t provide any styling for seantis.people. We build on plonetheme.onegov and try to keep our HTML as simple as possible.

Having installed seantis.people be sure to open the seantis.people controlpanel found on the plone contrlpanel (under “Add-on Configuration”).

There you can select the Person type you would like to use. Currently this will without a doubt be “Seantis People - Standard”. To use it, click “Install”:

Controlpanel Screenshot

Having done that, go to the front-page or to wherever you want to place a list of people and add them:

Add List of People Screenshot

On the people’s list you can now add people. You can only add people of the same type together on the same list:

Add Contact Screenshot

Going back to the list you will notice that this person does not belong to an organisation. To add a person to an organisation you can simply create a folder with the name of the organisation as its title:

Add Folder Screenshot

Finally, add the person to the organisation by creating a membership and referncing the person:

Add Folder Screenshot

Your list of people should now look something like this:

Add Folder Screenshot

Status

Seantis.people is used in production already. Though it’s one of our newer modules so it hasn’t been as battle tested as some of our other offerings.

Once we feel perfectly confident about this you’ll see an 1.0 release.

Alternatives

Close to our requirements (but no cigar): https://github.com/collective/collective.contact.core

Requirements

  • Python 2.7

  • Plone 4.3+

  • Linux / Posix ( Windows may or may not work )

Build Status

Build Status

Coverage

Project Coverage

Latests PyPI Release

Latest PyPI Release

License

seantis.people is released under GPL v2

Contributors

  • Denis Krienbühl [href]

Changelog

0.21 (2014-10-24)

  • Adds a renderer for decimal numbers. [href]

  • Add a type css body class to the list view that contains the used type of the list (if any). [href]

  • List fields can now be rendered using ‘comma-separated’ (default) or ‘ul’, the latter creates a ul in html. [href]

  • Adds the ability to define render options on the list and detail view. [href]

  • Adds support for Set Choices and List Textlines in the import. [href]

  • Adds renderer for Bool field type. [href]

0.20 (2014-10-09)

  • Adds a permanent work-around for the long standing issue #10. [href]

  • Makes sure that the persons are only available on the list of people. [href]

0.19 (2014-06-24)

  • Adds a navigation bar to the person detail view. Fixes #17. [href]

  • The export now also works with richtext fields. Fixes #18. [href]

0.18 (2014-05-08)

  • Adds the ability to do an unrestricted search on the people’s list. [href]

0.17 (2014-03-31)

  • Adds support for url, date and datetime fields to the import. [href]

  • Adds the ability to export people to csv, xls, xlsx or json. [href]

  • Adds ‘is_active_person’ property which if present and False hides the given person from the person list for anonymous users. [href]

  • Removes start/end on memberships. This module will no longer deal with memberships over time. Where this is required, external modules like seantis.kantonsrat have to do this themselves. [href]

  • Images on the people’s list are rendered smaller and in the detail view they are rendered larger. Renderes now have custom options for this case. [href]

  • Adds the ability to define custom titles on the person. Currently the custom title is only relevant for the detail view. To use add a custom_titles dictionary to the person object with the key being the field anme and the value being the title that should be used in the detail view. [href]

  • Adds a new LinkList type which may be used returned by person attributes. The link list will be rendered using ul > li > a. [href]

  • Organization memberships are now queried by interface in the ZODB, rather than by portal_type to support inheritance.

  • Changes membership id/title to include the role as well as the name of the referenced person. Closes #13. [href]

  • Fixes a crash when viewing a public directory with private organisations. Closes #12. [href]

  • Adds a note field to the membership. [href]

  • Adds the ability to define the years_range for plone.formwidget.datetime widgets used in the schemas. Fixes #11. [href]

0.16 (2013-12-31)

  • Fixes a number of issues with zodb membership source. [href]

  • Adds the ability to define custom membership functions on the detail view. [href]

  • Adds the ability to define custom compound columns in other packages. [href]

  • Adds missing profile dependencies for membership type. [href]

  • Hides start/end on memberships, until it is properly implemented. [href]

0.15

  • Adds very basic json export people list. [href]

0.14

  • Adds the ability to import images through urls. [href]

  • Organizations defined through memberships are now clickable in the list view. This is the default in the standard type. [href]

  • Adds a standard profile which is more or less compatible with egov.contactdirectory. Fixes #6. [href]

  • Rename responsive-table to responsive to be compatible with latest plonetheme.onegov release. [href]

  • Adds custom event to signal changes in memberships. [href]

  • Updates German translation. [href]

0.13

  • Adds the ability to install and upgrade profiles with custom people types. This can be done using the new seantis people controlpanel. [href]

  • Removes import action from PHZ type. [href]

  • Renames PHZ to PH Zug. [href]

  • Ensures that imported strings are stripped of their whitespace in front and at the end. [href]

  • Redirect to person list after succesful import. [href]

  • Fixes required fields error not showing up on import. [href]

0.12

  • PHZ portrait should be optional. [href]

0.11

  • Supports new responsive-table helper in plonetheme.onegov. [href]

  • Hides first-/lastname on PHZ detail view. [href]

  • Adds link to a detailed portrait of the employee for the PHZ. [href]

0.10

  • Changes German translation of “Organisation Unit 2” for PHZ. [href]

0.9

  • Adds membership rendering to detail view. [href]

0.8

  • Adds collective.cover support as an extra [href]

  • Memberships can now be defined dynamically through the MembershipSource adapter. [href]

0.7

  • Hide label of images in the detail view. [href]

  • Adds rendering support for these field types: Text, RichText, Lists. [href]

  • Adds custom type for Pädagogische Hochschule Zug. [href]

  • Adds ability to filter attributes returning lists in the table. [href]

  • Adds ability to use custom titles on columns. [href]

0.6

  • Adds detail view with configurable positioning through schema attributes. [href]

  • Fixes not showing the selected filter after a refresh. [href]

0.5

  • Supports supermodel security permissions in the people’s list (giving the ability to hide certain fields in the table depending on the user). [href]

  • Fixes filter.js being unable to filter for empty values. [href]

0.4

  • Ensures that the title is updated when the object is modified. [href]

  • The first letters are now taken from the sorted title. [href]

  • The title attributes order is now independent of the field order. [href]

  • Fixes a number of unicode issues. [href]

0.3

(skipped by accident)

0.2

  • People are now sorted by unicode collation. [href]

  • The people can be filtered by the first litter of the title. [href]

0.1

  • Initial release. [href]

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

seantis.people-0.21.tar.gz (69.2 kB view hashes)

Uploaded Source

Supported by

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