• Type: New Feature
    • Status: Done/Fixed
    • Priority: Major
    • Resolution: Fixed/Completed
    • Affects Version/s: 4.1.0
    • Fix Version/s: 4.1.0
    • Component/s: Core CiviCRM
    • Labels:


      Currently we do not allow multiple contact subtypes to be assigned to a contact, and we do not allow user to change a contact's subtype if the contact record has contact-type-specific custom data associated with it. This project should allow the user to assign more than one subtype, and to change subtype assignments.

      Implementation details

      • new contact form has select for contact subtype, change it to multi-select
      • in db save multiple contact subtype separated by CRM separator
      • also update custom data code to load custom data according to assigned contact subtype(s)
      • In profile change select to multi-select for contact subtype
      • allow change of subtype in Contact Edit form regardless of presence of associated custom data.
          • If custom data exists that is incompatible with updated contact subtype assignments we will need to delete those row(s) in custom_value_* table(s) after giving a warning and allowing user to cancel the operation. EXAMPLE: Contact subtype is currently 'Student' and the record has student-specific custom data. User changes subtype to 'Parent'. We'll need to check for this condition in postProcess. If there is data loss, we need to go to a confirm page prior to saving the update:

      "WARNING: If you save the requested change to the Contact Subtype(s) assigned to this contact, custom data in the following custom data set(s) will be deleted:

      • $customGroupTitle1
      • $customGroupTitle2 etc.

      Click Cancel to return to the edit form with saving this change, or click Continue to save your changes."

      DB changes

      • Currently "contact_sub_type" is varchar (64) change it to "text"
      • Add db changes to upgrade tpl




            • Assignee:
              dgg David Greenberg
              kurund Kurund Jalmi
            • Votes:
              0 Vote for this issue
              2 Start watching this issue


              • Created: