Skip to content
Snippets Groups Projects
Commit e05ee49e authored by Tanner Prestegard's avatar Tanner Prestegard Committed by GraceDB
Browse files

Adding serialized object to label alerts

Adding serialized label object to label creation and removal
alerts.  This may not be permanent, but some users want this
feature since the object contains a 'self' link which
they use to tell alerts from different servers apart.
parent 06c11628
No related branches found
No related tags found
1 merge request!8Superevents
......@@ -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 = []
......
......@@ -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):
......
......@@ -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)
......
......@@ -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),
}
......
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