Skip to content

Commit 911537a

Browse files
author
Stephanie Reeder
committed
add code for related queries
1 parent ed82918 commit 911537a

File tree

1 file changed

+20
-7
lines changed

1 file changed

+20
-7
lines changed

odm2api/ODM2/services/readService.py

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -230,6 +230,16 @@ def getSamplingFeatures(self, id=None, code=None, type=None, wkt=None):
230230
print e
231231
return None
232232

233+
def getRelatedSamplingFeatures(self, id):
234+
"""
235+
236+
getRelatedSamplingFeatures()
237+
* Pass a SamplingFeatureID - get a list of sampling feature objects related to the input sampling feature along with the relationship type
238+
"""
239+
240+
sf= self._session.query(SamplingFeatures).select_from(RelatedFeatures).join(RelatedFeatures.RelatedFeatureObj)
241+
if id: sf= sf.filter(RelatedFeatures.RelatedFeatureID == id)
242+
return sf.all()
233243

234244
"""
235245
Action
@@ -257,15 +267,16 @@ def getActions(self, id = None, type=None, sfid=None):
257267
return None
258268

259269
def getRelatedActions(self, actionid=None):
260-
#Todo getrelatedactions
270+
261271
"""
262272
getRelatedActions()
263273
* Pass an ActionID - get a list of Action objects related to the input action along with the relatinship type
264274
265275
"""
276+
q= self._session.query(Actions).select_from(RelatedActions).join(RelatedActions.RelatedActionObj)
277+
if actionid: q= q.filter(RelatedActions.ActionID ==actionid)
266278

267-
#q = self._session.query(Actions).filter_by
268-
pass
279+
return q.all()
269280

270281
"""
271282
Unit
@@ -557,6 +568,7 @@ def getMethodCitations(self):
557568
self._session.query(MethodCitations).all()
558569

559570
def getRelatedAnnotations(self):
571+
#q= read._session.query(Actions).select_from(RelatedActions).join(RelatedActions.RelatedActionObj)
560572
self._session.query(RelatedAnnotations).all()
561573
def getRelatedCitations(self):
562574
self._session.query(RelatedCitations).all()
@@ -601,7 +613,6 @@ def getResultValues(self, resultid= None, type=None, starttime=None, endtime=Non
601613
elif type == "transect": Result = TransectResultValues
602614

603615

604-
605616
q = self._session.query(Result)
606617
if resultid: q = q.filter_by(ResultID=resultid)
607618
if starttime: q= q.filter(Result.ValueDateTime >= starttime)
@@ -729,9 +740,11 @@ def getRelatedModels(self, id = None, code = None):
729740
:return:
730741
:rtype:
731742
"""
732-
m=self._session.query(Models).join(RelatedModels, Models.ModelID == RelatedModels.RelatedModelID)
733-
if id: m= m.filter_by(ModelID=id)
734-
if code: m= m.filter_by(ModelCode = code)
743+
744+
745+
m=self._session.query(Models).select_from(RelatedModels).join(RelatedModels.RelatedModelObj)
746+
if id: m= m.filter(RelatedModels.ModelID==id)
747+
if code: m= m.filter(RelatedModels.ModelCode == code)
735748

736749
try:
737750
return m.all()

0 commit comments

Comments
 (0)