Changeset 811 for Geographer/trunk
- Timestamp:
- 05/22/07 16:31:26 (2 years ago)
- Files:
-
- Geographer/trunk/configure.zcml (modified) (1 diff)
- Geographer/trunk/geo.py (modified) (5 diffs)
- Geographer/trunk/interfaces.py (modified) (1 diff)
- Geographer/trunk/tests/adapters.txt (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
Geographer/trunk/configure.zcml
r810 r811 35 35 36 36 <five:implements 37 class="Products.ATContentTypes.content.folder.ATBTreeFolder" 38 interface=".interfaces.IGeoreferenceable" 39 /> 40 41 <five:implements 37 42 class="Products.ATContentTypes.content.topic.ATTopic" 38 43 interface=".interfaces.IGeoreferenceable" Geographer/trunk/geo.py
r810 r811 42 42 from Products.ZCatalog.CatalogBrains import AbstractCatalogBrain 43 43 from Products.CMFCore.interfaces import ICatalogTool 44 from Products.CMFCore.interfaces import IMembershipTool 44 45 from Products.CMFPlone import CatalogTool as catalogtool 45 46 from Products.ATContentTypes.interface.topic import IATTopic 46 47 from Products.ATContentTypes.interface.folder import IATFolder 48 from Products.ATContentTypes.interface.folder import IATBTreeFolder 47 49 48 50 from Products.Geographer.interfaces import IGeometry, IGeoItemSimple … … 51 53 from Products.Geographer.interfaces import IReadOnlyGeoreferenceableBrain 52 54 from Products.Geographer.interfaces import IGeoreferenceableMember 55 from Products.Geographer.interfaces import IGeoreferenceableMembersFolder 53 56 54 57 … … 226 229 'title' : context.getProperty('fullname', user_id), 227 230 'description' : context.getProperty('fullname', user_id), 228 'uri': None,231 'uri': "%s/author/%s" % (context.portal_url(), user_id), 229 232 }, 230 233 'geometry': { … … 259 262 260 263 def geoItems(self): 261 if IATTopic.providedBy(self.context): 264 if IGeoreferenceableMembersFolder.providedBy(self.context): 265 mt = getUtility(IMembershipTool) 266 for ob in self.context.listFolderContents(): 267 member = mt.getMemberById(ob.getId()) 268 item = IGeoItemSimple(member, None) 269 if item is not None: 270 yield item 271 272 elif IATBTreeFolder.providedBy(self.context): 273 if self._catalog_geo: 274 catalog_tool = getUtility(ICatalogTool) 275 for brain in catalog_tool( 276 path='/'.join(self.context.getPhysicalPath()) 277 ): 278 item = IGeoItemSimple(brain, None) 279 if item is not None: 280 yield item 281 else: 282 for ob in self.context.listFolderContents(): 283 item = IGeoItemSimple(ob, None) 284 if item is not None: 285 yield item 286 287 elif IATTopic.providedBy(self.context): 262 288 for brain in self.context.queryCatalog(): 263 289 item = IGeoItemSimple(brain, None) … … 298 324 info = property(getInfo,) 299 325 326 327 Geographer/trunk/interfaces.py
r810 r811 59 59 60 60 61 class IGeoserializable(Interface): 62 63 """Marks an object that can be serialized eventually to GeoRSS and KML. 64 """ 65 66 67 class IGeoserializableMembersFolder(Interface): 61 class IGeoreferenceableMembersFolder(Interface): 68 62 69 63 """Marker especially for a Plone site's "Members" folder. Geographer/trunk/tests/adapters.txt
r810 r811 121 121 122 122 123 Adapt the Members folders to IGeoCollectionSimple 124 ------------------------------------------------- 125 126 >>> from zope.interface import directlyProvides, noLongerProvides 127 >>> from Products.Geographer.interfaces import IGeoreferenceableMembersFolder 128 >>> from Products.Geographer.interfaces import IGeoreferenceable 129 >>> folder = self.portal.Members 130 >>> directlyProvides(folder, IGeoreferenceableMembersFolder) 131 >>> collection = IGeoCollectionSimple(folder) 132 >>> list(collection.members) 133 [<Products.Geographer.geo.GeoMemberSimple object at ...>] 134 >>> item = list(collection.members)[0] 135 >>> item.geometry.type 136 'Point' 137 >>> item.geometry.coordinates 138 ((0.0, 0.0, 0.0),) 139 140 >>> collection.info 141 {'members': [{'geometry': {'type': 'Point', 'coordinates': ((0.0, 0.0, 0.0),)}, 'id': 'test_user_1_', 'properties': {'uri': 'http://nohost/plone/author/test_user_1_', 'description': '', 'title': ''}}]} 142 143
