@@ -49,8 +49,8 @@ def valid_project_ids
49
49
return project_ids
50
50
end
51
51
52
- def visible_trackers
53
- tracker_ids = Set . new
52
+ def valid_tracker_project_ids
53
+ tracker_project_ids = { }
54
54
valid_project_ids = valid_project_ids ( )
55
55
project_ids = [ ]
56
56
if @project . present? and valid_project_ids . include? ( @project . id )
@@ -60,10 +60,14 @@ def visible_trackers
60
60
end
61
61
Project . where ( id : project_ids ) . each { |project |
62
62
project . trackers . each { |tracker |
63
- tracker_ids . add ( tracker . id )
63
+ if tracker_project_ids . has_key? ( tracker . id )
64
+ tracker_project_ids [ tracker . id ] . append ( project . id )
65
+ else
66
+ tracker_project_ids [ tracker . id ] = [ project . id ]
67
+ end
64
68
}
65
69
}
66
- Tracker . where ( id : tracker_ids . to_a ) . sort
70
+ return tracker_project_ids
67
71
end
68
72
69
73
# SMASH (Geopaparazzi) form spec: https://www.geopaparazzi.org/geopaparazzi/index.html#_using_form_based_notes
@@ -102,18 +106,19 @@ def build_tags
102
106
default_version = @project . default_version . name
103
107
end
104
108
end
105
- # Projects
106
- projects = [ ]
107
- if @project . blank?
108
- Project . where ( id : User . current . visible_project_ids ) . sort . each { |project |
109
- projects . append ( {
110
- item : project . name
111
- } )
112
- }
113
- end
114
109
# Trackers
115
- trackers = visible_trackers ( )
116
- trackers . sort . each do |tracker |
110
+ tracker_project_ids = valid_tracker_project_ids ( )
111
+ Tracker . where ( id : tracker_project_ids . keys ) . sort . each do |tracker |
112
+ # Projects
113
+ project_ids = tracker_project_ids [ tracker . id ]
114
+ projects = [ ]
115
+ if @project . blank? and project_ids . present?
116
+ Project . where ( id : project_ids ) . sort . each { |project |
117
+ projects . append ( {
118
+ item : project . name
119
+ } )
120
+ }
121
+ end
117
122
section = {
118
123
sectionname : tracker . name ,
119
124
sectiondescription : tracker . description ,
0 commit comments