diff --git a/SAS/MoM/MoMQueryService/MoMQueryServiceServer/momqueryservice.py b/SAS/MoM/MoMQueryService/MoMQueryServiceServer/momqueryservice.py index 09d0b885d30083989a3989318b58ccbde0b378fe..76ac1582c4d4f7419c8064c4e04e971ad1be1eb3 100755 --- a/SAS/MoM/MoMQueryService/MoMQueryServiceServer/momqueryservice.py +++ b/SAS/MoM/MoMQueryService/MoMQueryServiceServer/momqueryservice.py @@ -592,14 +592,16 @@ where project.mom2id = %s and (project_role.name = "Pi" or project_role.name = " parameters = (user_name, ) rows = self._executeSelectQuery(query, parameters) - result = [] + result = {} for row in rows: mom_id = str(row['mom_id']) projectName = row['projectname'] trigger_id = str(row['id']) - result.append( (mom_id, projectName, trigger_id) ) - logger.info('Received the following triggers from the DB: %s', result) + result[trigger_id] = {'project_name': projectName, 'mom_id': mom_id} + + logger.debug('Received the following triggers from the DB: %s', result) + return result def getProjectTaskIds(self, project_mom2id): diff --git a/SAS/TriggerServices/django_rest/restinterface/triggerinterface/views.py b/SAS/TriggerServices/django_rest/restinterface/triggerinterface/views.py index ee11a177b841d2228e2bdb41bb200e0f015e1cda..e9864f4bae09c4271592d6e0624f55954bcec59d 100644 --- a/SAS/TriggerServices/django_rest/restinterface/triggerinterface/views.py +++ b/SAS/TriggerServices/django_rest/restinterface/triggerinterface/views.py @@ -44,24 +44,36 @@ class TriggerListView(views.APIView): def get(self, request, format=None, **kwargs): logger.debug('got GET from -> ' + str(request.META['REMOTE_ADDR'])) - triggers = momrpc.get_triggers(str(request.user)) + result = momrpc.get_triggers(str(request.user)) # Add the MoM URL for the project. + # result = { "trigger_id", ("project_name", "mom_id")} + # -> new_result["mom_id"]["trigger_id"] = {'project_name': project_name, 'url': URL} # TODO Add the real URL! - triggers_with_url = [] - for row in triggers: - triggers_with_url.append((row[0], row[1], row[2], "http://---")) + mom_ids = {} + for trigger_id, trigger_details in result.iteritems(): + project_name = trigger_details['project_name'] + mom_id = trigger_details['mom_id'] + url = 'http://---' + # Initialise the dict at [mom_id][] + if mom_id not in mom_ids: + mom_ids[mom_id] = {} + mom_ids[mom_id][trigger_id] = {'project_name': project_name, 'url': url} # If the requested format is not HTML return the triggers unmodified. - if 'format' not in request.GET or request.GET['format'] != "html": - return Response(triggers_with_url) + if 'format' not in request.GET or request.GET['format'] != 'html': + return Response(mom_ids) # The HTML representation of the triggers gets a bit beautified. - htmlContent = "<h2>LOFAR triggers</h2><p>" - for trigger in triggers_with_url: - htmlContent += "MoM id = " + trigger[0] + ", project name = " + trigger[1] + ", trigger id = " + trigger[2] + ", URL = " + trigger[3] - htmlContent += "</br>" - htmlContent +="</p>" + htmlContent = '<h2>LOFAR triggers</h2>' + for mom_id, mom_details in mom_ids.iteritems(): + htmlContent += '<p>' + 'MoM id = ' + mom_id + for trigger_id, trigger_details in mom_details.iteritems(): + htmlContent += '<br>trigger id = ' + trigger_id + \ + ', project name = ' + trigger_details['project_name'] + \ + ', URL = ' + trigger_details['url'] + '</br>' + htmlContent += '</p>' + return Response(htmlContent) def post(self, request, format=None, **kwargs):