@@ -140,24 +140,31 @@ def convert(self, viewer, request):
140140 ms2_map_data = json .loads (ms2_map_data )
141141 data = ms2_map_data
142142 backgrounds = self .getBackgrounds (data , MAP_BASELAYERS )
143+ viewerobj_layers = {}
144+ for maplayer in viewer_obj ['map' ]['layers' ]:
145+ viewerobj_layers [maplayer ['name' ]] = maplayer
143146 map_layers = []
144147 if backgrounds :
145148 map_layers .extend (backgrounds )
146149 for layer in data ['map' ]['layers' ]:
147150 if 'group' in layer and layer ['group' ] == "background" :
148151 continue
149152 else :
150- layer ['featureInfo' ] = self .get_layer_featureinfotemplate (layer )
151- map_layers .append (layer )
153+ # we want to calculate the featuretemplate from updated getfeatureinfo config
154+ # and not from the blob stored in the MapStoreResource entry
155+ layer_ = viewerobj_layers .get (layer ['name' ])
156+ if layer_ :
157+ layer ['featureInfo' ] = self .get_layer_featureinfotemplate (layer_ )
158+ map_layers .append (layer )
152159 # the dynamic layer has already been processed by GeoNode upstream views
153160 # but we can't tell if it was the one from GET params or not, so we parse it again
154161 layer_name = request .GET .get ('layer_name' )
155162 if layer_name :
156- for lyr in viewer_obj [ 'map' ][ 'layers' ]:
157- if lyr [ 'name' ] == layer_name :
158- layer_from_request = self .get_overlay (viewer_obj , lyr , get_wfs_endpoint (request ))
159- if layer_from_request :
160- map_layers .append (layer_from_request )
163+ lyr = viewerobj_layers . get ( layer_name )
164+ if lyr :
165+ layer_from_request = self .get_overlay (viewer_obj , lyr , get_wfs_endpoint (request ))
166+ if layer_from_request :
167+ map_layers .append (layer_from_request )
161168 data ['map' ]['layers' ] = map_layers
162169 except Exception :
163170 # traceback.print_exc()
0 commit comments