From 7e246d987258b28bd8b69955c02623a42d45370e Mon Sep 17 00:00:00 2001
From: Stefano Alberto Russo <stefano.russo@gmail.com>
Date: Fri, 1 May 2020 18:30:34 +0200
Subject: [PATCH] Fixes in case of non existent computing confs.

---
 .../base_app/templates/edit_computing_conf.html      |  4 +---
 services/webapp/code/rosetta/base_app/views.py       | 12 +++++++-----
 2 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/services/webapp/code/rosetta/base_app/templates/edit_computing_conf.html b/services/webapp/code/rosetta/base_app/templates/edit_computing_conf.html
index 67032cb..9a51401 100644
--- a/services/webapp/code/rosetta/base_app/templates/edit_computing_conf.html
+++ b/services/webapp/code/rosetta/base_app/templates/edit_computing_conf.html
@@ -24,9 +24,7 @@
 
        <tr>
         <td>
-         <textarea name="new_conf" style="height:300px; width:500px">
-{{ data.computing_conf_data}}
-         </textarea>
+         <textarea name="new_conf" style="height:300px; width:500px">{{ data.computing_conf_data}}</textarea>
         </td>
        </tr>
 
diff --git a/services/webapp/code/rosetta/base_app/views.py b/services/webapp/code/rosetta/base_app/views.py
index 8ae2bce..dd6eeab 100644
--- a/services/webapp/code/rosetta/base_app/views.py
+++ b/services/webapp/code/rosetta/base_app/views.py
@@ -775,7 +775,7 @@ def edit_computing_conf(request):
             raise Exception('Unknown computing "{}"'.format(computing_uuid))
         
         # Get computing conf
-        computingSysConf = ComputingSysConf.objects.get(computing=computing)   
+        computingSysConf, _ = ComputingSysConf.objects.get_or_create(computing=computing)   
         
         # Edit conf?
         if new_conf:
@@ -785,8 +785,9 @@ def edit_computing_conf(request):
             computingSysConf.save()
             data['saved'] = True
 
-        # Dump conf data for the webpage            
-        data['computing_conf_data'] = json.dumps(computingSysConf.data)
+        # Dump conf data for the webpage
+        if computingSysConf.data:
+            data['computing_conf_data'] = json.dumps(computingSysConf.data)
     
     elif computing_conf_type == 'user':
 
@@ -800,7 +801,7 @@ def edit_computing_conf(request):
             raise Exception('Unknown computing "{}"'.format(computing_uuid))
 
         # Get computing conf
-        computingUserConf = ComputingUserConf.objects.get(computing=computing)
+        computingUserConf, _ = ComputingUserConf.objects.get_or_create(computing=computing, user=request.user)
 
         # Edit conf?
         if new_conf:
@@ -811,7 +812,8 @@ def edit_computing_conf(request):
             data['saved'] = True
         
         # Dump conf data for the webpage
-        data['computing_conf_data'] = json.dumps(computingUserConf.data) 
+        if computingUserConf.data:
+            data['computing_conf_data'] = json.dumps(computingUserConf.data)
 
            
     else:
-- 
GitLab