Details

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

      Description

      This functionality allows administrative users to add, edit and disable groups of custom fields (properties) for any type of Contact record. Custom fields always belong to a Custom Field Group. The admin interface consists of 2 screens with several modes:

      Background Info
      ---------------------
      The current schema supports independent definition of DATA structures
      vs. DISPLAY for custom fields.

      So DATA structures are:

      • ext_property_group
      • ext_property 1 (data type, validation, required?)
      • ext_property 2 (data type, validation, required?)

      DISPLAY/EDIT structures are:

      • form
      • form_builder item 1
      • form_builder item 2

      Form_builder items may be 'form fields' OR 'form groups' (a bunch of fields).

      Data Model for this implementation
      -----------------------------------------------
      Simplify for this implementation as follows:

      • 1 'form' = 1 ext_property_group (create and edit simultaneously)
      • form_style are is always 'tab'
      • 1 form_field = 1 ext_property (create and edit simultaneously)
      • form_field_types are hard-wired to ext prop data types
        EX: data_type = 'Date', field_type = date_select
      • form groups are not used for now, forms are built from 1:n form_fields

      So we have 4 interfaces:
      1. (Browse) Custom Forms (crm_form + crm_ext_property_group)
      2. Edit Custom Form
      3. Custom Fields (crm_form_field + crm_ext_property)
      4. Edit Custom Field

      1. Custom Forms (browse)
      Selector table with these columns:

      • Form Title
      • Description
      • Status ( active, disabled)
      • Used For ( value from crm_ext_property_group.extends enum - e.g. Individuals, Households, Organizations, Any Contact)
      • (actions column, no header label) : List Fields | Preview | Edit | Disable

      Link: New Custom Form.

      2. Edit Custom Form
      Fields are:

      • Form Title : crm_form.title (& crm_ext_property_group.title)
      • Description: crm_ext_property_group.description
      • Used For: crm_ext_property.extends (drop-down)
      • Help: crm_form.help_pre
      • Active: crm_form.is_active (& crm_ext_property_group.is_active)

      3. Custom Fields (browse)
      Selector table:

      • Field Label
      • Description
      • Data Type
      • Status
      • (actions column): Preview | Edit | Disable

      Link: New Custom Field

      4. Edit Custom Field
      Fields are:

      • Field Label: crm_form_field.title (& crm_ext_property.title)
      • Description: crm_ext_property.description
      • Data Type: crm_ext_property.data_type
      • Default Value:
      • Required?: crm_ext_property.is_required
      • Field Help: crm_form_field.help_post
      • Active: crm_form_field.is_active (& crm_ext_property.is_active)

      Notes:

      • on Save, insert/update crm_form_field AND ext_property records
      • validation_Id not used for now (no custom validations)
      • set crm_form_field.type based on selected data_type

      Data Type Field Type
      ------------- ----------------
      String Text
      Int Text
      Float Text
      Money Text
      Date Select Date
      Boolean Radio

      • data_type is read-only during Edit
      • checkboxes and drop-downs (and their 'options') not supported for this version

        Attachments

          Activity

            People

            • Assignee:
              yasheshb Yashesh Bhatia
              Reporter:
              dgg David Greenberg
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: