@@ -362,7 +362,7 @@ def getSamplingFeatures(self, ids=None, codes=None, uuids=None, type=None, wkt=N
362362 print ("Error running Query: %s" % e )
363363 return None
364364
365- def getRelatedSamplingFeatures (self , sfid = None , relationshiptype = None , code = None ):
365+ def getRelatedSamplingFeatures (self , sfid = None , rfid = None , relationshiptype = None ):
366366 #TODO: add functionality to filter by code
367367 """
368368
@@ -374,16 +374,23 @@ def getRelatedSamplingFeatures(self, sfid=None, relationshiptype=None, code=None
374374 # join(User.addresses). \
375375 # filter(User.name == 'ed')
376376 #throws an error when joining entire samplingfeature, works fine when just getting an element. this is being caused by the sampling feature inheritance
377- sf = self ._session .query (SamplingFeatures .SamplingFeatureID ).select_from (RelatedFeatures ).join (RelatedFeatures .SamplingFeatureObj )
378- if sfid : sf = sf .filter (RelatedFeatures .SamplingFeatureID == sfid )
377+
378+ sf = self ._session .query (distinct (SamplingFeatures .SamplingFeatureID ))\
379+ .select_from (RelatedFeatures )
380+
381+
382+ if sfid : sf = sf .join (RelatedFeatures .RelatedFeatureObj ).filter (RelatedFeatures .SamplingFeatureID == sfid )
383+ if rfid : sf = sf .join (RelatedFeatures .SamplingFeatureObj ).filter (RelatedFeatures .RelatedFeatureID == rfid )
379384 if relationshiptype : sf = sf .filter (RelatedFeatures .RelationshipTypeCV == relationshiptype )
380- # if code: sf = sf.filter(RelatedFeatures.RelatedFeatureObj.Sampling)
381385 try :
382- sfids = [x for x in sf .all ()]
383- return self .getSamplingFeatures (ids = sfids )
386+ sfids = [x [0 ] for x in sf .all ()]
387+ if len (sfids )> 0 :
388+ sflist = self .getSamplingFeatures (ids = sfids )
389+ return sflist
390+
384391 except Exception as e :
385392 print ("Error running Query: %s" % e )
386- return None
393+ return None
387394
388395 """
389396 Action
@@ -554,8 +561,10 @@ def getResults(self, ids=None, type=None, uuids=None, actionid=None, simulationi
554561 if siteid :
555562 sfids = [x [0 ] for x in self ._session .query (distinct (SamplingFeatures .SamplingFeatureID ))
556563 .select_from (RelatedFeatures )
557- .join (RelatedFeatures .RelatedFeatureObj )
558- .filter (RelatedFeatures .RelatedFeatureID == siteid ).all ()]
564+ .join (RelatedFeatures .SamplingFeatureObj )
565+ .filter (RelatedFeatures .RelatedFeatureID == siteid )
566+ #.filter(RelatedFeatures.RelationshipTypeCV == "Was Collected at")
567+ .all ()]
559568 query = query .join (FeatureActions ).filter (SamplingFeatures .SamplingFeatureID .in_ (sfids ))
560569
561570 try :
0 commit comments