def mapfields(self): "Returns the mapwidgets to be shown on in the directory and item view." if not self.show_map: return tuple() mapwidget = MapWidget(self, self.request, self.context) if self.is_itemview: if self.has_mapdata(self.context): layer = DirectoryMapLayer(context=self.context) layer.zoom = True layer.letter = None mapwidget._layers = [layer] else: # in a directory view we can expect a batch # (only items in the shown batch are painted on the map as # performance is going to be a problem otherwise) if not hasattr(self, 'batch'): log.error('%s view has no batch attribute' % type(self)) index = 0 maxindex = len(letters) - 1 self.lettermap.clear() mapwidget._layers = list() for item in self.batch: if hasattr(item, 'getObject'): item = item.getObject() if item.id not in self.lettermap and self.has_mapdata(item): layer = DirectoryMapLayer(context=item) layer.zoom = True layer.fit = True if index <= maxindex: layer.letter = self.lettermap[item.id] = letters[index] index += 1 mapwidget._layers.append(layer) return (mapwidget, )
def mapfields(self): "Returns the mapwidgets to be shown on in the directory and item view." if not self.show_map: return tuple() mapwidget = MapWidget(self, self.request, self.context) if self.is_itemview: if self.has_mapdata(self.context): layer = DirectoryMapLayer(context=self.context) layer.zoom = True layer.letter = None mapwidget._layers = [layer] else: # in a directory view we can expect a batch # (only items in the shown batch are painted on the map as # performance is going to be a problem otherwise) if not hasattr(self, 'batch'): log.error('%s view has no batch attribute' % type(self)) index = 0 maxindex = len(letters) - 1 self.lettermap.clear() mapwidget._layers = list() for item in self.batch: if hasattr(item, 'getObject'): item = item.getObject() if item.id not in self.lettermap and self.has_mapdata(item): layer = DirectoryMapLayer(context=item) if index <= maxindex: layer.letter = self.lettermap[item.id] = letters[index] index += 1 mapwidget._layers.append(layer) return (mapwidget, )
def mapfields(self): assert self.show_map, """ This should not be called if there are no sources. """ widget = MapWidget(self, self.request, self.context) widget._layers = tuple( SourceLayer.from_source(s) for s in self.get_sources() ) return (widget, )
def mapfields(self): """ Returns the mapwidgets to be shown on in the directory and item view.""" if not self.show_map: return tuple() mapwidget = MapWidget(self, self.request, self.context) if self.is_itemview: if self.context.has_mapdata(): layer = DirectoryMapLayer(context=self.context) layer.zoom = True layer.letter = None mapwidget._layers = [layer] else: # in a directory view we can expect a batch # (only items in the shown batch are painted on the map as performance # is going to be a problem otherwise) assert hasattr(self, 'batch') index = 0 maxindex = len(letters) - 1 self.lettermap.clear() mapwidget._layers = list() for item in sorted(self.batch, key=lambda i: i.title): if not item.id in self.lettermap and item.has_mapdata(): layer = DirectoryMapLayer(context=item) if index <= maxindex: layer.letter = self.lettermap[item.id] = letters[index] index += 1 mapwidget._layers.append(layer) return (mapwidget, )