Skip to content

Objectives

Intro

Objectives form part of OPTTs (Objectives Projects Tasks and Targets).

Objectives belong to organisations and have a specific owner user and a specific creator user (automatically inferred at creation time). They are designed to be big picture holistic tasks that have a duration of 1-4 quarters of a financial year (or overlapping 2 financial years).

Observers

  • When saving an objective, its ending_year field is calculated based on the inputted data (starting_quarter, duration).
  • When saving an objective, its energy_points field is calculated based on duration and the configured flowcode.energy_points_objective_multiplier

Jobs

  • UpdateObjectiveStatus is a job which updates the status of the objective based on whether it's overdue.

Relationships

Objectives have several key relationships:

  • Belongs to owner - this is a manually edited required field
  • Belongs to creator - this is automatically inferred by the user creating the objective
  • Belongs to organisation - this is automatically inferred by the creator's active organisation

Relationships used for frontend filtering:

  • Belongs to many departments (Department)
  • Belongs to many division (Division)
  • Belongs to owner

Other relationships which are not yet used elsewhere in the app (at the time of writing 03/2023):

These relationships aren't yet used other than to display in the objective modal, but may serve some future purposes in the roadmap

  • Belongs to many contributors (User)
  • Has many milestones (Milestone)
  • Has many budgets (Budget)
  • Has many recruitments (Recruitment)
  • Has many risks (Risks)
  • Has many linkedOptts (LinkedOptt)

Relationship to elements. This is used when an OPTT is created on the fly while completing the catalogues:

  • Belongs to many elements (Element)