Versions Compared

Key

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

The idea of tasks and completed tasks will subsume the idea of logs and shifts in the Q3 2021 release. Logs will become tasks and shifts will become completed Tasks. Notifications will tie together the assignment of tasks and the transition from tasks to completed tasks to create a holistic “task management system”.

...

  1. What type of task needs to be done (e.g. seeding, scouting, etc.)?

  2. When does the task need to happen?

  3. Where will the task take place?

  4. Does the task impact a crop?

  5. What task-type specific instructions would you like to provide (e.g. which fertilizer to use for a fertilizing task, or seed spacing and depth for a planting task, etc.)?

  6. (Optional) Who is going to do the task?

...

Additionally, in some cases the system will automatically create a task. Below is an example of the “manual” and “automatic” routes to task creation.

Task

User or system created

How was the task initiated?

Additional notes

“Maintenance” task

User

Farm Owner, upon seeing a section of damaged fence, creates a task describing the maintenance task and manually assigns it to a farm worker.

“Planting” task

System

Farm manager creates a crop management plan for a varietal and indicates it needs to be planted from seed.

The system generates a “planting” task based on the planting date supplied by the user. The system automatically populates the task with necessary crop specific information such as planting method, seed spacing, seeding depth, and others.

How does a user edit a task?

...

This table is starter list of generic attributes every task will have. It is NOT a complete list. In fact, each Task types will likely have their own type-specific attributes.

Attribute

Data type

Entered / modified at…

Required?

Example data

Notes

Type

Enum

Creation

Yes

Planting

See above. Also needs to support custom task types

Status

Enum

Creation, daemon, completion, abandonment

Yes

Planned, Late, For review, Completed, Abandoned

Assigned via actions rather than being editable via the UI

Owner

Ref: User_id

Creation

Yes

Jane Smith

Assigned at creation time

Assignee

Ref: User_id

Creation, edit

No

Joe Smith

Due date

Date

Creation, edit

Yes

January 5 2022

Location

List<Locations>

Creation, edit

Yes*

Field 4

Either location or coordinates are required

Coordinates

Ref: Coord_id

Yes*

-13.473321, 18.573862

Either location or coordinates are required

Crops

List<crop_management_plans>

Creation, edit

No

Peas, Carrots, and Strawberries

Task notes

Text

Creation, edit

No

“Don’t forget to bring the broccoli harvesting knife from the greenhouse.”

Duration

Completion

Yes

1 hour 15 minutes

Displayed in 15 minute intervals

Happiness rating

Integer

Completion

Yes

3

Likert scale: 1 - 5; also needs to have a value for “Prefer not to say”. A response is required, but “Prefer not to say” is acceptable.

Completion notes

Text

Completion

No

“Based on last years harvest, I’d expect about 55kg”

Entered by the creator when creating the task

Reason for abandonment

List<String>

Abandonment

Yes

Task abandonment notes

Text

Abandonment

No

“Lots of half-eaten strawberries due to what I’d guess are rabbits. Harvest is probably closer to 40kg rather than the expected 55.”

Entered by the assignee when marking a task as complete or abandoned

Notifications

Notifications will not be part of the Q3 2021 release.

Notifications serve as the communication layer for ensuring things get done on a farm. Notifications are system generated messages that are sent to users to bring something to a users' attention and to request updates that can be shared with the rest of the farm staff. Regarding Tasks and completed tasks, notifications serve a few important functions:

Use case

Example

Who is Notified?

Notes

Upcoming unassigned task (under Basic or Advanced Labour Tracking))

A system generated seeding task should take place this week (based on the date of the task)

The user that initially assigned the crop to that field (the task creator)

A notification asking the original creator of the task to assign the unassigned task to a user or modify when it should take place.

Upcoming unassigned task (under None Labour Tracking)

A system generated seeding task should take place this week (based on the date of the task)

The user that initially assigned the crop to that field (the task owner)

A notification reminding the original creator of the task to do the task or modify when it should take place.

Upcoming assigned task

A user created “Repair” task should take place today.

The user whom the task is assigned to (the assignee)

The notification serves as a reminder to perform the task and also a quick way to mark the task as “Finished”.

Task marked as complete under Basic Labour Tracking

A farm manager has assigned a repair task to a farm worker. Once the farm worker marks the task as Done, the farm manager receives a notification informing them the task has been completed.

The owner of the task.

The notification serves as an opportunity for the owner of the task to verify the task has been completed by the assignee to the correct standard of work.

Task marked as complete under Advanced Labour Tracking

A farm manager has assigned a repair task to a farm worker. Once the farm worker marks the task as Done, the task enters “For review” status and the farm manager receives a notification asking them to review the work and accept it or not.

The owner of the task.

The notification serves as an opportunity for the owner of the task to verify the task has been completed by the assignee to the correct standard of work.

You can read more about notifications in general here: https://lite-farm.atlassian.net/wiki/pages/resumedraft.action?draftId=1167753219

Migration process. From logs and shifts to tasks

...

Shifts are a collection of tasks that were (or are going to be) performed in a given day by a given person (assignee). The shifts have a 1→n relationship with the shiftTask table, for every shiftTask row associated with a shift, there is a task with an associated location or management plan. The attributes which are to be migrated from shift and shiftTasks are :

shift attribute

transformation

task attribute to map to

mood

from string to integer in Likert scale in which 1 represents very sad and 5 represents very happy. 0 would be a null answer.
”very happy” → 5

….

“very sad” → 1

“no answer” → 0

happiness

created_by_user_id

owner

user_id

assignee

task_id

if task_id = 1 (bed preparation before migration)
change to 9 (Field work)

type

shift_date

due_date

duration

duration

wage_at_moment

wage_at_moment

farm_id

NO MAP

a farm_id reference is not needed, since a task will always have a relationship either with at least 1 location

For each shiftTask we will also create a row in the task child table that matches the task type, as well as a row for the location OR management plans. Example :

...