9898 u"listing_samples_state_stored" ,
9999 default = u"Stored"
100100 ),
101+ # flat pool: show every stored sample (partitions included) on its
102+ # own row, without nesting them under their primary
103+ "flat_listing" : True ,
101104 "contentFilter" : {
102105 "review_state" : ("stored" ,),
103106 "sort_on" : "created" ,
112115 u"listing_samples_state_past_retention" ,
113116 default = u"Past Retention"
114117 ),
118+ # flat pool: show every stored sample (partitions included) on its
119+ # own row, without nesting them under their primary
120+ "flat_listing" : True ,
115121 "contentFilter" : {
116122 "review_state" : ("stored" ,),
117123 "sort_on" : "getStorageExpiryDate" ,
@@ -139,7 +145,6 @@ def __init__(self, listing, context):
139145 self .listing = listing
140146 self .context = context
141147 self .installed = is_installed ()
142- self .flat_listing = False
143148
144149 @property
145150 def warning_days_before_expiration (self ):
@@ -164,10 +169,10 @@ def before_render(self):
164169 # Additional custom transitions
165170 map (self .add_custom_transition , ADD_CUSTOM_TRANSITIONS )
166171
167- # In "stored" status, display all samples in "flat style"
168- if self . is_stored_state ():
169- self . flat_listing = True
170- self . listing . contentFilter . pop ( "isRootAncestor" , None )
172+ # The "stored" and "past_retention" review states are flagged as
173+ # flat listings (see their `flat_listing` key), so senaite.core drops
174+ # the root-ancestor restriction and renders every stored sample,
175+ # partitions included, on its own row without nesting.
171176
172177 # Update the contentFilter of the "past_retention" filter, so only
173178 # stored samples whose retention period has passed are displayed
0 commit comments