def _get_all_resourcescenarios(network_id, user_id):
    """
        Get all the resource scenarios in a network, across all scenarios
        returns a dictionary of dict objects, keyed on scenario_id
    """

    rs_qry = db.DBSession.query(
                Dataset.type,
                Dataset.unit_id,
                Dataset.name,
                Dataset.hash,
                Dataset.cr_date,
                Dataset.created_by,
                Dataset.hidden,
                Dataset.value,
                ResourceScenario.dataset_id,
                ResourceScenario.scenario_id,
                ResourceScenario.resource_attr_id,
                ResourceScenario.source,
                ResourceAttr.attr_id,
    ).outerjoin(DatasetOwner, and_(DatasetOwner.dataset_id==Dataset.id, DatasetOwner.user_id==user_id)).filter(
                or_(Dataset.hidden=='N', Dataset.created_by==user_id, DatasetOwner.user_id != None),
                ResourceAttr.id == ResourceScenario.resource_attr_id,
                Scenario.id==ResourceScenario.scenario_id,
                Scenario.network_id==network_id,
                Dataset.id==ResourceScenario.dataset_id)

    x = time.time()
    logging.info("Getting all resource scenarios")
    all_rs = db.DBSession.execute(rs_qry.statement).fetchall()
    log.info("%s resource scenarios retrieved in %s", len(all_rs), time.time()-x)


    logging.info("resource scenarios retrieved. Processing results...")
    x = time.time()
    rs_dict = dict()
    for rs in all_rs:
        rs_obj = JSONObject(rs)
        rs_attr = JSONObject({'attr_id':rs.attr_id})

        value = rs.value

        rs_dataset = JSONDataset({
            'id':rs.dataset_id,
            'type' : rs.type,
            'unit_id' : rs.unit_id,
            'name' : rs.name,
            'hash' : rs.hash,
            'cr_date':rs.cr_date,
            'created_by':rs.created_by,
            'hidden':rs.hidden,
            'value':value,
            'metadata':{},
        })
        rs_obj.resourceattr = rs_attr
        rs_obj.value = rs_dataset
        rs_obj.dataset = rs_dataset

        scenario_rs = rs_dict.get(rs.scenario_id, [])
        scenario_rs.append(rs_obj)
        rs_dict[rs.scenario_id] = scenario_rs

    logging.info("resource scenarios processed in %s", time.time()-x)

    return rs_dict
def _get_all_resourcescenarios ( network_id , user_id ) : rs_qry = db . DBSession . query ( Dataset . type , Dataset . unit_id , Dataset . name , Dataset . hash , Dataset . cr_date , Dataset . created_by , Dataset . hidden , Dataset . value , ResourceScenario . dataset_id , ResourceScenario . scenario_id , ResourceScenario . resource_attr_id , ResourceScenario . source , ResourceAttr . attr_id , ) . outerjoin ( DatasetOwner , and_ ( DatasetOwner . dataset_id == Dataset . id , DatasetOwner . user_id == user_id ) ) . filter ( or_ ( Dataset . hidden == 'N' , Dataset . created_by == user_id , DatasetOwner . user_id != None ) , ResourceAttr . id == ResourceScenario . resource_attr_id , Scenario . id == ResourceScenario . scenario_id , Scenario . network_id == network_id , Dataset . id == ResourceScenario . dataset_id ) x = time . time ( ) logging . info ( "Getting all resource scenarios" ) all_rs = db . DBSession . execute ( rs_qry . statement ) . fetchall ( ) log . info ( "%s resource scenarios retrieved in %s" , len ( all_rs ) , time . time ( ) - x ) logging . info ( "resource scenarios retrieved. Processing results..." ) x = time . time ( ) rs_dict = dict ( ) for rs in all_rs : rs_obj = JSONObject ( rs ) rs_attr = JSONObject ( { 'attr_id' : rs . attr_id } ) value = rs . value rs_dataset = JSONDataset ( { 'id' : rs . dataset_id , 'type' : rs . type , 'unit_id' : rs . unit_id , 'name' : rs . name , 'hash' : rs . hash , 'cr_date' : rs . cr_date , 'created_by' : rs . created_by , 'hidden' : rs . hidden , 'value' : value , 'metadata' : { } , } ) rs_obj . resourceattr = rs_attr rs_obj . value = rs_dataset rs_obj . dataset = rs_dataset scenario_rs = rs_dict . get ( rs . scenario_id , [ ] ) scenario_rs . append ( rs_obj ) rs_dict [ rs . scenario_id ] = scenario_rs logging . info ( "resource scenarios processed in %s" , time . time ( ) - x ) return rs_dict
Get all the resource scenarios in a network, across all scenarios
        returns a dictionary of dict objects, keyed on scenario_id