@@ -227,25 +227,28 @@ def create_discipline_and_trees_task(data: dict):
227227 is_paleo_geo = discipline_type in PALEO_DISCIPLINES or discipline_type in GEOLOGY_DISCIPLINES
228228 default_tree = DEFAULT_TREE .copy ()
229229
230- logger .info ('Creating Chronostratigraphy tree' )
231- default_chronostrat_tree = default_tree .copy ()
232- default_chronostrat_tree ['fullnamedirection' ] = - 1
233- chronostrat_result = api .create_geologictimeperiod_tree (default_chronostrat_tree )
234- chronostrat_treedef_id = _required_treedef_id (chronostrat_result , 'Geologictimeperiod' )
235- data ['discipline' ]['geologictimeperiodtreedef_id' ] = chronostrat_treedef_id
236-
230+ # The discipline will temporarily use the last created trees, the new trees are attached at the end.
237231 logger .info ('Creating discipline' )
238232 discipline_result = api .create_discipline (data ['discipline' ])
239233 discipline_id = discipline_result .get ('discipline_id' )
240234 default_tree ['discipline_id' ] = discipline_id
241235 logger .debug (discipline_id )
242236
243237 # Ensure discipline id is set for tree creation
238+ if isinstance (data .get ('geologictimeperiodtreedef' ), dict ):
239+ data ['geologictimeperiodtreedef' ]['discipline_id' ] = data ['geologictimeperiodtreedef' ].get ('discipline_id' ) or discipline_id
244240 if isinstance (data .get ('geographytreedef' ), dict ):
245241 data ['geographytreedef' ]['discipline_id' ] = data ['geographytreedef' ].get ('discipline_id' ) or discipline_id
246242 if isinstance (data .get ('taxontreedef' ), dict ):
247243 data ['taxontreedef' ]['discipline_id' ] = data ['taxontreedef' ].get ('discipline_id' ) or discipline_id
248244
245+ logger .info ('Creating Chronostratigraphy tree' )
246+ default_chronostrat_tree = default_tree .copy ()
247+ default_chronostrat_tree ['fullnamedirection' ] = - 1
248+ logger .info (default_chronostrat_tree )
249+ chronostrat_result = api .create_geologictimeperiod_tree (default_chronostrat_tree )
250+ chronostrat_treedef_id = _required_treedef_id (chronostrat_result , 'Geologictimeperiod' )
251+
249252 logger .info ('Creating geography tree' )
250253 geography_result = api .create_geography_tree (data ['geographytreedef' ].copy (), global_tree = False )
251254 geography_treedef_id = _required_treedef_id (geography_result , 'Geography' )
0 commit comments