Repository navigation
Feature/objective key results per set - #17
Merged
Merged
Conversation
A durable objective can already carry key results in different sets (its period lives on KeyResult.objective_set) and the gantt draws them in one swim lane. But the objective edit page treated it as single-set: KRs were listed flat and new ones all inherited the objective's primary set, so you couldn't see or change which period a KR belonged to. - Give each key-result row a 'Set / timeframe' picker, scoped to the objective's team (a KR's period must be one of that team's sets) and labelled with the period dates. The KR's current set stays selectable so editing never drops it. - New rows default to the set being authored under; saving keeps each KR on its chosen set, so adding a KR in another set applies the objective to that period. - Show each KR's set as a pill on the read-only objective page too. This completes 'reuse objectives across sets': administer one long-lived objective and give it different key results set to set. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Durable objectives were still effectively single-set: the top of the objective form was a single 'Set' dropdown (the legacy Objective.objective_set FK), and 'which objectives belong to a set' was read from that FK. So an objective could only sit in one planning period at the objective level. - Add an Objective.sets M2M (membership) and backfill it from each objective's legacy set plus the distinct sets its key results already sit in, so nothing moves or disappears. The single FK is kept as a 'primary' pointer for breadcrumbs/nav only. - The top-of-form control becomes a team-scoped checkbox multi-select, so one long-lived objective can belong to several sets and show as one lane across periods. Creating under a set makes it a member; a set that holds a key result stays a member even if unticked. - Point every 'objectives in this set' read (set page, team cards, group-roadmap sourcing, roadmap header pills, objective list) at the new M2M; set/team pages keep their existing union with key-result-implied membership. - Expose Objective.sets in the admin. Migrations 0028 (schema) + 0029 (backfill) are additive and non-destructive; dry-run on a prod copy before deploy per docs/dry-run.md. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
main gained fix/objective-set-own-team and feature/archive-delete-roadmaps since this branch was cut, so: - Renumber the migrations to sit after main's 0028_roadmap_archived, keeping a single linear history (0029_objective_sets_m2m, 0030_backfill_objective_sets) — no merge migration needed. - Drop ObjectiveSetScopingTests: it asserted on ObjectiveForm's single 'objective_set' dropdown, which this feature replaces with the 'sets' M2M checkbox. The same 'own-team-only' guarantee is now covered by MultiSetMembershipTests (sets picker scoped to the team). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.