collective.contact.core and
  collective.contact.widget :
Contact Management for Plone

 Cédric Messiant (Ecréall),PLOG 2013
     cedricmessiant@ecreall.com
  https://github.com/cedricmessiant
self.context
➢
 Common need for 2 Belgian institutions : mail
handling system
➢
    3 days sprint in Brussels in december 2012
➢
    People involved :
    ➢
        Gauthier Bastien (IMIO)
    ➢
        Stephan Geulette (IMIO)
    ➢
        Vincent Fretin (Ecréall)
    ➢
        Cédric Messiant (Ecréall)
    ➢
        Frédéric Peters (Entrouvert)
PLOG 2013 – collective.contact.* – Cédric Messiant   2/15
Why a new product ?


➢
    Dexterity
➢
 Create independent modules usable with
other contact products : separate content
types, vcard export and user interface
➢
    Our « vision » of the notion of contact



PLOG 2013 – collective.contact.* – Cédric Messiant   3/15
The general idea

➢
  The organization chart of a company or
institution changes little
➢
    The people in this organization change often
➢
  In a professional context, we want to send
a mail to the company CEO, not to John Doe
➢
 We want to define the organization chart
and attach people to it

PLOG 2013 – collective.contact.* – Cédric Messiant   4/15
Content types


➢
    Directory
➢
    Organization                            The organization chart
➢
    Position
➢
    Person
➢
    Held position                      links between persons
                                       and organization chart


PLOG 2013 – collective.contact.* – Cédric Messiant                   5/15
Content types : directory
➢
 Defines the available organization types,
organizations levels and position types, contains
persons and « root » organizations
➢
    Example : the military
    ➢
        organization types : navy, army, air force
    ➢
         organizations levels : corps, division, company,
        regiment, squad, …
    ➢
        position types : general, sergeant, colonel, captain,
        admiral, ...
PLOG 2013 – collective.contact.* – Cédric Messiant              6/15
Content types : organization
                               Foobar's army

                    Corps A                          Corps B
                                corps                          corps


                                                           TR division
Alpha company                  Beta company                              division
                    company                      company




LH squad               G squad
            squad                 squad



PLOG 2013 – collective.contact.* – Cédric Messiant                                  7/15
Content types : position
                               Foobar's army                  Army general


                   Corps A                           Corps B

                                                           TR division
Alpha company                  Beta company

                              Alpha division's captain


LH squad               G squad
                                                     G squad's sergeant

                   LH squad's sergeant                G squad's scout

PLOG 2013 – collective.contact.* – Cédric Messiant                           8/15
Content types : person




PLOG 2013 – collective.contact.* – Cédric Messiant   9/15
Content types : held position
                           Foobar's army                   Army general


                      Corps A                                             From 5/25/1940
                                                                          to 11/9/1945


  Alpha company                Alpha division's captain

                                            G squad's sergeant
                     G squad
LH squad                                     G squad's scout


                         LH squad's sergeant


                                                      From 6/1/1962
                                                      to 1/6/1967



 PLOG 2013 – collective.contact.* – Cédric Messiant                             10/15
Content types : held position
                                Foobar's army                  Army general


                          Corps A                                                 From 6/1/2011
                                                                                  to ?



  Alpha company                Alpha division's captain

                                            G squad's sergeant        From 8/3/2011
                     G squad                                          to ?

LH squad                                     G squad's scout

                            LH squad's sergeant



                                                          From 11/11/2009
                                                          To 11/12/2013


 PLOG 2013 – collective.contact.* – Cédric Messiant                                     11/15
collective.contact.widget

➢
  Anyone should be able to add a contact when
he needs it
➢
    We don't want doubles in the directory
➢
 Encourage the user to search in the directory
before to add a new contact
➢
    A widget to ease the use of contacts
➢
    Demo

PLOG 2013 – collective.contact.* – Cédric Messiant   12/15
More

➢
 Contact information dexterity behavior : phone
numbers, address, email, … (used for person,
organization and position content types)
➢
    VCard export
              BEGIN:VCARD
              VERSION:3.0
              ADR:6bis;bâtiment D;rue Jean Moulin;Colombey les deux églises;;52330;Fra
               nce
              BDAY:1901­11­22
              EMAIL;TYPE=INTERNET:charles.de.gaulle@armees.fr
              FN:Charles De Gaulle
              N:De Gaulle;Charles;;Général;
              ORG:Armée de terre
              ROLE:Général de l'armée de terre
              TITLE:Général de l'armée de terre
              END:VCARD




PLOG 2013 – collective.contact.* – Cédric Messiant                                       13/15
from __future__ import
                     collective.contact.*
➢
    Enhance views for most content types :
    ➢
        eea.facetednavigation for directory
    ➢
        Show full tree on organization
    ➢
        Show held position links on organization and
        position
➢
    Use contacts from LDAP and PostgreSQL
➢
    VCard mass export

PLOG 2013 – collective.contact.* – Cédric Messiant     14/15
Thank you

  Vincent Fretin : vincentfretin@ecreall.com
  Cédric Messiant : cedricmessiant@ecreall.com


     https://www.github.com/collective/collective.contact.core
    https://www.github.com/collective/collective.contact.widget




