Android Task List View Filter, Search, Sort

This scoping document defines the features required to deliver core filter, search and sort functionality in the Android Task list view. The Task list view presents a list of tasks sorted by geographic distance from the user. The task list view is used by users to sort and filter through tasks without spatial awareness. Users use this view to access different types of tasks (i.e BCC, Case confirmation) at varying levels (operational area, structure, family) and to directly jump into family interactions. Each Reveal product presents a core set of information in the task list view, but implementations have the capability to customize what family information is displayed.

Description of List View

The task list view has two columns, the task information column (left) and the task status column (right). The task information column presents the information about the task that is present. The following information is presented to the user in this column:

  • Task Code (BCC, Case Confirmation, Larval Dipping, etc)

  • Family Name and house number (if a task that’s assigned to a residential structure)

  • Distance from the user

The task status column presents a button that shows the color coded status of that task. If there are multiple tasks assigned to a family, tasks are grouped and the button directs to the family module. These buttons are action buttons.

Definitions of Filter, Search, Sort

We need to define how we want to filter, search and sort this view. This section defines the terms for reference.

Filter - A filter hides rows from the view that do not fit the filter criteria. Filter criteria are predefined and, likely, available in a combination.

Search - A search allows the user to type information into a box. A search is ad hoc and evaluates against all available fields. A search removes rows from the view that do not fit the search criteria. Search is most often used for quickly identifying fields that are typed in such as names and household numbers.

Sort - A sort is the process of retaining all information on the view, but presenting it in a different arrangement. The default source for the task list view is distance from the user.

State and Support for Combinations

We need to determine the level of support for the user to use a combination of these three features within a single view. In other words, should we support the ability to filter multiple fields, or just one. Then, at a larger scale, should we support searching or sorting on a view that is already filtered? No matter what we do, it’s appropriate to think of the filtered list as having state while the user is interacting with the view. Every time the user enters the view, they will be presented with the complete list of tasks. It is their responsibility to use these features and we must present a simple way to return to the base state of displaying all tasks by removing filters, and searches.

Filter Fields

This section defines the fields that need to be made available to filter.

Task Data Model

  • Business Status - (Label Status)

  • Code - Label: Type

  • (Beyond MVP)

    • executionStartDate

    • executionEndDate

    • owner

Intervention Unit (Not currently in the task data model)

  • Select multiple

    • Operational Area

    • Structure

    • Family

    • Person

Search Fields

This section defines the fields that need to be made available to search.

Task Information Column

  • Name as presented in the column (i.e. Dane Household)

  • House number

Family Module Information

  • First Name

  • Last Name

  • Household Name

Sort Fields

This section defines the fields that should be sorted on.

Task Data Model

  • Business Status - (Label Status)

  • Code - Label: Type

Business Logic For List View Behaviour

The following business logic should apply.

  1. Filtering removes rows that do not meet the filter criteria

  2. Searching removes rows from the view that do not meet the search criteria

  3. Sorting does not remove rows. It sorts rows based on the sort criteria

  4. Case Confirmation tasks always stay at top in a focus investigation

  5. When there are multiple tasks on a structure they are grouped. This should be the default behaviour.

    1. However, filtering and searching does break the group up. To put it another way, if you filter by intervention unit = Person, groups are no longer displayed. Individual tasks are displayed and users can directly enter the form.

      1. In some cases, users have the ability to edit tasks that are already complete

        1. (@Samuel Githengi , I need help figuring out what to do in this situation)

        2. Discussion:

          1. When searching for family or person level tasks, we need a way to display that that task is associated with the family

          2. Feature: We should have rules around editing complete tasks.

            1. It would be valuable to add rules like this either on the task data model or the plan.

          3. Feature: We need to figure out the association between

  6. Filters, Sorts and Searches do not persist after the user leaves the view

Design

This section will be completed in conjunction with the Ona design team.

To be designed:

  • Search View

  • Filter View