Skip to content

Commit aea2924

Browse files
author
sreeder
committed
'merge
2 parents 6fc5efa + 56b40e3 commit aea2924

File tree

2 files changed

+18
-13
lines changed

2 files changed

+18
-13
lines changed

Examples/Sample.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
# session_factory= dbconnection.createConnection('mssql', "(local)", "ODM2", "ODM", "odm")#win MSSQL
2323

2424
# session_factory= dbconnection.createConnection('mssql', "arroyoodm2", "", "ODM", "odm")#mac/linux MSSQL
25-
session_factory = dbconnection.createConnection('sqlite', '/Users/stephanie/DEV/YODA-Tools/tests/test_files/ODM2_ts_specimen.sqlite', 2.0)
25+
session_factory = dbconnection.createConnection('sqlite', '/Users/stephanie/DEV/YODA-Tools/tests/test_files/XL_specimen.sqlite', 2.0)
2626

2727

2828

@@ -37,9 +37,6 @@
3737
read = ReadODM2(session_factory)
3838
create = CreateODM2(session_factory)
3939

40-
results = read.getResults(siteid=1)
41-
resultValues = read.getResultValues(resultids=[1, 2, 3, 4, 5, 6])
42-
related = read.getRelatedSamplingFeatures(sfid = 1)
4340

4441
# Run some basic sample queries.
4542
# ------------------------------

odm2api/ODM2/services/readService.py

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)