From b8b94dd99a648c8654e218891ac314c70aeb62a6 Mon Sep 17 00:00:00 2001
From: Jaden Diefenbaugh <blakcap@users.noreply.github.com>
Date: Thu, 2 Mar 2017 11:24:37 +0100
Subject: [PATCH] rm default group, better support for no groups

---
 beat/web/reports/models.py | 46 +++++++++++++++++++-------------------
 1 file changed, 23 insertions(+), 23 deletions(-)

diff --git a/beat/web/reports/models.py b/beat/web/reports/models.py
index dd45defc3..77a9ce10c 100644
--- a/beat/web/reports/models.py
+++ b/beat/web/reports/models.py
@@ -205,13 +205,15 @@ class Report(models.Model):
             self.referenced_plotterparameters.add(plotterparameter)
 
 
-    def add_experiments(self, experiment_fullname_list, group='default'):
+    def add_experiments(self, experiment_fullname_list, group=''):
         # Check that the report is modifiable
         if self.status != Report.EDITABLE:
             return {
                 'success': False,
                 'error': "Report not modifiable",
             }
+        # If there was not a group name passed, just add it to the report
+        addingToGroup = len(group) != 0
 
         # Process the list of experiments
         accessible_experiments = []
@@ -219,22 +221,20 @@ class Report(models.Model):
 
         experiments, unknown_experiments = self._get_experiments_from_fullname_list(experiment_fullname_list)
 
-        # Find the group to add experiments to
-        if len(group) == 0:
-            return {
-                    'success': False,
-                    'error': 'Empty group given'
-            }
         report_content = json.loads(self.content)
         curr_group = {}
-        if report_content['groups'].has_key(group):
-            curr_group = report_content['groups'][group]
-        else:
-            curr_group = {
-                    'experiments': [],
-                    'reportItemIds': [],
-                    'analyzer': ''
-                    }
+        if addingToGroup:
+            if not report_content.has_key('groups'):
+                report_content['groups'] = {}
+
+            if report_content['groups'].has_key(group):
+                curr_group = report_content['groups'][group]
+            else:
+                curr_group = {
+                        'experiments': [],
+                        'reportItemIds': [],
+                        'analyzer': ''
+                        }
 
         for experiment in experiments:
             # Check experiments accessibility
@@ -251,17 +251,17 @@ class Report(models.Model):
         for experiment in accessible_experiments:
             if len(experiment.blocks.filter(analyzer=True)) >= 1:
                 self.experiments.add(experiment)
-                curr_group['experiments'].append(experiment.fullname())
-                if len(curr_group['experiments']) == 1 and group != 'default':
-                    import ipdb; ipdb.set_trace()
-                    curr_group['analyzer'] = list(experiment.analyzers())[0]
+                if addingToGroup:
+                    curr_group['experiments'].append(experiment.fullname())
+                    if len(curr_group['experiments']) == 1:
+                        curr_group['analyzer'] = list(experiment.analyzers())[0]
             else:
                 incompatible_experiments.append(experiment.fullname())
 
-        report_content['groups'][group] = curr_group
-
-        self.content = json.dumps(report_content)
-        self.save()
+        if addingToGroup:
+            report_content['groups'][group] = curr_group
+            self.content = json.dumps(report_content)
+            self.save()
 
         return {
             'success':                  True,
-- 
GitLab