def latest_exp_session(self, min_access_level=u'Anon-Read'): query = DBSession.query(Experiment, Session).join(Subject, Experiment.subjects).join(Session, Subject.sessions) if not self.is_superuser: query = self._filter_access(query, min_access_level) if self.trash_flag == 0: query = query.filter(Session.trashtime == None) elif self.trash_flag == 2: query = query.filter(Session.trashtime != None) return query.order_by(Session.timestamp.desc()).first() or (None, None)
def dataset_cnt(self): query = DBSession.query(Session) if not self.is_superuser: query = ( query.join(Subject, Session.subject) .join(Experiment, Subject.experiment) .join(Access) .filter(Access.user == self) ) return query.count()
def experiment(self): return DBSession.query(Session, Experiment).join(Subject, Session.subject).join(Experiment, Subject.experiment).filter(Session.id == self.id).one().Experiment
def dataset_cnt(self): query = DBSession.query(Session) if not self.is_superuser: query = query.join(Subject, Session.subject).join(Experiment, Subject.experiment).join(Access).filter(Access.user==self) return query.count()
def test_query_obj(self): """Model objects can be queried""" obj = DBSession.query(self.klass).one() for key, value in self.attrs.iteritems(): assert_equals(getattr(obj, key), value)