Uploaded image for project: 'CiviCRM'
  1. CiviCRM
  2. CRM-377

Export - Include All Contact Properties in CSV Output


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


      Currently, only the contact properties displayed on the Contact Selector are included in the export csv output. We need to provide folks with the ability to export all core and custom contact properties as a flat file structure.

      For this implementation - we'll assume that the 'exportable' field set is the same as the currently specified 'importable' fields.

      We'll give the user the choice of exporting ALL AVAILABLE fields, or selecting which fields to include in which order.

      1. When user clicks export button, display a 'task' screen (rather than immediately returning the csv download - as done in 1.1).

      2. Task screen contains standard status info: "126 records selected for export" plus a form:
      2.1 On initial display form contains radio button and submit button
      [ ] Export ALL contact fields
      [ ] Select fields for export

      [ Continue ]

      2.2 Export ALL is checked by default

      2.3 If user clicks Continue, all available (exportable) contact properties are included in export structure (see below).

      2.4 If user checks 'Select fields for export' - we give them a set of 'n' fields to map columns for the export (behaviors are pretty much the same as the Import Map Fields screen) :

      • Display div with 'n' <select> elements arrayed vertically - where 'n' is a get parameter controlling the number of columns/selector elements for the export. Default on initial page load = 10.
      • Each <select> element contains the full list of exportable properties for all 3 contact types. Contact type specific properties should be grouped up front with a null option value separator label > " individual fields ", " organization fields ", " household fields ", " fields for all contact types - " Custom fields are included in the options list (same as import mapping)
      • User selects properties to be included by choosing an option value for each <select> element.
      • Implement hierarchical selects as needed for location properties - same behavior as for import. For example, if user selects Street Address property, a location type <select> is displayed adjacent.
      • Provide a link at top and bottom which reloads the page with additional 10 export mapping elements: ">> Give me more columns" (using the get parameter)

      3. Output for 'Export ALL' case:
      Aggregate all possible contact properties and generate header + data rows:

      • Include columns for each set of contact-type specific fields and definitely separate First, Middle, Last Names into 3 columns.
      • Support multiple locations for each contact in sets of sequential columns with primary location first and location_type label as first element. Use the variable which currently controls max instances of locations to control number of sets. EXAMPLE (for current config which supports 2 locations max):

      Primary Location Street Address City.... Other Location Street Address City ...
      ---------------------- ------------------- --------- -------------------- -------------------- -------
      Home 33 Main St San Mateo Work 1 Main St. San Jose

      • Support multiple phone and email - primary first for each location - columns repeat for max instances as for locations
      • Support export of custom field data. Since export file may contain all 3 contact types, we'll need to include columns for all available (active) custom fields. Use custom group: custom field title for column headers.




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


              • Created: