diff --git a/gracedb/alerts/old_alert.py b/gracedb/alerts/old_alert.py index c08c7fbd1092ffd2b136fef0d45a36fc1589345f..74c7fee6815e16f8cd3af6afa7b15b17b97b2007 100644 --- a/gracedb/alerts/old_alert.py +++ b/gracedb/alerts/old_alert.py @@ -147,9 +147,10 @@ def issueAlertForUpdate(event, description, doxmpp, filename="", serialized_obje # XXX No emails or phone calls for this. Argh. # The only kind of serialized object relevant for a Label is an event. -def issueAlertForLabel(event, label, doxmpp, serialized_event=None, event_url=None): +# False - why not just send the labelling object? +def issueAlertForLabel(event, label, doxmpp, serialized_object=None, event_url=None): if doxmpp: - issueXMPPAlert(event, "", "label", label, serialized_event) + issueXMPPAlert(event, "", "label", label, serialized_object) # Email profileRecips = [] phoneRecips = [] diff --git a/gracedb/alerts/superevent_utils.py b/gracedb/alerts/superevent_utils.py index da8b9daf379cab41f2bf0293845694b7552aa809..3050afcdee0b6c7399898e64ea3f35bc1b1a1bdc 100644 --- a/gracedb/alerts/superevent_utils.py +++ b/gracedb/alerts/superevent_utils.py @@ -99,7 +99,7 @@ def issue_alert_for_superevent_label_creation(labelling, request=None): # Send alerts # NOTE: current alerts don't include an object (change this?) issue_alerts(labelling.superevent, alert_type="label", url=url, - description=description, serialized_object=None) + description=description, serialized_object=serialized_object) def issue_alert_for_superevent_label_removal(labelling, request=None): @@ -112,7 +112,7 @@ def issue_alert_for_superevent_label_removal(labelling, request=None): # Send alerts issue_alerts(labelling.superevent, alert_type="update", url=url, - description=description, serialized_object=None) + description=description, serialized_object=serialized_object) def issue_alert_for_superevent_voevent(voevent, request=None): diff --git a/gracedb/events/view_logic.py b/gracedb/events/view_logic.py index 9e496d29f134dcb4e0758a987c470a802c4baa82..dab48bc6e2738f2fe74a5c284fba89e9d21ee53b 100644 --- a/gracedb/events/view_logic.py +++ b/gracedb/events/view_logic.py @@ -12,7 +12,8 @@ from .models import EMBBEventLog, EMGroup from .models import EMObservation, EMFootprint from .translator import handle_uploaded_data from .view_utils import _saveUploadedFile -from .view_utils import eventToDict, eventLogToDict, emObservationToDict +from .view_utils import eventToDict, eventLogToDict, emObservationToDict, \ + labelToDict from .permission_utils import assign_default_event_perms from alerts.old_alert import issueAlert, issueAlertForLabel, issueAlertForUpdate, \ @@ -214,8 +215,12 @@ def create_label(event, request, labelName, doAlert=True, doXMPP=True): logger.exception('Problem saving log message (%s)' % str(e)) d['error'] = str(e) + # Serialize the labelling object + serialized_label = labelToDict(labelling) + try: - issueAlertForLabel(event, label, doXMPP, event_url=event_url) + issueAlertForLabel(event, label, doXMPP, event_url=event_url, + serialized_object=serialized_label) except Exception as e: logger.exception('Problem issuing alert (%s)' % str(e)) d['warning'] = "Problem issuing alert (%s)" % str(e) @@ -258,11 +263,15 @@ def delete_label(event, request, labelName, doXMPP=True): logger.exception('Problem saving log message (%s)' % str(e)) d['error'] = str(e) + # Serialize deleted labelling object + serialized_label = labelToDict(this_label) + # send an XMPP alert, no email or phone alerts try: if doXMPP: - issueXMPPAlert(event, "", alert_type="label", - description="Label {0} removed".format(label.name)) + issueXMPPAlert(event, "", alert_type="update", + description="Label {0} removed".format(label.name), + serialized_object=serialized_label) except Exception as e: logger.exception('Problem issuing alert (%s)' % str(e)) d['warning'] = "Problem issuing alert (%s)" % str(e) diff --git a/gracedb/events/view_utils.py b/gracedb/events/view_utils.py index 0ec4b92c4767ca1e97be1e5acac1cb16a0445979..4e2b9a5f1978a8f360e2f9c222710a1a63da4e46 100644 --- a/gracedb/events/view_utils.py +++ b/gracedb/events/view_utils.py @@ -416,14 +416,14 @@ def eventLogToDict(log, request=None): } -def labelToDict(label, request=None): +def labelToDict(labelling, request=None): return { - "name" : label.label.name, - "creator" : label.creator.username, - "created" : label.created.strftime( + "name" : labelling.label.name, + "creator" : labelling.creator.username, + "created" : labelling.created.strftime( settings.GRACE_STRFTIME_FORMAT), "self" : reverse("labels", - args=[label.event.graceid(), label.label.name], + args=[labelling.event.graceid(), labelling.label.name], request=request), }