Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Notification Attributes

This is not a complete listan incomplete list of attributes that notifications should have. It does NOT describe the architecture of how these attributes should be stored or related.

Attribute

Data type

Entered / modified at…

Required?

Example data

Notes

Title

String

Entered at creation, immutable

YesPlanting

“New task assignment”

See above. Also needs to support custom task types

Body

String

Entered at creation, immutable

YesPlanned, Late, For review, Completed, Abandoned

“A planting task has been assigned to you.”

Assigned via actions rather than being editable via the UI

Icon

Asset

Determined by initiating process

Yes

Image Added

Notification art for the Notification Centre will be defined based on the process that generates the notification. In many cases, this will be based on the reference to the notifying object, e.g.:

  • If a task, show the task type icon for that task

  • If a location, show a generic location icon

  • If a user, show a generic person icon

  • etc.

Reference to notifying object

Ref: Record_id

Entered at creation, immutable

No

  • See “Take me there” in detail view above for an example

  • This reference will also serve as the foundation for “related notifications” and threading on the notification detail page described below

Notification scope

Enum

Entered at creation, immutable

Yes

  • Defaults to “farm-wide” unless provided

  • To start with, notifications can either be for a specific user or for all users at a farm

  • Implementation should leave the door open for role based, access-based (e.g. extension worker), and all users at all farms

Base model attributes

Implements https://lite-farm.atlassian.net/browse/LF-294

  • CreateByUserId = null

  • OwnerUserId = null

  • AssigneeUserId = null

Alert

Bool

Entered at creation

Modified when viewing Set to FALSE when a user views the notification centre

True or false

A notification is Alert = TRUE when it is created and become FALSE when the user views the notification centre (but not necessarily the notification detail). The alert, describes where the “bell” on the status bar should have a red dot or not.

Status

Enum

Entered at creation

Modified when viewing the notification detail or a user applies a new status

“Unread”

  • Defaults to “Unread”

  • Other valid values: {“Read”, “Archived”}

Base model attributes

Implements https://lite-farm.atlassian.net/browse/LF-294

  • CreateByUserId = null

  • OwnerUserId = null

  • AssigneeUserId = null

Notification threading

There are some cases where a notification has been posted, and before being viewed becomes irrelevant or less relevant. For example, a user may be assigned a task and then that task is deleted or re-assigned. To this point, some sort of “notification stack” make sure the user is presented with the most relevant and timely notifications for a particular thing, we need to keep track of a thread for each referenced object, would be helpful. With acknowledgement of our key attributes of timeliness and brevity, this stack should be:

...

One visual example of how we could show this threading is shown below:

...

For an edge case where a task has been changed many times:

...

Note our focus on pushing the user towards the most timely notification if they are looking at an older notification for a particular notification thread.

Thoughts on pagination

We may or may not need to support pagination with notifications. One argument against implementing a pagination strategy would be that notifications are only valuable when recent and quickly become stale. In this case, we could likely get away with the idea of only returning the X most recent notifications. However, this would hamper future implementation of searching and filtering.

Answered questions

...

questions

Q: What clickable actions on can happen from the notifications tile?

A: https://lite-farm.atlassian.net/browse/LF-2150

Q: How do you mark something When is a notification marked read?

A:

Notification types?

  • Change in task

  • Task assigned to you

  • Task you created assigned to someone else

  • Task (you created) completed

Types of filters:

  • Tasks

  • Irrigation

  • Observations (future?)

  • Crop

  • Location

  • People

  • Weather

Status:

  • Alert: Has the dot, disapears when the notification centre is opened

  • Unread

  • Read:

  • Archived:

Notification settings:

Actions for notifications:

  • Nothing

  • Mark as read

  • See detail (modal)

  • Jump to contextual object

Views:

  • Notification preview (card)

  • Notification detail (modal)

...

When it has been viewed by navigating to the https://lite-farm.atlassian.net/browse/LF-2150.

Q: What types of statuses can a notification have?

A: It can be unread, read, and archived. Additionally, notifications can also be marked as an alert.

Q: When should a notification be an alert? When is the alert removed?

A: A notification should be an alert for the time period between when it has been created and the next time a specific user clicks on the Notification Centre (as described in https://lite-farm.atlassian.net/browse/LF-387). A notification does NOT need to be viewed to have alert set to FALSE.

Q: What types of notifications are there?

A: Here’s a(n incomplete) list: Notification use cases

Q: Should notifications be searchable / filterable / sortable?

A: Notifications will be searchable. Users can do a search against the title and body of a notification. Since older notifications are significantly less valuable. Notifications will not be filterable or sortable, since the majority of the value of a notification is based on it’s timeliness and not on it’s ability to be found at a later date.

Q: Will users be able to configure what types of notifications they would like to see?

A: Not in Q1 2022. This is a feature we would like to introduce in the future.

Open questions