PLOG 2013 – collective.contact.* – Cédric Messiant                15/15

collective.contact.core and collective.contact.widget : Contact management for Plone

  • 1.
    collective.contact.core and collective.contact.widget : Contact Management for Plone Cédric Messiant (Ecréall),PLOG 2013 cedricmessiant@ecreall.com https://github.com/cedricmessiant
  • 2.
    self.context ➢ Common needfor 2 Belgian institutions : mail handling system ➢ 3 days sprint in Brussels in december 2012 ➢ People involved : ➢ Gauthier Bastien (IMIO) ➢ Stephan Geulette (IMIO) ➢ Vincent Fretin (Ecréall) ➢ Cédric Messiant (Ecréall) ➢ Frédéric Peters (Entrouvert) PLOG 2013 – collective.contact.* – Cédric Messiant 2/15
  • 3.
    Why a newproduct ? ➢ Dexterity ➢ Create independent modules usable with other contact products : separate content types, vcard export and user interface ➢ Our « vision » of the notion of contact PLOG 2013 – collective.contact.* – Cédric Messiant 3/15
  • 4.
    The general idea ➢ The organization chart of a company or institution changes little ➢ The people in this organization change often ➢ In a professional context, we want to send a mail to the company CEO, not to John Doe ➢ We want to define the organization chart and attach people to it PLOG 2013 – collective.contact.* – Cédric Messiant 4/15
  • 5.
    Content types ➢ Directory ➢ Organization The organization chart ➢ Position ➢ Person ➢ Held position links between persons and organization chart PLOG 2013 – collective.contact.* – Cédric Messiant 5/15
  • 6.
    Content types :directory ➢ Defines the available organization types, organizations levels and position types, contains persons and « root » organizations ➢ Example : the military ➢ organization types : navy, army, air force ➢ organizations levels : corps, division, company, regiment, squad, … ➢ position types : general, sergeant, colonel, captain, admiral, ... PLOG 2013 – collective.contact.* – Cédric Messiant 6/15
  • 7.
    Content types :organization Foobar's army Corps A Corps B corps corps TR division Alpha company Beta company division company company LH squad G squad squad squad PLOG 2013 – collective.contact.* – Cédric Messiant 7/15
  • 8.
    Content types :position Foobar's army Army general Corps A Corps B TR division Alpha company Beta company Alpha division's captain LH squad G squad G squad's sergeant LH squad's sergeant G squad's scout PLOG 2013 – collective.contact.* – Cédric Messiant 8/15
  • 9.
    Content types :person PLOG 2013 – collective.contact.* – Cédric Messiant 9/15
  • 10.
    Content types :held position Foobar's army Army general Corps A From 5/25/1940 to 11/9/1945 Alpha company Alpha division's captain G squad's sergeant G squad LH squad G squad's scout LH squad's sergeant From 6/1/1962 to 1/6/1967 PLOG 2013 – collective.contact.* – Cédric Messiant 10/15
  • 11.
    Content types :held position Foobar's army Army general Corps A From 6/1/2011 to ? Alpha company Alpha division's captain G squad's sergeant From 8/3/2011 G squad to ? LH squad G squad's scout LH squad's sergeant From 11/11/2009 To 11/12/2013 PLOG 2013 – collective.contact.* – Cédric Messiant 11/15
  • 12.
    collective.contact.widget ➢ Anyoneshould be able to add a contact when he needs it ➢ We don't want doubles in the directory ➢ Encourage the user to search in the directory before to add a new contact ➢ A widget to ease the use of contacts ➢ Demo PLOG 2013 – collective.contact.* – Cédric Messiant 12/15
  • 13.
    More ➢ Contact informationdexterity behavior : phone numbers, address, email, … (used for person, organization and position content types) ➢ VCard export BEGIN:VCARD VERSION:3.0 ADR:6bis;bâtiment D;rue Jean Moulin;Colombey les deux églises;;52330;Fra  nce BDAY:1901­11­22 EMAIL;TYPE=INTERNET:charles.de.gaulle@armees.fr FN:Charles De Gaulle N:De Gaulle;Charles;;Général; ORG:Armée de terre ROLE:Général de l'armée de terre TITLE:Général de l'armée de terre END:VCARD PLOG 2013 – collective.contact.* – Cédric Messiant 13/15
  • 14.
    from __future__ import collective.contact.* ➢ Enhance views for most content types : ➢ eea.facetednavigation for directory ➢ Show full tree on organization ➢ Show held position links on organization and position ➢ Use contacts from LDAP and PostgreSQL ➢ VCard mass export PLOG 2013 – collective.contact.* – Cédric Messiant 14/15
  • 15.
    Thank you Vincent Fretin : vincentfretin@ecreall.com Cédric Messiant : cedricmessiant@ecreall.com https://www.github.com/collective/collective.contact.core https://www.github.com/collective/collective.contact.widget PLOG 2013 – collective.contact.* – Cédric Messiant 15/15