Skip to content

Commit 97fd197

Browse files
authored
Merge pull request #18 from gtt-project/hotfix/standard_custom_fields
Fixed standard/custom fields listing
2 parents 9f97970 + e1f8a58 commit 97fd197

File tree

1 file changed

+111
-14
lines changed

1 file changed

+111
-14
lines changed

app/controllers/smash_tags_controller.rb

Lines changed: 111 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ class SmashTagsController < ApplicationController
77

88
def index
99
smash_tags = []
10+
# Issue priorities
1011
priorities = []
1112
default_priority = nil
1213
# SMASH (Geopaparazzi) form spec: https://www.geopaparazzi.org/geopaparazzi/index.html#_using_form_based_notes
@@ -18,15 +19,34 @@ def index
1819
default_priority = priority.name
1920
end
2021
end
22+
# Issue categories
23+
categories = []
24+
@project.issue_categories.each do |category|
25+
categories.append({
26+
item: category.name
27+
})
28+
end
29+
# Versions
30+
versions = []
31+
default_version = nil
32+
@project.versions.each do |version|
33+
versions.append({
34+
item: version.name
35+
})
36+
end
37+
if @project.default_version.present?
38+
default_version = @project.default_version.name
39+
end
40+
# Trackers
2141
@project.trackers.sort.each do |tracker|
2242
section = {
2343
sectionname: tracker.name,
24-
sectiondescription: "",
44+
sectiondescription: tracker.description,
2545
sectionicon: "image",
2646
forms: [{
2747
formname: tracker.name,
2848
formitems: [
29-
# Default fields
49+
# Core fields (undisablable)
3050
{
3151
key: "project_id",
3252
value: @project.id.to_s,
@@ -61,28 +81,105 @@ def index
6181
label: l(:field_is_private),
6282
type: "boolean",
6383
mandatory: "yes"
64-
},
65-
# TODO: Need to check
66-
# assigned_to_id, category_id, fixed_version_id, parent_issue_id,
67-
# start_date, due_date, estimated_hours, done_ratio
68-
{
69-
key: "description",
70-
label: l(:field_description),
71-
value: "",
72-
type: "string"
7384
}
7485
]
7586
}]
7687
}
88+
formitems = section[:forms][0][:formitems]
89+
# Standard (core) fields
90+
if tracker.core_fields.present?
91+
# assigned_to_id (don't support)
92+
# category_id
93+
if tracker.core_fields.include?("category_id")
94+
formitems.append({
95+
key: "category_id",
96+
label: l(:field_category),
97+
values: {
98+
items: categories
99+
},
100+
value: "",
101+
type: "stringcombo",
102+
# mandatory: "yes"
103+
})
104+
end
105+
# fixed_version_id
106+
if tracker.core_fields.include?("fixed_version_id")
107+
formitems.append({
108+
key: "fixed_version_id",
109+
label: l(:field_version),
110+
values: {
111+
items: versions
112+
},
113+
value: default_version,
114+
type: "stringcombo",
115+
# mandatory: "yes"
116+
})
117+
end
118+
# parent_issue_id (don't support)
119+
# start_date
120+
if tracker.core_fields.include?("start_date")
121+
formitems.append({
122+
key: "start_date",
123+
label: l(:field_start_date),
124+
value: "",
125+
type: "date"
126+
})
127+
end
128+
# due_date
129+
if tracker.core_fields.include?("due_date")
130+
formitems.append({
131+
key: "due_date",
132+
label: l(:field_due_date),
133+
value: "",
134+
type: "date"
135+
})
136+
end
137+
# estimated_hours
138+
if tracker.core_fields.include?("estimated_hours")
139+
formitems.append({
140+
key: "estimated_hours",
141+
label: l(:field_estimated_hours),
142+
value: "",
143+
type: "integer"
144+
})
145+
end
146+
# done_ratio
147+
if tracker.core_fields.include?("done_ratio")
148+
done_ratios = []
149+
0.step(100, 10) {|ratio|
150+
done_ratios.append({
151+
item: "#{ratio} %"
152+
})
153+
}
154+
formitems.append({
155+
key: "done_ratio",
156+
label: l(:field_done_ratio),
157+
values: {
158+
items: done_ratios
159+
},
160+
value: "0 %",
161+
type: "stringcombo"
162+
})
163+
end
164+
# description
165+
if tracker.core_fields.include?("description")
166+
formitems.append({
167+
key: "description",
168+
label: l(:field_description),
169+
value: "",
170+
type: "string"
171+
})
172+
end
173+
end
77174
# Attachments
78-
section[:forms][0][:formitems].append({
175+
formitems.append({
79176
key: "attachments",
80177
value: "",
81178
type: "pictures"
82179
})
83180
# IssueCustomField mapping
84181
# Redmine: https://github.com/redmine/redmine/blob/master/lib/redmine/field_format.rb
85-
IssueCustomField.where(is_for_all: true).sort.each do |icf|
182+
tracker.custom_fields.each do |icf|
86183
type = "string"
87184
values = []
88185
case icf.field_format
@@ -134,7 +231,7 @@ def index
134231
}
135232
end
136233

137-
section[:forms][0][:formitems].append(formitem)
234+
formitems.append(formitem)
138235
end
139236
smash_tags.append(section)
140237
end

0 commit comments

Comments
 (0)