@@ -1221,7 +1221,7 @@ def get_record_metadata(self, record):
1221
1221
if len (uids ) == 1 :
1222
1222
extra_fields [field_name ] = uids [0 ]
1223
1223
1224
- # Populate metadata with object info from extra fields
1224
+ # Populate metadata with object info from extra fields (hidden fields)
1225
1225
for field_name , uid in extra_fields .items ():
1226
1226
key = "{}_metadata" .format (field_name .lower ())
1227
1227
if metadata .get (key ):
@@ -1230,7 +1230,7 @@ def get_record_metadata(self, record):
1230
1230
obj = self .get_object_by_uid (uid )
1231
1231
if not obj :
1232
1232
continue
1233
- obj_info = self .get_object_info (obj , field_name )
1233
+ obj_info = self .get_object_info (obj , field_name , record = extra_fields )
1234
1234
if not obj_info or "uid" not in obj_info :
1235
1235
continue
1236
1236
metadata [key ] = {obj_info ["uid" ]: obj_info }
@@ -1380,16 +1380,17 @@ def get_object_info(self, obj, key, record=None):
1380
1380
func_name = "get_{}_info" .format (field_name .lower ())
1381
1381
func = getattr (self , func_name , None )
1382
1382
1383
+ # always ensure we have a record
1384
+ if record is None :
1385
+ record = {}
1386
+
1383
1387
# Get the info for each object
1384
1388
info = callable (func ) and func (obj ) or self .get_base_info (obj )
1385
1389
1386
1390
# Check if there is any adapter to handle objects for this field
1387
1391
for name , adapter in getAdapters ((obj , ), IAddSampleObjectInfo ):
1388
1392
logger .info ("adapter for '{}': {}" .format (field_name , name ))
1389
- if record is not None :
1390
- ad_info = adapter .get_object_info_with_record (record )
1391
- else :
1392
- ad_info = adapter .get_object_info ()
1393
+ ad_info = adapter .get_object_info_with_record (record )
1393
1394
self .update_object_info (info , ad_info )
1394
1395
1395
1396
return info
0 commit comments