示例#1
0
    def get_address_map(self):
        address_map = MapWidget(self, self.request, self.context)
        address_map.mapid = "geo-%s" % self.context.getId()
        address_map.addClass("block-map")
        address_map.klass = "blockwidget-cgmap"

        return address_map
    def __call__(self):
        # setup map widget
        portal = getToolByName(self.context, "portal_url")
        mw = MapWidget(self, self.request, portal)
        mw.mapid = self.MAP_CSS_CLASS
        mw.addClass(self.MAP_CSS_CLASS)
        self.mapfields = [mw]

        return super(View, self).__call__()
示例#3
0
    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, )
示例#4
0
    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, )
示例#5
0
    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, )
示例#6
0
    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, )
示例#7
0
 def cgmap(self):
     cgmap = MapWidget(self, self.request, self.context)
     cgmap.mapid = 'country-cgmap'
     return cgmap
    def get_address_map(self):
        address_map = MapWidget(self, self.request, self.context)
        address_map.mapid = "geo-%s" % self.context.getId()
        address_map.addClass('addressblock-map')

        return address_map
示例#9
0
    def get_address_map(self):
        address_map = MapWidget(self, self.request, self.context)
        address_map.mapid = "geo-%s" % self.context.getId()

        return address_map