@@ -892,18 +892,25 @@ def link_dataset_to_direct_ancestors(property_key, normalized_type, request, use
892892
893893 if 'direct_ancestor_uuids' not in new_data_dict :
894894 raise KeyError ("Missing 'direct_ancestor_uuids' key in 'new_data_dict' during calling 'link_dataset_to_direct_ancestors()' trigger method." )
895-
895+ create_activity = False
896+ activity_data_dict = {}
896897 dataset_uuid = existing_data_dict ['uuid' ]
897898 direct_ancestor_uuids = new_data_dict ['direct_ancestor_uuids' ]
898899
899900 existing_dataset_ancestor_uuids = schema_neo4j_queries .get_dataset_direct_ancestors (schema_manager .get_neo4j_driver_instance (), dataset_uuid , "uuid" )
900901 new_ancestors = set (direct_ancestor_uuids )- set (existing_dataset_ancestor_uuids )
901902 ancestors_to_unlink = set (existing_dataset_ancestor_uuids )- set (direct_ancestor_uuids )
902903 activity_uuid = schema_neo4j_queries .get_parent_activity_uuid_from_entity (schema_manager .get_neo4j_driver_instance (), dataset_uuid )
904+
905+ if not activity_uuid :
906+ activity_data_dict = schema_manager .generate_activity_data (normalized_type , request , user_token , existing_data_dict )
907+ activity_uuid = activity_data_dict ['uuid' ]
908+ create_activity = True
909+
903910 if new_ancestors :
904911
905912 try :
906- schema_neo4j_queries .add_new_ancestors_to_existing_activity (schema_manager .get_neo4j_driver_instance (), list (new_ancestors ), activity_uuid )
913+ schema_neo4j_queries .add_new_ancestors_to_existing_activity (schema_manager .get_neo4j_driver_instance (), list (new_ancestors ), activity_uuid , create_activity , activity_data_dict , dataset_uuid )
907914 except TransactionError :
908915 raise
909916
@@ -1911,7 +1918,8 @@ def link_sample_to_direct_ancestor(property_key, normalized_type, request, user_
19111918
19121919 if 'direct_ancestor_uuid' not in new_data_dict :
19131920 raise KeyError ("Missing 'direct_ancestor_uuid' key in 'new_data_dict' during calling 'link_sample_to_direct_ancestor()' trigger method." )
1914-
1921+ create_activity = False
1922+ activity_data_dict = {}
19151923 sample_uuid = existing_data_dict ['uuid' ]
19161924
19171925 # Build a list of direct ancestor uuids
@@ -1921,10 +1929,16 @@ def link_sample_to_direct_ancestor(property_key, normalized_type, request, user_
19211929 new_ancestors = set (direct_ancestor_uuids )- set (existing_sample_ancestor_uuids )
19221930 ancestors_to_unlink = set (existing_sample_ancestor_uuids )- set (direct_ancestor_uuids )
19231931 activity_uuid = schema_neo4j_queries .get_parent_activity_uuid_from_entity (schema_manager .get_neo4j_driver_instance (), sample_uuid )
1932+
1933+ if not activity_uuid :
1934+ activity_data_dict = schema_manager .generate_activity_data (normalized_type , request , user_token , existing_data_dict )
1935+ activity_uuid = activity_data_dict ['uuid' ]
1936+ create_activity = True
1937+
19241938 if new_ancestors :
19251939
19261940 try :
1927- schema_neo4j_queries .add_new_ancestors_to_existing_activity (schema_manager .get_neo4j_driver_instance (), list (new_ancestors ), activity_uuid )
1941+ schema_neo4j_queries .add_new_ancestors_to_existing_activity (schema_manager .get_neo4j_driver_instance (), list (new_ancestors ), activity_uuid , create_activity , activity_data_dict , sample_uuid )
19281942 except TransactionError :
19291943 raise
19301944
0 commit comments