Introduce new `formal_title` field for contacts
authorOlaf Buddenhagen <antrik@digitalcourage.de>
Mon, 5 Aug 2013 10:47:05 +0000 (12:47 +0200)
committerOlaf Buddenhagen <antrik@digitalcourage.de>
Wed, 9 Oct 2013 10:13:11 +0000 (12:13 +0200)
commite171748b9a4b13b3024321bcccaa4a78d96ad057
treecdc566b1ed7d356f4095299acd8c5b7cb458140f
parent73d64eb695adbf17d25e1714226e519b4a6e155b
Introduce new `formal_title` field for contacts

For Individual contacts, add a Title field along with the other name
fields. This one sits between the Individual Prefix and First Name
fields, which is the right place for academic and other formal titles
(not only) in Germany.

It is a free-form text field, as there are way too many obscure titles
and possible combinations of titles for any kind of exhaustive option
list. Also, this field is generally not processed, but rather just
included verbatim wherever the name is used -- so there is no real need
for normalisation.

Note: The field is conditional in the templates, but it's added
unconditionally at PHP level in this commit. That's because we don't
know yet how to handle the configuration best. A followup commit
implements one possible variant for the configuration.

In the actual input form, the field is labled with just 'Title', as it
should be clear enough in this context that it's about a formal title;
and a shorter name seems more convenient... However, we are wondering
whether this doesn't introduce additional confusion?

This commit is mostly only covering the main contact screen. (And some
other generic bits, such as exportable fields etc.) There are various
other places dealing with name fields (especially for billing contacts
and honoree) -- each one implementing it individually (and thus rather
inconsistently...) in a hard-coded fashion. Adapting all of these will
be a crazy amount of work, so we are punting this for now...

(The Right Thing To Do (TM) probably would be implementing some central
name handling code to use everywhere.)

With this commit, the definition of the existing `prefix` field is also
slightly changed regarding the import heuristics, to reflect the fact
that titles are no longer supposed to be stored in the `prefix` field.
CRM/Contact/BAO/Contact.php
CRM/Contact/BAO/Individual.php
CRM/Contact/BAO/Query.php
CRM/Contact/Form/Edit/Individual.php
CRM/Upgrade/Incremental/sql/4.5.alpha1.mysql.tpl
CRM/Utils/Address.php
templates/CRM/Contact/Form/Edit/Individual.tpl
templates/CRM/Contact/Form/Inline/ContactName.tpl
xml/schema/Contact/Contact.xml