This version of the Ed-Fi Dashboards is no longer supported. See the Ed-Fi Technology Version Index for a link to the latest version.

 

Walkthrough Example: Adding Custom Grade Level Descriptors

 

Note: The information on this page applies to using the Ed-Fi Dashboards with the Ed-Fi ODS v1.2 and earlier. Users of the Ed-Fi ODS / API v2.0 should refer to that product's documentation, particularly, e.g., the Extensibility and Customization section of the Ed-Fi ODS / API Platform Developers' Guide.

Overview


This section provides a step-by-step walkthrough of extending the Ed-Fi Descriptors using Grade Levels as an example. 

The steps can be summarized as follows:

Adding New Types and New Descriptor values

Step 1: Prepare the Descriptor Data

  • Create a new Import Ed-Fi Extension Types Data.xls spreadsheet, if no extension spreadsheet exists.
  • Add a new sheet representing the specific type that is needed and add necessary information for the new type ([DescriptorName]TypeId, CodeValue, and Description).

In this example, we'll add a new GradeLevelType value "Birth to 2 years" to GradeLevelType sheet of Import Extension Types Data.xls. The new GradeLevelTypeId must be consistent with GradeLevelTypeIds that already exist. Do not duplicate GradeLevelTypeIds.

Step 2: Create and Configure the Extension Type SSIS Package

  • Create a new import Ed-Fi Extension Types.dtsx package, if no extension package exist.
  • Create the Excel source component and connect to newly created Extension type spreadsheet to populate the specific type table with new values.
  • Create a new OLEDB Destination component and connect to the respective EdFi database.
  • Insert into the specific type table that is needed.
  • Connect the pipeline from the Excel source to the destination component.

Step 3: Prepare the Detailed Descriptor Data

  • Create a new import Ed-Fi Extension Descriptors.Data.xls spreadsheet, if no extension descriptor spreadsheet exists.
  • Add the new descriptor information and value to the Descriptor sheet.
  • Add the new Descriptor Id, and other specific id and type id to the specific sheet.

In this example, we'll add a new Descriptor "Birth to 2 years" to the Descriptor sheet of Import Ed-Fi Extension Descriptor Data.xls. The new DescriptorId must be consistent with DescriptorIds that already exist. Do not duplicate DescriptorIds.

In this example, we'll also need to add a reference to the “Birth to 2 years” value to the GradeLevelDescriptor sheet of Import Ed-Fi Extension Descriptor Data.xls. The new GradeLevelDescriptorId must be consistent with GradeLevelDescriptorIds that already exist. Do not duplicate GradeLevelDescriptorIds.

The GradeLevelTypeId added to the GradeLevelDescriptor sheet must be the same as the new GradeLevelTypeId added to the GradelevelType sheet of the Import Ed-Fi Extension types.data.xls to allow the “Birth to 2 years” value to be inserted into dashboard data store and to display on the DashboardUI.

The CodeValue for the descriptor added to the descriptor spreadsheet must be consecutive with the last codevalue in the descriptor table for that specific namespace, i.e., "http://www.edfi.org/Descriptor/GradeLevelDescriptor.xml". The GradeLevelDescriptors needed to display on the UI must be mapped to the corresponding GradeLevelTypeId.

Step 4: Create and Configure the Extension Descriptors SSIS Package

  • Create a new import Ed-Fi Extension Descriptors.dtsx package, if no extension descriptor package exist.
  • Create the Excel source component and connect to newly created Extension descriptor spreadsheet, descriptor sheet to populate the descriptor table with new values.
  • Create a new OLEDB Destination component and connect to the respective EdFi database.
  • Insert into the edfi.descriptor table.
  • Connect the pipeline from the excel source to the destination component.
  • Repeat steps a through d for the specific descriptor that needs to be inserted.

Step 5: Confirm Details

  • Ensure that both speadsheets created are in the same format as the import types and descriptor spreadsheet.
  • Ensure that the newly create packages are set to run in 32-bit mode.

    The steps above results in a new value, Birth to 2 Years, for Grade Level Type.

Step 6: Update the Dashboard UI

  • Update sorting and translation code in the EdFi.Dashboard.Resources project's StudentSchool folder to account for the new value.
  • Update the sorting of Grade Levels and translation of Grade Levels into Short Descriptions that are hard-coded in the GradeLevelUtilitiesProvider.FormatGradeLevelForSorting and FormatGradeLevelForDisplay.
  • Update sorting code in the EdFi.Dashboards.Data project's Repository folder.
  • Update the additional hard-coded Grade Level sorting in the PageRepository.DefaultOrder function.

The steps above will enable the Ed-Fi Dashboards UI to support the new Ed-Fi Descriptor value.