def orga_resource(portalid, snapshot, orga): with Timer(key="get_orga_resource", verbose=True): Session = current_app.config['dbsession'] dbc = current_app.config['dbc'] data = getResourceInfo(Session, dbc, portalid, snapshot, orga) q = getResourceInfos(Session, snapshot, portalid, orga) data['resList'] = [] for i in q: dataset_id = i[1] dataset_title = i[2] orig_link = getDatasetURI(dataset_id, portalid) data['resList'].append({ 'uri': row2dict(i[0]), 'dataset': { 'uri': orig_link, 'title': dataset_title } }) data.update(getPortalInfos(Session, portalid, snapshot)) r = current_app.config['dbsession'].query( Portal.resourcecount).filter(Portal.id == portalid) for P in r: data['resources'] = P[0] return render("odpw_portal_resources_list.jinja", data=data, snapshot=snapshot, portalid=portalid)
def portalResBody(snapshot, portalid): with Timer(key="get_portalRes", verbose=True): Session = current_app.config['dbsession'] dbc = current_app.config['dbc'] with Timer(key="query_portalRes", verbose=True): data = getResourceInfo(Session, dbc, portalid, snapshot) with Timer(key="query_getMetaResource", verbose=True): viewName = "view_{}_{}_{}".format('resinfo', portalid, snapshot) qorg = getResourceInfos(Session, snapshot, portalid) q = withView(qorg, viewName, Session, dbc) #print q start = time.time() data['uris'] = [row2dict(i) for i in q] end = time.time() if (end - start) > 5: print("Create View {}".format(viewName)) createView(qorg, viewName, Session) data.update(getPortalInfos(Session, portalid, snapshot)) #data['portals']= [ row2dict(r) for r in Session.query(Portal).all()] with Timer(key="query_portalResourceCount", verbose=True): r = current_app.config['dbsession'].query( Portal.resourcecount).filter(Portal.id == portalid) ps = [] for P in r: data['resources'] = P[0] return render("odpw_portal_resources_list.jinja", data=data, snapshot=snapshot, portalid=portalid)
def resourceInfo(snapshot, portalid, uri): with Timer(key="get_resourceInfo", verbose=True): #print snapshot,portalid,uri Session = current_app.config['dbsession'] dbc = current_app.config['dbc'] data = getPortalInfos(Session, portalid, snapshot) with Timer(key="query_resources", verbose=True): viewName = "view_{}_{}_{}".format('resinfo', portalid, snapshot) qorg = getResourceInfos(Session, snapshot, portalid) q = withView(qorg, viewName, Session, dbc) start = time.time() data['resources'] = [row2dict(r) for r in q.all()] end = time.time() if (end - start) > 5: print("Create View {}".format(viewName)) try: createView(qorg, viewName, Session) except Exception as e: if 'already exists' in e.message: pass else: raise e with Timer(key="query_resourceInfo", verbose=True): q = Session.query(ResourceInfo) \ .filter(ResourceInfo.uri == uri) #print q data['resourceInfo'] = [row2dict(r) for r in q.all()] for r in data['resourceInfo']: if 'header' in r: if r['header'] is None: r['header'] = "" else: #print type(r['header']),r['header'],r r['header'] = ast.literal_eval(str(r['header'])) return render("odpw_portal_resource.jinja", snapshot=snapshot, portalid=portalid, uri=uri, data=data)