Skip to content
Snippets Groups Projects
Commit 5a84c42b authored by baigner's avatar baigner
Browse files

VISTOMS update: User can clean up unused functions after removing unused outputs in step 1.11

Former-commit-id: ecd12fb90290d8c5b9bf8be06137cc2a6cc1a88f
parent 7de63886
No related branches found
No related tags found
No related merge requests found
Pipeline #192824 canceled
......@@ -20243,52 +20243,62 @@
.on("mousedown", function()
{
bootbox.hideAll();
bootbox.confirm("Are you sure you want to do this?", function(sure)
bootbox.prompt(
{
if (sure)
title: "<p><b>Remove unused outputs</b></p>"
+"<p>Do you want to clean up the graph afterwards?</p>"
+"<b>CAUTION:</b> This will remove all unused competences automatically as well!",
inputType: 'select',
value: "True",
inputOptions: [{text:'yes', value:'True'}, {text:'no', value:'False'}],
callback: function (selection)
{
var bootboxContent = {title: "Enrich FPG", message: '<p>Please be patient...</p>'};
var xhr = $.ajax({
type: 'POST',
url: '/kadmosRemoveUnusedOutputs',
data: {'graphID':graphID, 'currentOrder':nodeOrder},
success: function(result)
{
if (result.includes("ERROR:"))
{
bootboxContent.message = result
kadmosErrorMessage(bootboxContent);
}
else
if (selection)
{
var bootboxContent = {title: "Enrich FPG", message: '<p>Please be patient...</p>'};
var xhr = $.ajax({
type: 'POST',
url: '/kadmosRemoveUnusedOutputs',
data: {'graphID':graphID, 'currentOrder':nodeOrder, 'cleanUp':selection},
success: function(result)
{
var updatedData = {};
updatedData = data;
var graphData = JSON.parse(result);
for (var i = 0; i < updatedData.graphs.length; i++)
if (result.includes("ERROR:"))
{
if (graphID == updatedData.graphs[i].id)
bootboxContent.message = result
kadmosErrorMessage(bootboxContent);
}
else
{
var updatedData = {};
updatedData = data;
var graphData = JSON.parse(result);
for (var i = 0; i < updatedData.graphs.length; i++)
{
updatedData.graphs[i] = graphData.graphs[0];
if (graphID == updatedData.graphs[i].id)
{
updatedData.graphs[i] = graphData.graphs[0];
}
}
clearView();
makeKadmosMenu(updatedData);
xdsm_script(updatedData,graphID);
bootboxContent.message = "Success!"
kadmosSuccessMessage(bootboxContent)
}
clearView();
makeKadmosMenu(updatedData);
xdsm_script(updatedData,graphID);
bootboxContent.message = "Success!"
kadmosSuccessMessage(bootboxContent)
},
error: function(result)
{
bootboxContent.message = result
kadmosErrorMessage(bootboxContent);
}
},
error: function(result)
{
bootboxContent.message = result
kadmosErrorMessage(bootboxContent);
}
});
kadmosHavePatience(xhr, bootboxContent)
});
kadmosHavePatience(xhr, bootboxContent)
}
}
});
})
})
//####################################################################################################################
......@@ -153,7 +153,6 @@ def kadmosExportAllGraphs():
fileType = request.form['fileType']
if not os.path.isdir(path):
print path + " does not exist yet!"
os.makedirs(os.path.dirname(path))
for aFile in os.listdir(UPLOAD_FOLDER):
......@@ -1317,6 +1316,11 @@ def kadmosRemoveUnusedOutputs():
# get request form
graphID = request.form['graphID']
function_order = request.form['currentOrder'].split(',')
cleanUp_str = request.form['cleanUp']
if cleanUp_str == 'True':
cleanUp = True
else:
cleanUp = False
# Save previous graph as backup before making the changes
savePreviousGraph(graphID)
......@@ -1337,11 +1341,24 @@ def kadmosRemoveUnusedOutputs():
fpg.graph['problem_formulation']['function_order'] = function_order
output_nodes = fpg.find_all_nodes(subcategory='all outputs')
for output_node in output_nodes:
if 'problem_role' not in fpg.node[output_node]:
fpg.remove_node(output_node)
# Cleaning of the graph needs to be done in a while loop, to entirely remove all unused elements
another_run = True
while another_run:
another_run = False
# Delete unused variables
output_nodes = fpg.find_all_nodes(subcategory='all outputs')
for output_node in output_nodes:
if 'problem_role' not in fpg.node[output_node]:
fpg.remove_node(output_node)
another_run = True
# Delete unnecessary functions automatically if the user wants to
if cleanUp:
function_nodes = fpg.find_all_nodes(category='function')
for function_node in function_nodes:
if not fpg.out_edges(function_node):
fpg.remove_function_nodes(function_node)
function_order.remove(function_node)
another_run = True
# Add the function problem roles (pre-coupling, coupled, post-coupling)
fpg.add_function_problem_roles()
......@@ -1435,7 +1452,12 @@ def kadmosImposeMDAOArchitecture():
mdao_architecture = request.form['mdao_architecture']
doe_method = request.form['doe_method']
coupling_decomposition = request.form['coupling_decomposition']
allow_unconverged_couplings = bool(request.form['allow_unconverged_couplings'])
allow_unconverged_couplings_str = request.form['allow_unconverged_couplings']
if allow_unconverged_couplings_str == 'True':
allow_unconverged_couplings = True
else:
allow_unconverged_couplings = False
# Save previous graph as backup before making the changes
savePreviousGraph(graphID)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment