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.

 

Dynamic Watch List Feature

Previous Version

This is a previous version of the Ed-Fi Dashboards. Visit the Ed-Fi Tech Docs home page for a link to the current version, or the Ed-Fi Technology Version Index for links to all versions. 

The Dynamic Watch List feature is available for teachers who wish to view a listing of their students who meet selected conditions. The feature is similar to the Standard Watch List feature in that it produces a list of students, however, the process of selecting students is different. The Standard Watch List is created manually, with a teacher explicitly selecting students to put onto the list. As the name implies, the Dynamic Watch List is automatically created as a result of filtering by criteria set by a teacher. Once the criteria are set, the system dynamically produces a list of students who meet the specified criteria.

Using the Dynamic Watch List

This section provides detail on creating, editing, and sharing Dynamic Watch Lists in the Ed-Fi Dashboards.

Creating a Dynamic Watch List

The following is a set of step-by-step instructions for using the Dynamic Watch List feature in the dashboard UI. This walkthrough uses the Grand Bend ISD sample dataset distributed with the Ed-Fi Dashboard code.

A high-level overview of the steps is as follows:

Detail for each steps is provided below.

Step 1. Log In

Log into the Grand Bend ISD as Trent Newton (a Mathematics Teacher at Grand Bend High School). You should land on a page similar to the one below:

Step 2. Create a New List

Click Customize View. The following submenu appears:

Click Create Dynamic ListThe Dynamic Watch List Configuration screen appears:

Step 3. Configure the List

At this point you are ready to start configuring your Dynamic Watch List. The first step is to change the name of the Dynamic Watch List to something more meaningful. Click Change Name and enter a new name for your Dynamic Watch List. The Change Name screen appears:

Once you have selected a new name, click OK, which will return you to the main configuration screen.

Step 4. Select Students

As an example, we will create a list for male, 11th grade students, with Reading Assessments scores >40% and <75% correct. Start by selecting the appropriate filter criteria (Male, 11th Grade) from the “Student Information” tab.


As you select filter criteria, the student list will refresh applying the new criteria and the selected filters will be listed in the area above the “Save” and “Change Name” buttons.

Step 5. Select Metric Criteria

Once the “Student Information” filters have been selected, navigate to the “Assessments” tab.

On this tab, enter filter criteria for “Reading” to be >40% and <75% Correct and click Save button. The page will refresh and the new Dynamic Watch List will be present and selected in the “Student List” drop-down list:

The Dynamic Watch List is ready to be used.

Editing a Dynamic Watch List

To edit a Dynamic Watch List, make sure that the list is selected in the drop-down “Student List,” then click Customize View. The “Create Dynamic List” button will be replaced with a “Show Dynamic List” button. Click Show Dynamic List to edit your list.

Note that while editing your list, you also have the option to delete it. While in edit mode, click Customize View again. A “Delete Dynamic List” button appears that will perform the delete.

Sharing a Dynamic Watch List

You can share a Dynamic Watch Lists so other educators can use the same filters. You can allow a Dynamic Watch List to be shared as you are creating or editing the list. Check the “Share Dynamic List” check box and then save the Dynamic Watch List.

Once you have shared a Dynamic Watch List, other educators can search for it and create a copy of it for their use. To search for a shared Dynamic Watch List, select the “Customize View” menu and then click Shared List Search.

The following screen appears:

On the “Shared List Search” page, you will be presented with a drop-down list of staff members and their shared Dynamic Watch Lists. When you select a Dynamic Watch List you will see its description and the filters it contains.

To add the Dynamic Watch List to your account, click Add Dynamic List. This action will create a copy of the shared Dynamic Watch List complete with filters to your staff account. Since the new Dynamic Watch List is a copy, you can then modify the selected filters without having those changes propagate to the original shared Dynamic Watch List.

Technical Overview

Current Version

The Dynamic Watch List feature uses a series of LINQ statements to build lists. These LINQ statements are executed in the StudentMetricsProvider class. This class can be found under EdFi.Dashboards.Resources and is responsible for building the dataset required by a Dynamic Watch List. Worth noting is that this class also builds the standard student lists displayed throughout the dashboard.

public IQueryable<EnhancedStudentInformation> GetOrderedStudentList(StudentMetricsProviderQueryOptions providerQueryOptions, 
	MetadataColumn sortColumn = null, string sortDirection = "", int? schoolMetricStudentListMetricId = null)
{
	var query = ApplyQueryOptionsAndSecurity(EnhancedStudentInformationRepository.GetAll(), providerQueryOptions);
	return SortStudents(query, sortColumn, sortDirection, schoolMetricStudentListMetricId);
}

A view called “domain.EnhancedStudentInformation” presents a unified return type for the methods in the StudentMetricsProvider class.

