1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
# frozen_string_literal: true
module WorkItems
module LookAheadPreloads
extend ActiveSupport::Concern
prepended do
include ::LooksAhead
end
private
def preloads
{
work_item_type: :work_item_type,
web_url: { namespace: :route, project: [:project_namespace, { namespace: :route }] },
widgets: { work_item_type: :enabled_widget_definitions }
}
end
def nested_preloads
{
widgets: widget_preloads,
user_permissions: { update_work_item: :assignees },
project: { jira_import_status: { project: :jira_imports } },
author: {
location: { author: :user_detail },
gitpod_enabled: { author: :user_preference }
}
}
end
def widget_preloads
{
last_edited_by: :last_edited_by,
assignees: :assignees,
parent: :work_item_parent,
children: { work_item_children_by_relative_position: [:author, { project: :project_feature }] },
labels: :labels,
milestone: { milestone: [:project, :group] },
subscribed: [:assignees, :award_emoji, { notes: [:author, :award_emoji] }],
award_emoji: { award_emoji: :awardable }
}
end
def unconditional_includes
[
{
project: [:project_feature, :group]
},
:author
]
end
end
end
WorkItems::LookAheadPreloads.prepend_mod
|