From 41f1dea57b9a67d44d790b9be32e945cb8a56d23 Mon Sep 17 00:00:00 2001
From: cramakri <cramakri>
Date: Mon, 22 Oct 2012 09:11:40 +0000
Subject: [PATCH] Working on implementing detail

SVN: 27280
---
 .../BisKit/Tests/CISDOBIpadServiceTest.m      |  34 ++++++++++++++++++
 .../UserInterfaceState.xcuserstate            | Bin 167087 -> 167078 bytes
 .../ipad-read-service-v1/ipad_read.py         |   4 +--
 3 files changed, 36 insertions(+), 2 deletions(-)

diff --git a/openbis-ipad/BisKit/Tests/CISDOBIpadServiceTest.m b/openbis-ipad/BisKit/Tests/CISDOBIpadServiceTest.m
index 75446ccff31..cbf3db442ec 100644
--- a/openbis-ipad/BisKit/Tests/CISDOBIpadServiceTest.m
+++ b/openbis-ipad/BisKit/Tests/CISDOBIpadServiceTest.m
@@ -115,4 +115,38 @@
     STAssertTrue([rawEntities count] > 0, @"The Pad service should have returned some entities.");
 }
 
+- (void)testDetails
+{
+    CISDOBAsyncCall *call;
+    call = [_service loginUser: GetDefaultUserName() password: GetDefaultUserPassword()];
+    [self configureAndRunCallSynchronously: call];
+    
+    call = [_service listRootLevelEntities];
+    [self configureAndRunCallSynchronously: call];
+    
+    STAssertNotNil(_callResult, @"The iPad service should have returned some entities.");
+    NSArray *rawEntities = _callResult;
+    STAssertTrue([rawEntities count] > 0, @"The Pad service should have returned some entities.");
+    
+    
+    // Find an entity with children and drill on it
+    CISDOBIpadRawEntity *entityWithChildren = nil;
+    for (CISDOBIpadRawEntity *rawEntity in rawEntities) {
+        if ([rawEntity.children length] > 2) {
+            entityWithChildren = rawEntity;
+            break;
+        }
+    }
+    
+    // Details
+    NSError *error;
+    id refconObject = [NSJSONSerialization JSONObjectWithData: [entityWithChildren.refcon dataUsingEncoding: NSASCIIStringEncoding] options: 0 error: &error];
+    STAssertNotNil(refconObject, @"Could not parse refcon string %@ : %@", entityWithChildren.refcon, error);
+    call = [_service detailsForEntityWithPermId: entityWithChildren.permId refcon: refconObject];
+    [self configureAndRunCallSynchronously: call];
+    
+    rawEntities = _callResult;
+    STAssertEquals([rawEntities count], (NSUInteger) 1, @"The Pad service should have returned one entity for details.");
+}
+
 @end
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 06d062fcffe376eb04eb5b14acd4f0621ba5d062..74612961f3934f4e7a7982ca013983ebdaa2956d 100644
GIT binary patch
delta 5685
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
SJ{!Gn4vVrkKiX+Pu=w9YRWrx{

delta 5700
zcmYk+d32QZxd-rhQB)#A1(fAN3kHx)Wi_aE7wcBAg0iY0VnGm)#ighbcZ7SjqKyK!
zE>|k*bwME;NhZn6kW2zeCJU2UC@w`5uUl(Tl<WO)&i&(_!{<Fe4rkuq^L?J@W%CO;
z@4S%n?#OP(@64^st<P<IIImk_Ubo=l)4IMtb?<?htMc;lMvds7clP+g$HxX2cI-8A
z$XSPOpS5bt$g$%_^dB`QZ`}RUSB)JtZdBpkbArU|j#Hla@uEou+cpG)JB%7vklheW
zE%@lk;GPb-wFRXcgS*#f_viG;-5px?;AyK*_~F4&BGf6gBD69$QP8zIxVx}qQ}A7{
zpnF08O+nAXx^2O(&cnK2dgbKHCS7vn(mA(Ip116-1#{<}d52#Onm%a8kdsz-TC_T6
z_|!`m%~`&DUO}WPn6y56X!iPd4|FcLc5TqH;IZo9oC~JBKYhlm{})8T<HsDWe&qc(
z|DyjH3l=X}F?GR;`TzI!bLTEuym;Q+6$_RuzI4u_Mdub&lmw#-`$U4i$M={rblTAA
zLuU+~Ids<QoQGEDJhr;ifWoWlg6&-g4moMqk%3{wtj_s-b*GD89UdAOKKl2A{^HN|
zQ|2vSQ8+jqZ0QipT0iH&%)&GF2G>4y#;c)V<GXBS8-<}@(_qFhj`5t!rA#P%<Bkri
za`LM~!L~*ce8v}i#kYLN_x#BJgo5n>$8tP53}7IqGmH_O$tcE>hx@jl&xPE;Qr7S?
z>dW6AafngJZklMLoeZCcg2Ha}#ASs76%NNmg)S;Qn{)Uzmvc4Kn86%w<@emqovh$4
z?&Y;meo$EE(8^x+@iF`P2Rcx6ED{$<Tyzq@pgX71n;|HuNI^vkDw4cN@*>HLBrm#(
zdAPjjQ6w*_K;WWmzK2#99lc1aiw<*ypF=_M3AnVlD>_ho3a6n9#adoGj58R?1a4v>
zcc9J1%aOEL(&9&WhaHqtNhB1M<g2#iV(di8HB90<u16b7w6Nq>w6NrMyu8FqOCH1=
zOJ1RrPxuC1EBP0~l+H)$QiYWIO{qdkpXNpW!e;X?-Qw^Tsw>@2F<w}z%F><GQcnZ+
zq12d4|C_IIS*goPf8Zx{ZAS-ArU!OrM<4pppIq$Ej!T%z4D;V{qr+_GVoo~>cnQgN
zyvf_V#|IP=rkWUk;{XTwl7C`+Wg(8i_{zF-D!u8Ck(HgrXvXDxyv9~sP*#Qu%3M(9
zf->pL610*ejSiH3iu7eJD|bnGXSyPJ`D&hI9Z&HLx?HZi<wZoP!2*`&@Ahb-g*}*K
z`F=j*3#2Ol2FWUpqYJ&r<pQ*^!hTfT#sU_xggbc@msdQCu2yW|MP5SCin#e#)H^gF
zWrdU#QdYRQ;yVsut`+7QHrKF(VF|<98P?8lUj{G`UqpBuS8xM2qnPkwEMWL9?&Se=
zDEtUdn}7HPht0f>d57QTJ&Yr)%5Vh{EMr*3VO<KhV+`RB`2^hxD?0oY--m+AjvP;C
z6kXYko><1pehg*|N9SKTp7YSo%8QxEwM<5m%IVBPdn*^RjFsHODjq_sD<8+)E7$WJ
z&$AK1D&L@(9SBreg*~Xuw+NLMp>j7__VF?Mk*ZRvN~tQp4Fy$QF!w6eR}EzZXEBPo
zEMhTt^9SzdK^|ruPw@;2s?y;q9nP;RbWl;1LaG!}rI4ytw6{uotF*W3Alh1Wm?NQ}
zIz%T<#6{JTSFgd#t0k|Nyjt?=Kl4|lul_II<$ZLa+I`gt^RNCc6hwZ>aD1DQk&MPj
zBIk1vmokHeNElhlax7Ius)&mtE{?c3vVnKl$~KB9rHmLZjx^E29`lc+$fD&DEstn<
z<Y-Y6M}7<i(PObp(Hy#SD!u8Cf}=(dRd9416R|td>$sk2%)xk~x3K_4NAKZ&^35k|
zKG7$zJkfvWHB=uppQ!OfOHh3@%q|*e!&eZ^@HZ46ReaQ_qF-`|ANYx%LqV)FUFe6x
zW4R1A|JYE65l9h}BIXN-UB+*?ir*qpY%(`s1TiCs-N_0pTkKwZ1+hmEAoeut`4cbj
z3PQzRN03;ITI$U|W)86|`}i2`kA20rNU-xbPT)i&*m)moSj)2%VCFkt<R!N77Vn^o
zJMF;Ea$LAG5ejO&r=}Nu=x6>lze3eDs;zk*n_FXZYy7arcUluc+iMzWM(b<Z`G~)B
zfP-jz&G(_8Hbif<w{{4_ITN30?HDfN5+;y;g~!!sbL|XfaWl6tkNIeI?Q$$l?J6E%
zEsCyvhUZXttq#=cK<%sOKy5KLzcx%Y+Fo17ZhQf?Df6%W)ZsHe=O9ND9Og(Uh)WVb
z1|x`f<z!Apx_DoPGMte}7C)QwxBz<;w?FZzOy?$i3GrK5z#^8Ie_X2gqdbl;ATCwh
z0>#&}38RQh6yMAiwo^nIlEo#9*C1J3viKf8VLt-JjV1mK|KbOJ3I%l?=|&IpuN#Cp
z)k#ukPIaRgOCINPJ`?#JQ;?|6sOoNHHgma+Kk@-BxTwAtx=}BEy??Ja%K9ZNV<m#u
z=PRK8A$&UZI#B-#W>zmjy{hZ~5ejy7;beNylRosLKe-IXD0YqDEJibqYnjXqOk*a-
zu*(>BDSDUv%HO4`T?<*vQkJ8LUAy@<6zo2cGq@Zx+r5rAX+<j=x-*^$T!%{<T+-l@
z2D5Is1F0JxV?CC&!AKik=0DB9;ja#F@IGeSP|OZ0P(;Ir9N_Cv&=_z6ma$QL8~=@8
zayr8>vc`+}4cA~qjV^Ee0}5z-g0(!$+icVR#s)s(P$+1!7)@H;<fTmm7>JiQX>XJE
zHjTkPG}-JXX`8M`Yn$d^tDAJO>24%#+JHb!btFl%7lE2S=L_<+xasFmkdQ2K9G&Ql
zA`<4EFz<vS5`$4h;#?GvkTP*4QYI`|LfaFIP(VTf35gRAQ-F3Swo*nj`w%#B$ovzB
z9gc*8<`BoAh-O7JE23GOo4aue+S_aonn$7w&1Z8C=WziSa~WFSY`K~h(5!%FZEs$~
zx=_$!WGw>_s6|&>hM9j$o`V;)T!JNPxq_>i$W&%<BeU`1mb>xd7PD-5hK;<)OT0=A
z8SG1|aklnl6pCxT9Pe*6zSiF|$^2Wd!;D&ex2<3DT_|XiyloItwOxxAw`p<PP0T@?
z+m>=K_u)Nl5Ai7f!5^_?Z3S#VVQsJRI&ad5QMBc^dRUIO6xmR)$G5sil0ENGL<yxt
zh_Mqt-s8u66ujr?Z}#yair@1!KkyUwD%k;DNOr+aCGAwQCw&-c{>f<$zR{!<N!2H{
zHECW+txZ0U)+SY-R7le0$yyYUR6w$gb`+5OnEf2U#qIW|-KFih3}z@JIE&GYW4!sd
zTcCCe)UMU-(zk1M`z&te7UnUZg)HVyR`3cs)ZRc69c<T)cEz-R#zDTtINQJH$54>c
zjZ`OeAvJ(pb4#f%rMi^rQmRY+8U>{kl(IA_8=bN+so!D#soBisHWsi5dyrbi1FYr|
z9_Ly9#0zZVFDN`^ys7ud|G=XV?M;;tryi+N3G7Eoy42tKlrQ)S$x??n%#l!#&Y?5i
zIhEe@Mf=kNrUguoK<m>NB3$}%^G{#ta1GL>r!W->({>`ggk`Mc9wbcLkMxtQWgXA)
zJg>5uExd(<>8+F^SUOBK_3Xy}q}$9t-R|%apI~O`FZqUlB3<SfY;dMCUFpUt^h2`D
z5d6oKvCWw=NSC>Wi3pRK!Ho!&nad&s%LtZPY5p0>GUk$boi})sB8()X@{GzeD$m4F
zb;d|CNz&})!%&b7=*1vTXBdjgDk`g}tewi*sq6%<;A#|@&7bL^y6i2?V?J7+UCMIq
zV-4D!eVX-HsO(1m%*!Y`YlpJMlv9cSFS500ceViq@6F>PE<quC6_T@8d-mSUyn@Hp
Kb@)~A`~L;QcST_U

diff --git a/openbis-ipad/ipad-example-data/ipad-ui/1/dss/reporting-plugins/ipad-read-service-v1/ipad_read.py b/openbis-ipad/ipad-example-data/ipad-ui/1/dss/reporting-plugins/ipad-read-service-v1/ipad_read.py
index a86a0052c7c..9e9bee46695 100644
--- a/openbis-ipad/ipad-example-data/ipad-ui/1/dss/reporting-plugins/ipad-read-service-v1/ipad_read.py
+++ b/openbis-ipad/ipad-example-data/ipad-ui/1/dss/reporting-plugins/ipad-read-service-v1/ipad_read.py
@@ -260,10 +260,10 @@ class ExampleDetailRequestHandler(DetailRequestHandler):
 	def retrieve_data(self):
 		# Get the data and add a row for each data item
 		entities = self.parameters['entities']
-		detail_samples = [entity for entity in entities and 'SAMPLE' == entity['REFCON']['entityKind']]
+		detail_samples = [entity for entity in entities if 'SAMPLE' == entity['REFCON']['entityKind']]
 		self.samples = retrieve_samples(detail_samples)
 
-		detail_materials = [entity for entity in entities and 'MATERIAL' == entity['REFCON']['entityKind']]
+		detail_materials = [entity for entity in entities if 'MATERIAL' == entity['REFCON']['entityKind']]
 		material_identifiers = MaterialIdentifierCollection()
 		for detail_material in detail_materials:
 			add_material_to_collection(detail_material, material_identifiers)
-- 
GitLab