Ticket #339: pleiades-notsure.patch
| File pleiades-notsure.patch, 2.4 kB (added by sgillies, 1 year ago) |
|---|
-
geo.py
old new 34 34 35 35 from Products.ATContentTypes.interface.topic import IATTopic 36 36 from Products.ATContentTypes.interface.folder import IATFolder 37 from Products.ATContentTypes.interface.folder import IATBTreeFolder 37 38 38 39 from Products.PleiadesGeocoder.interfaces import IGeoItemSimple \ 39 40 , IGeoCollectionSimple, IGeoreferencedEvent 40 41 42 import logging 41 43 44 logger = logging.getLogger('PleiadesGeocoder.geo') 45 46 42 47 class GeoreferencedEvent(object): 43 48 """Event to notify that object has been georeferenced. 44 49 """ … … 157 162 def geoItems(self): 158 163 if IATTopic.providedBy(self.context): 159 164 for ob in self.context.queryCatalog(): 160 try: 161 item = IGeoItemSimple(ob.getObject()) 162 assert(item.isGeoreferenced()) 163 except: 165 item = self._adapt(ob.getObject()) 166 if item is None: 164 167 continue 165 yield item 166 elif IATFolder.providedBy(self.context): 168 else: 169 yield item 170 elif (IATFolder.providedBy(self.context) or 171 IATBTreeFolder.providedBy(self.context)): 167 172 for ob in self.context.listFolderContents(): 168 try: 169 item = IGeoItemSimple(ob) 170 assert(item.isGeoreferenced()) 171 except: 173 item = self._adapt(ob) 174 if item is None: 172 175 continue 176 else: 177 yield item 178 else: 179 item = self._adapt(self.context) 180 if item is None: 181 return 182 else: 173 183 yield item 174 else:175 try:176 item = IGeoItemSimple(self.context)177 assert(item.isGeoreferenced())178 except:179 pass180 yield item181 184 185 def _adapt(self, ob): 186 try: 187 item = IGeoItemSimple(ob) 188 if item.isGeoreferenced(): 189 return item 190 else: 191 logger.debug("%s is not georeferenced" % item) 192 except TypeError: 193 logger.debug("Could not adapt %s to IGeoItemSimple" % self.context) 194 return None 182 195 196
