1
0
mirror of https://github.com/django/django.git synced 2025-07-04 01:39:20 +00:00

Fixed #11200 -- Now use a set data structure for GoogleMap icons so that they aren't repeated in rendered JavaScript. Thanks to ludifan for ticket and initial patch.

git-svn-id: http://code.djangoproject.com/svn/django/branches/soc2009/http-wsgi-improvements@10992 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Chris Cahoon 2009-06-13 03:28:25 +00:00
parent 5fa44cc855
commit d8aa8ced20
2 changed files with 11 additions and 3 deletions

View File

@ -143,7 +143,7 @@ class GoogleMap(object):
@property
def icons(self):
"Returns a sequence of GIcon objects in this map."
return [marker.icon for marker in self.markers if marker.icon]
return set([marker.icon for marker in self.markers if marker.icon])
class GoogleMapSet(GoogleMap):
@ -221,6 +221,6 @@ class GoogleMapSet(GoogleMap):
@property
def icons(self):
"Returns a sequence of all icons in each map of the set."
icons = []
for map in self.maps: icons.extend(map.icons)
icons = set()
for map in self.maps: icons |= map.icons
return icons

View File

@ -231,6 +231,14 @@ class GIcon(object):
self.iconanchor = iconanchor
self.infowindowanchor = infowindowanchor
def __cmp__(self, other):
return cmp(self.varname, other.varname)
def __hash__(self):
# XOR with hash of GIcon type so that hash('varname') won't
# equal hash(GIcon('varname')).
return hash(self.__class__) ^ hash(self.varname)
class GMarker(GOverlayBase):
"""
A Python wrapper for the Google GMarker object. For more information