Module: DecisionGrouping
- Included in:
- CriticalChainPage, DecisionsOverview
- Defined in:
- lib/almirah/doc_types/decision_grouping.rb
Overview
Shared helper for the planning views: the non-empty decision groups (ADR-197) paired with their Scope-row work items. Used by the overview's group-segmented Gantt (ADR-201) and the dedicated Critical Chain page (ADR-195 / ENH-202).
Instance Method Summary collapse
-
#grouped_work_items ⇒ Object
[[group-name, [WorkItem, ...]], ...] in decision_groups (folder-encounter) order, only groups that have at least one work item.
Instance Method Details
#grouped_work_items ⇒ Object
[[group-name, [WorkItem, ...]], ...] in decision_groups (folder-encounter) order, only groups that have at least one work item.
9 10 11 12 13 14 15 16 |
# File 'lib/almirah/doc_types/decision_grouping.rb', line 9 def grouped_work_items by_record = @project.project_data.work_items.values.group_by(&:record_id) @project.project_data.decision_groups.filter_map do |group| name = group.keys.first items = group.values.first.flat_map { |doc| by_record[doc.id] || [] } [name, items] unless items.empty? end end |