def get_all(cls): def get_from_database(): session = DBSession() try: devices = session.query(cls).order_by(cls.name).all() except: devices = None return devices devices_cache = cache.get_cache('all', expire=3600) return devices_cache.get('all', createfunc=get_from_database)
def get_by_filename(cls, filename): def get_from_database(): session = DBSession() try: file = session.query(cls).filter(cls.filename == filename).one() except NoResultFound: file = None return file file_cache = cache.get_cache('file', expire=60) file = file_cache.get(filename, createfunc=get_from_database) return file
def get_by_filename(cls, filename): def get_from_database(): session = DBSession() try: file = session.query(cls).filter( cls.filename == filename).one() except NoResultFound: file = None return file file_cache = cache.get_cache('file', expire=60) file = file_cache.get(filename, createfunc=get_from_database) return file
def browse(cls, device, type): cache_key = "%s_%s" % (device or "null", type or "null") browse_cache = cache.get_cache('browse', expire=60) def get_from_database(): session = DBSession() query = session.query(cls) if device is not None: query = query.select_from(join(File, Device)). \ filter(Device.name == device) if type is not None: query = query.filter(cls.type == type) # Limit the query and order it query = query.order_by(desc(cls.date_created))[:20] return query return browse_cache.get(cache_key, createfunc=get_from_database)