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