@@ -4,7 +4,7 @@ module IssuePatch
4
4
def self . apply
5
5
unless Issue < self
6
6
Issue . prepend self
7
-
7
+ Issue . extend ClassMethods
8
8
Issue . class_eval do
9
9
10
10
has_many :issue_supply_items , dependent : :destroy
@@ -57,6 +57,38 @@ def delete_supply_item_journals
57
57
end
58
58
private :delete_supply_item_journals
59
59
60
+ module ClassMethods
61
+ # Preloads issue supply items for a collection of issues
62
+ def load_issue_supply_items ( issues , user = User . current )
63
+ if issues . any?
64
+ issue_ids = issues . map ( &:id )
65
+ _issue_supply_items = IssueSupplyItem . where ( :issue_id => issue_ids )
66
+ issues . each do |issue |
67
+ issue . instance_variable_set "@issue_supply_items" , _issue_supply_items . select { |s | s . issue_id == issue . id }
68
+ end
69
+ end
70
+ end
71
+ # Preloads issue human resource items for a collection of issues
72
+ def load_issue_human_resource_items ( issues , user = User . current )
73
+ if issues . any?
74
+ issue_ids = issues . map ( &:id )
75
+ _issue_human_resource_items = IssueResourceItem . where ( resource_item_id : ResourceItem . humans . ids ) . where ( :issue_id => issue_ids )
76
+ issues . each do |issue |
77
+ issue . instance_variable_set "@issue_human_resource_items" , _issue_human_resource_items . select { |h | h . issue_id == issue . id }
78
+ end
79
+ end
80
+ end
81
+ # Preloads issue asset resource items for a collection of issues
82
+ def load_issue_asset_resource_items ( issues , user = User . current )
83
+ if issues . any?
84
+ issue_ids = issues . map ( &:id )
85
+ _issue_asset_resource_items = IssueResourceItem . where ( resource_item_id : ResourceItem . assets . ids ) . where ( :issue_id => issue_ids )
86
+ issues . each do |issue |
87
+ issue . instance_variable_set "@issue_asset_resource_items" , _issue_asset_resource_items . select { |a | a . issue_id == issue . id }
88
+ end
89
+ end
90
+ end
91
+ end
60
92
end
61
93
end
62
94
end
0 commit comments