diff --git a/openbis-ipad/Research/BisMac.xcodeproj/project.xcworkspace/xcuserdata/cramakri.xcuserdatad/UserInterfaceState.xcuserstate b/openbis-ipad/Research/BisMac.xcodeproj/project.xcworkspace/xcuserdata/cramakri.xcuserdatad/UserInterfaceState.xcuserstate index 20ae66e13e1889dbeb80e88a5f24ae94d98c6fb9..6dff5053f692a7a671321afd787f555928ad93d8 100644 Binary files a/openbis-ipad/Research/BisMac.xcodeproj/project.xcworkspace/xcuserdata/cramakri.xcuserdatad/UserInterfaceState.xcuserstate and b/openbis-ipad/Research/BisMac.xcodeproj/project.xcworkspace/xcuserdata/cramakri.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/openbis-ipad/ipad-example-data/ipad-ui/1/dss/reporting-plugins/ipad-read-service/ipad_read.py b/openbis-ipad/ipad-example-data/ipad-ui/1/dss/reporting-plugins/ipad-read-service/ipad_read.py index 4eb812a2ffdfad3ee8d403e38d88fff225d526bf..e90672c1eeac338170a56c830b6444cc6b78c2e6 100644 --- a/openbis-ipad/ipad-example-data/ipad-ui/1/dss/reporting-plugins/ipad-read-service/ipad_read.py +++ b/openbis-ipad/ipad-example-data/ipad-ui/1/dss/reporting-plugins/ipad-read-service/ipad_read.py @@ -31,6 +31,11 @@ def add_headers(builder): builder.addHeader("CHILDREN") builder.addHeader("PROPERTIES") +def image_url_for_compound(material): + """Given a material (compound) return the image url""" + chemblId = material.getCode() + return 'https://www.ebi.ac.uk/chemblws/compounds/%s/image' % chemblId + def add_row(builder, entry): """Append a row of data to the table""" @@ -56,9 +61,8 @@ def material_to_dict(material): material_dict['REFCON'] = ObjectMapper().writeValueAsString(refcon) material_dict['GROUP'] = material.getMaterialType() if material.getMaterialType() == '5HT_COMPOUND': - chemblId = material.getCode() material_dict['SUMMARY'] = material.getPropertyValue("FORMULA") - material_dict['IMAGE_URL'] = 'https://www.ebi.ac.uk/chemblws/compounds/%s/image' % chemblId + material_dict['IMAGE_URL'] = image_url_for_compound(material) else: material_dict['SUMMARY'] = material.getPropertyValue("DESC") material_dict['IMAGE_URL'] = "" @@ -70,7 +74,7 @@ def material_to_dict(material): material_dict['PROPERTIES'] = ObjectMapper().writeValueAsString(properties) return material_dict -def sample_to_dict(five_ht_sample): +def sample_to_dict(five_ht_sample, material_by_perm_id): sample_dict = {} sample_dict['SUMMARY_HEADER'] = five_ht_sample.getCode() sample_dict['SUMMARY'] = five_ht_sample.getPropertyValue("DESC") @@ -81,7 +85,8 @@ def sample_to_dict(five_ht_sample): refcon['entityType'] = five_ht_sample.getSampleType() sample_dict['REFCON'] = ObjectMapper().writeValueAsString(refcon) sample_dict['GROUP'] = five_ht_sample.getSampleType() - sample_dict['IMAGE_URL'] = "" + compound = material_by_perm_id[five_ht_sample.getPropertyValue("COMPOUND")] + sample_dict['IMAGE_URL'] = image_url_for_compound(compound) children = [five_ht_sample.getPropertyValue("TARGET"), five_ht_sample.getPropertyValue("COMPOUND")] sample_dict['CHILDREN'] = ObjectMapper().writeValueAsString(children) @@ -112,8 +117,8 @@ def materials_to_dict(materials): result = [material_to_dict(material) for material in materials] return result -def samples_to_dict(samples): - result = [sample_to_dict(sample) for sample in samples] +def samples_to_dict(samples, material_by_perm_id): + result = [sample_to_dict(sample, material_by_perm_id) for sample in samples] return result def aggregate(parameters, builder): @@ -123,6 +128,8 @@ def aggregate(parameters, builder): samples = searchService.searchForSamples("DESC", "*", "5HT_PROBE") material_identifiers = gather_materials(samples) materials = searchService.listMaterials(material_identifiers) - add_rows(builder, materials_to_dict(materials)) - add_rows(builder, samples_to_dict(samples)) + material_dict_array = materials_to_dict(materials) + material_by_perm_id = dict([(material.getMaterialIdentifier(), material) for material in materials]) + add_rows(builder, material_dict_array) + add_rows(builder, samples_to_dict(samples, material_by_perm_id)) diff --git a/openbis-ipad/openBIS/Research/openBISData/main.m b/openbis-ipad/openBIS/Research/openBISData/main.m index 184b0beda7b62612cc0d267814d91d99b2318e5f..2d5e0eed25c508cba95d130265e141af7ac1af89 100644 --- a/openbis-ipad/openBIS/Research/openBISData/main.m +++ b/openbis-ipad/openBIS/Research/openBISData/main.m @@ -150,6 +150,8 @@ int main(int argc, const char * argv[]) exit(1); } + NSLog(@"START Init DB"); + NSDate *start = [NSDate date]; InitializeDatabase(moc, &error); // Save the managed object context @@ -157,8 +159,8 @@ int main(int argc, const char * argv[]) NSLog(@"Error while saving %@", ([error localizedDescription] != nil) ? [error localizedDescription] : @"Unknown Error"); exit(1); } - - NSLog(@"Created database %@", databaseUrl); + NSDate *end = [NSDate date]; + NSLog(@"END Init DB (%.2f sec) %@", [end timeIntervalSinceDate: start], databaseUrl); } return 0; } diff --git a/openbis-ipad/openBIS/openBIS.xcodeproj/project.xcworkspace/xcuserdata/cramakri.xcuserdatad/UserInterfaceState.xcuserstate b/openbis-ipad/openBIS/openBIS.xcodeproj/project.xcworkspace/xcuserdata/cramakri.xcuserdatad/UserInterfaceState.xcuserstate index 086a630ce0ddde339c061cfb0f5a9d1475e490f9..bb56a2f6ca703d822af22f183e4dad890c884509 100644 Binary files a/openbis-ipad/openBIS/openBIS.xcodeproj/project.xcworkspace/xcuserdata/cramakri.xcuserdatad/UserInterfaceState.xcuserstate and b/openbis-ipad/openBIS/openBIS.xcodeproj/project.xcworkspace/xcuserdata/cramakri.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/openbis-ipad/openBIS/openBIS/CISDOBMasterViewController.m b/openbis-ipad/openBIS/openBIS/CISDOBMasterViewController.m index 9ad83f57e22a81a5f526d7c86ac4e72ed3315dc9..e25a81e56589e9dee2483fb9342c9ff4bf70fc76 100644 --- a/openbis-ipad/openBIS/openBIS/CISDOBMasterViewController.m +++ b/openbis-ipad/openBIS/openBIS/CISDOBMasterViewController.m @@ -154,7 +154,6 @@ [self.navigationController pushViewController: controller animated: YES]; } else { - CISDOBIpadEntity *object = [[self fetchedResultsController] objectAtIndexPath:indexPath]; self.detailViewController.detailItem = object; }