@@ -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,14 +374,20 @@ 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 ()]
386+ sfids = [x [ 0 ] for x in sf .all ()]
383387 if len (sfids )> 0 :
384- return self .getSamplingFeatures (ids = sfids )
388+ sflist = self .getSamplingFeatures (ids = sfids )
389+ return sflist
390+
385391 except Exception as e :
386392 print ("Error running Query: %s" % e )
387393 return None
@@ -555,9 +561,11 @@ def getResults(self, ids=None, type=None, uuids=None, actionid=None, simulationi
555561 if siteid :
556562 sfids = [x [0 ] for x in self ._session .query (distinct (SamplingFeatures .SamplingFeatureID ))
557563 .select_from (RelatedFeatures )
558- .join (RelatedFeatures .RelatedFeatureObj )
559- .filter (RelatedFeatures .RelatedFeatureID == siteid ).all ()]
560- query = query .join (FeatureActions ).filter (SamplingFeatures .SamplingFeatureID .in_ (sfids ))
564+ .join (RelatedFeatures .SamplingFeatureObj )
565+ .filter (RelatedFeatures .RelatedFeatureID == siteid )
566+ #.filter(RelatedFeatures.RelationshipTypeCV == "Was Collected at")
567+ .all ()]
568+ query = query .join (FeatureActions ).filter (FeatureActions .SamplingFeatureID .in_ (sfids ))
561569
562570 try :
563571 return query .all ()
0 commit comments