CREATE VIEW [domain].[EnhancedStudentInformation] AS
SELECT
       [StudentInformation].[StudentUSI], 
       [StudentInformation].[LastSurname], 
       [StudentInformation].[FirstName], 
       [StudentInformation].[MiddleName], 
       [StudentInformation].[FullName], 
       [StudentInformation].[ProfileThumbnail], 
       [StudentInformation].[Gender], 
       [StudentInformation].[Race],
       [StudentInformation].[HispanicLatinoEthnicity], 
       [StudentSchoolInformation].[SchoolId], 
       [StudentSchoolInformation].[GradeLevel],
       CASE [StudentSchoolInformation].[GradeLevel]
        WHEN '1st Grade' THEN 1
        WHEN '2nd Grade' THEN 2
        WHEN '3rd Grade' THEN 3
        WHEN '4th Grade' THEN 4
        WHEN '5th Grade' THEN 5
        WHEN '6th Grade' THEN 6
        WHEN '7th Grade' THEN 7
        WHEN '8th Grade' THEN 8
        WHEN '9th Grade' THEN 9
        WHEN '10th Grade' THEN 10
        WHEN '11th Grade' THEN 11
        WHEN '12th Grade' THEN 12
        WHEN 'Postsecondary' THEN 13
        WHEN 'Early Education' THEN -3
        WHEN 'Infant/toddler' THEN -2
        WHEN 'Preschool/Prekindergarten' THEN -1
        WHEN 'Transitional Kindergarten' THEN 0
        WHEN 'Kindergarten' THEN 0
        WHEN 'Ungraded' THEN 14
        ELSE 15
       END AS [GradeLevelSortOrder],
       [StudentSchoolInformation].[LateEnrollment],
       [SchoolInformation].[Name] AS SchoolName,
       [SchoolInformation].[SchoolCategory],
       [SchoolInformation].[LocalEducationAgencyId]
FROM [domain].[StudentInformation]
INNER JOIN [domain].[StudentSchoolInformation]
  ON ([StudentInformation].[StudentUSI] = [StudentSchoolInformation].[StudentUSI])
INNER JOIN [domain].[SchoolInformation]
  ON ([StudentSchoolInformation].[SchoolId] = [SchoolInformation].[SchoolId])
GO

The Dynamic Watch List code then leverages this new StudentMetricProvider by defining additional filters that can be applied to the LINQ statements returning the student list data.

The UI elements of the Dynamic Watch List start with the EdFiGrid and EdFiGridMetricsBasedWatchList views. The EdFiGrid view defines the "Customize View" menu DIVs in which the EdFiGridMetricsBasedWatchList view is rendered.

The MetricsBasedWatchListDataProvider provides the view model that is passed to the EdFiGridMetricsBasedWatchList view. The provider constructs the filter options with a series of tabs and columns, which are provided to it by the TabFactory. The TabFactory defines the column construction, which creates a MetricsBasedWatchListTab object. 

The data interactions of the feature are governed by the MetricBasedWatchListService class. This class is responsible for taking the user selections and saving, updating, or deleting the new Dynamic Watch List.

Each Dynamic Watch List is saved in the Ed-Fi Application data store in three tables. The tables, along with data corresponding to the example list above, appear as follows:

MetricsBasedWatchList

Id

StaffUSI

EducationOrganizationId

WatchListName

WatchListDescription

IsWatchListShared

1        

207247

255901001

Sample List

A sample watch list.

FALSE


MetricBasedWatchListOption

MetricBasedWatchListOptionId

MetricBasedWatchListId

Name

Value

1

1

StaffUSI

207270

2

1

SchoolId

255901001

3

1

LocalEducationAgencyId

255901

4

1

PageController

GeneralOverview


MetricBasedWatchListSelectedOption

MetricBasedWatchListSelectedOptionId

MetricBasedWatchListId

Name

Value

1

1

gender

male

2

1

grade

11th Grade

3

1

assessment-1232

40-to-75


These options correspond to the example above of all males in the 11th grade who have “Reading” assessment to be “>40% and <75% Correct”.

The diagram below shows the relationships between the three tables.

Adding the Dynamic Watch List Feature to Previous Dashboard Versions

The Dynamic Watch List features can be added to previous versions of the Ed-Fi Dashboards. 

Upgrading from Dashboard Code v1.2 and Earlier

The StudentList database view was removed as of Dashboards v1.3. When using it you will need to remove the code for any extension.StudentList views and the post-load steps that materialize them.

  • If the extension was present solely to display additional metrics, those metrics should now be present without requiring an extension. 
  • For nonmetric columns, the extension will have to re-extend the code to support those new columns.
  • All PagingProviders were removed as of Dashboards v1.3 (StudentDemographicPagingProvider, StudentGradeListPagingProvider, StudentListPagingProvider, StudentMetricPagingProvider, StudentSchoolCategoryListPagingProvider).
  • When using it you will need to remove the code for any extension PagingProviders and, if needed, re-extend the Metrics-based Watch List for the extension functionality. 

Upgrading from Dashboard Code v1.3, v1.3.0.1, v.1.3.1

The MetricsBasedWatchListTabsProvider was removed as of Dashboards v1.3.2 and replaced with TabFactory.

  • Any code for extensions of the MetricsBasedWatchListTabsProvider will need to be removed and the TabFactory extended as needed.
  • In the ListMetadataProvider, a UniqueIdentifier of -7(SpecialMetricVariantSortingIds.SchoolMetricStudentList) has been added to remove the ambiguity between -4 (Designations) and StudentMetricStudentList value. Previously, -4 (Designations, was used for both of these cases). 
  • Everywhere where -4 (Designations) was used to represent the StudentMetricStudentList case, the UniqueIdentifer was switched to -7. 
  • To fix in extensions, search in all extended ListMetatdataProviders for "Metric Value" and change the value for UniqueIdentifier and MetricVariantId to SpecialMetricVariantSortingIds.SchoolMetricStudentList. 
  • If an implementation is using DatabaseListMetadataProvider, the source data needs to be changed to -7 in cases where it currently has a value of -4 and is in the StudentMetricStudentList case.