diff --git a/docs/admin_docs/source/miscellaneous.rst b/docs/admin_docs/source/miscellaneous.rst index d38babc086a846ceff8da49629ed2001a05dfe4d..34c81e7df8f277620abcbccb73599242d9019ce8 100644 --- a/docs/admin_docs/source/miscellaneous.rst +++ b/docs/admin_docs/source/miscellaneous.rst @@ -60,7 +60,7 @@ for all gstlal events during O1:: if f.is_valid(): objects = form.cleaned_data['query'] for object in objects: - f.write('%s\n' % object.graceid()) + f.write('%s\n' % object.graceid) f.close() Now, go to the data directory root ``/opt/gracedb/data`` and temporarily diff --git a/gracedb/alerts/email.py b/gracedb/alerts/email.py index 818e8d07c547c0248242dfd68c4ad2d9d7369dea..44edd66149936cc2538199c9fd74575012d577df 100644 --- a/gracedb/alerts/email.py +++ b/gracedb/alerts/email.py @@ -74,12 +74,12 @@ def issueAlertForLabel(event, label, doxmpp, serialized_event=None, event_url=No phoneRecips.append(recip) if event.search: - subject = "[gracedb] %s / %s / %s / %s" % (label.name, event.pipeline.name, event.search.name, event.graceid()) + subject = "[gracedb] %s / %s / %s / %s" % (label.name, event.pipeline.name, event.search.name, event.graceid) else: - subject = "[gracedb] %s / %s / %s" % (label.name, event.pipeline.name, event.graceid()) + subject = "[gracedb] %s / %s / %s" % (label.name, event.pipeline.name, event.graceid) message = "A %s event with graceid %s was labeled with %s" % \ - (event.pipeline.name, event.graceid(), label.name) + (event.pipeline.name, event.graceid, label.name) if event_url: message += '\n\n%s' % event_url @@ -141,7 +141,7 @@ def issueEmailAlert(event, event_url): if recip.email: bccaddresses.append(recip.email) - subject = "[gracedb] %s event. ID: %s" % (event.pipeline.name, event.graceid()) + subject = "[gracedb] %s event. ID: %s" % (event.pipeline.name, event.graceid) message = """ New Event %s / %s @@ -154,7 +154,7 @@ Event Summary: """ message %= (event.group.name, event.pipeline.name, - event.graceid(), + event.graceid, event_url, event.weburl(), "%s %s" % (event.submitter.first_name, event.submitter.last_name), @@ -205,12 +205,12 @@ def issueXMPPAlert(event, location, alert_type="new", description="", serialized nodename = nodename + "_%s" % event.search.name.lower() nodenames.append(nodename) - log.debug('issueXMPPAlert: %s' % event.graceid()) + log.debug('issueXMPPAlert: %s' % event.graceid) # Create the output dictionary and serialize as JSON. lva_data = { 'file': location, - 'uid': event.graceid(), + 'uid': event.graceid, 'alert_type': alert_type, # The following string cast is necessary because sometimes # description is a label object! @@ -232,7 +232,7 @@ def issueXMPPAlert(event, location, alert_type="new", description="", serialized if settings.USE_LVALERT_OVERSEER: # Calculate unique message_id and log message_id = sha1(nodename + msg).hexdigest() - log.info("issueXMPPAlert: sending %s,%s,%s to node %s" % (event.graceid(), alert_type, message_id, nodename)) + log.info("issueXMPPAlert: sending %s,%s,%s to node %s" % (event.graceid, alert_type, message_id, nodename)) rdict = manager.dict() msg_dict = {'node_name': nodename, 'message': msg, 'action': 'push'} diff --git a/gracedb/alerts/phone.py b/gracedb/alerts/phone.py index ddaefd82625bb44c1f1909f97ffb817c162f7807..f1d22956eb57d35e45d77451615a47470aaa5b1d 100644 --- a/gracedb/alerts/phone.py +++ b/gracedb/alerts/phone.py @@ -64,7 +64,7 @@ def issue_phone_alerts(event, contacts, label=None): # Compile Twilio voice URL and message body msg_params = { 'pipeline': event.pipeline.name, - 'graceid': event.graceid(), + 'graceid': event.graceid, 'server': hostname, } if alert_type == "label_added": diff --git a/gracedb/alerts/xmpp.py b/gracedb/alerts/xmpp.py index 2b7f712ad5152d4cc3b95a9d1b3ca7abc633ce30..cb136a708e6536607c6dda87412b2ad17bd7fcf2 100644 --- a/gracedb/alerts/xmpp.py +++ b/gracedb/alerts/xmpp.py @@ -76,12 +76,8 @@ def issue_xmpp_alerts(event_or_superevent, alert_type, serialized_object, # Determine LVAlert node names node_names = get_xmpp_node_names(event_or_superevent) - # Get uid - FIXME when graceid is switched to a property for events - # instead of a callable - if is_event(event_or_superevent): - uid = event_or_superevent.graceid() - else: - uid = event_or_superevent.graceid + # Get uid + uid = event_or_superevent.graceid # Create the output dictionary and serialize as JSON. lva_data = { diff --git a/gracedb/api/v1/events/views.py b/gracedb/api/v1/events/views.py index 17b0d037f3db5e4c988e41fe3772b89e1185a021..73394b9b544b6bb42c67e4e83bb107f47a1c4162 100644 --- a/gracedb/api/v1/events/views.py +++ b/gracedb/api/v1/events/views.py @@ -189,7 +189,7 @@ def event_perm_object_required(view): # # def get_labels(self,obj): # request = self.context['request'] -# graceid = obj.graceid() +# graceid = obj.graceid # return dict([ # (labelling.label.name, # reverse("labels", @@ -199,7 +199,7 @@ def event_perm_object_required(view): # # def get_links(self,obj): # request = self.context['request'] -# graceid = obj.graceid() +# graceid = obj.graceid # return { # "neighbors" : reverse("neighbors", args=[graceid], request=request), # "log" : reverse("eventlog-list", args=[graceid], request=request), @@ -485,7 +485,7 @@ class EventList(APIView): response = Response(rv, status=status.HTTP_201_CREATED) response["Location"] = api_reverse( 'events:event-detail', - args=[event.graceid()], + args=[event.graceid], request=request) return response else: # no event created @@ -663,7 +663,7 @@ class EventNeighbors(APIView): 'links' : { 'self': request.build_absolute_uri(), 'event': api_reverse("events:event-detail", - args=[event.graceid()], request=request), + args=[event.graceid], request=request), } }) @@ -693,7 +693,7 @@ class EventLabel(APIView): 'links' : [{ 'self': request.build_absolute_uri(), 'event': api_reverse("events:event-detail", - args=[event.graceid()], + args=[event.graceid], request=request), }], 'labels': labels @@ -835,7 +835,7 @@ class EventLogList(APIView): request.data['displayName'] = displayNames[i] tmp = EventLogTagDetail() - retval = tmp.put(request, event.graceid(), n, tagname) + retval = tmp.put(request, event.graceid, n, tagname) # XXX This seems like a bizarre way of getting an error message out. if retval.status_code != 201: return Response(('Log message created, but error creating ' @@ -1043,18 +1043,18 @@ def tagToDict(tag, columns=None, request=None, event=None, n=None): # We want a link to the self only. End of the line. rv['links'] = { "self" : api_reverse("events:eventlogtag-detail", - args=[event.graceid(),n,tag.name], + args=[event.graceid,n,tag.name], request=request) } else: # Links to all log messages of the event with this tag. rv['links'] = { "logs" : [api_reverse("events:eventlog-detail", - args=[event.graceid(),log.N], + args=[event.graceid,log.N], request=request) for log in event.getLogsForTag(tag.name)], "self" : api_reverse("events:eventtag-detail", - args=[event.graceid(),tag.name], + args=[event.graceid,tag.name], request=request) } else: @@ -1063,7 +1063,7 @@ def tagToDict(tag, columns=None, request=None, event=None, n=None): pass # rv['links'] = { # "events" : [reverse("event-detail", -# args=[event.graceid()], +# args=[event.graceid], # request=request) # for event in tag.getEvents()], # "self" : reverse("tag-detail", @@ -1104,7 +1104,7 @@ class EventTagList(APIView): 'tags' : [ { 'self': api_reverse("events:eventtag-detail", - args=[event.graceid(), tag.name], request=request), + args=[event.graceid, tag.name], request=request), 'name': tag.name, 'displayName': tag.displayName } @@ -1142,7 +1142,7 @@ class EventLogTagList(APIView): 'tags' : [ { 'self': api_reverse("events:eventlogtag-detail", - args=[event.graceid(), eventlog.N, tag.name], + args=[event.graceid, eventlog.N, tag.name], request=request), 'name': tag.name, 'displayName': tag.displayName @@ -1277,7 +1277,7 @@ class EventPermissionList(APIView): links['groupeventpermissions'] = out_dict for group in groups: out_dict[group.name] = api_reverse("events:groupeventpermission-list", - args=[event.graceid(),group.name], request=request) + args=[event.graceid,group.name], request=request) return Response(rv, status=status.HTTP_200_OK) class GroupEventPermissionList(APIView): @@ -1454,7 +1454,7 @@ class Files(APIView): def get(self, request, event, filename=""): # Do not filename to be None. That messes up later os.path.join filename = filename or "" - graceid = event.graceid() + graceid = event.graceid filepath = os.path.join(event.datadir, filename) @@ -1533,7 +1533,7 @@ class Files(APIView): longname = fdest.name shortname = longname[longname.rfind(filename):] rv['permalink'] = api_reverse( - "events:files", args=[event.graceid(), shortname], request=request) + "events:files", args=[event.graceid, shortname], request=request) response = Response(rv, status=status.HTTP_201_CREATED) except Exception, e: # XXX This needs some thought. @@ -1647,7 +1647,7 @@ class VOEventList(APIView): return Response({'error': msg}, status = status.HTTP_400_BAD_REQUEST) voevent_display_type = dict(VOEvent.VOEVENT_TYPE_CHOICES)[voevent_type].capitalize() - filename = "%s-%d-%s.xml" % (event.graceid(), voevent.N, voevent_display_type) + filename = "%s-%d-%s.xml" % (event.graceid, voevent.N, voevent_display_type) filepath = os.path.join(event.datadir, filename) fdest = VersionedFile(filepath, 'w') fdest.write(voevent_text) @@ -1671,11 +1671,11 @@ class VOEventList(APIView): logentry.save() except Exception as e: rv['warnings'] = 'Problem saving log entry for VOEvent %s of %s' % (voevent.N, - event.graceid()) + event.graceid) # Tag log entry as 'em_follow') tmp = EventLogTagDetail() - retval = tmp.put(request, event.graceid(), logentry.N, 'em_follow') + retval = tmp.put(request, event.graceid, logentry.N, 'em_follow') # XXX This seems like a bizarre way of getting an error message out. if retval.status_code != 201: return Response(('VOEvent log message created, but error tagging ' diff --git a/gracedb/api/v1/superevents/serializers.py b/gracedb/api/v1/superevents/serializers.py index f85e53e9c2308a0449653af83bbc3acceb204a37..b341f4b2f4f42fd078219bf8fd4d966cb5e611bd 100644 --- a/gracedb/api/v1/superevents/serializers.py +++ b/gracedb/api/v1/superevents/serializers.py @@ -81,12 +81,12 @@ class SupereventSerializer(serializers.ModelSerializer): # Make sure preferred_event is not already assigned if (preferred_event.superevent or hasattr(preferred_event, 'superevent_preferred_for')): - self.fail('event_assigned', graceid=preferred_event.graceid()) + self.fail('event_assigned', graceid=preferred_event.graceid) # Check that preferred_event has the correct type for the superevent # it's being assigned to if not Superevent.event_category_check(preferred_event, category): - self.fail('category_mismatch', graceid=preferred_event.graceid(), + self.fail('category_mismatch', graceid=preferred_event.graceid, e_category=preferred_event.get_event_category(), s_category=category_display) @@ -94,10 +94,10 @@ class SupereventSerializer(serializers.ModelSerializer): if events: for ev in events: if (ev.superevent or hasattr(ev, 'superevent_preferred_for')): - self.fail('event_assigned', graceid=ev.graceid()) + self.fail('event_assigned', graceid=ev.graceid) # Check each event for type compatibility if not Superevent.event_category_check(ev, category): - self.fail('category_mismatch', graceid=ev.graceid(), + self.fail('category_mismatch', graceid=ev.graceid, e_category=ev.get_event_category(), s_category=category_display) @@ -122,10 +122,10 @@ class SupereventSerializer(serializers.ModelSerializer): # Custom method fields ---------------------------------------------------- def get_gw_events(self, obj): - return [ev.graceid() for ev in obj.get_internal_events()] + return [ev.graceid for ev in obj.get_internal_events()] def get_em_events(self, obj): - return [ev.graceid() for ev in obj.get_external_events()] + return [ev.graceid for ev in obj.get_external_events()] def get_links(self, obj): bound_reverse = functools.partial(api_reverse, @@ -186,7 +186,7 @@ class SupereventUpdateSerializer(SupereventSerializer): self.instance) or hasattr(preferred_event, 'superevent_preferred_for') and \ preferred_event.superevent_preferred_for != self.instance): - self.fail('event_assigned', graceid=preferred_event.graceid()) + self.fail('event_assigned', graceid=preferred_event.graceid) return updated_attributes @@ -227,7 +227,7 @@ class SupereventEventSerializer(serializers.ModelSerializer): fields = ('self', 'graceid', 'event', 'superevent', 'user') def get_self(self, obj): - return api_reverse('events:event-detail', args=[obj.graceid()], + return api_reverse('events:event-detail', args=[obj.graceid], request=self.context.get('request', None)) def validate(self, data): @@ -237,12 +237,12 @@ class SupereventEventSerializer(serializers.ModelSerializer): # Check if event is already assigned to a superevent if (event.superevent or hasattr(event, 'superevent_preferred_for')): - self.fail('event_assigned', graceid=event.graceid()) + self.fail('event_assigned', graceid=event.graceid) # Check that event has the correct type for the superevent it's being # assigned to if not superevent.event_compatible(event): - self.fail('category_mismatch', graceid=event.graceid(), + self.fail('category_mismatch', graceid=event.graceid, e_category=event.get_event_category(), s_category=superevent.get_category_display()) diff --git a/gracedb/api/v1/superevents/tests/test_access.py b/gracedb/api/v1/superevents/tests/test_access.py index 71254416a63d54349362d09891ddc384aa9f832a..d15824859a072e728968aa7871665afe974de6cf 100644 --- a/gracedb/api/v1/superevents/tests/test_access.py +++ b/gracedb/api/v1/superevents/tests/test_access.py @@ -103,15 +103,15 @@ class TestSupereventListPost(SupereventManagersGroupAndUserSetup, 't_end': 2, } cls.production_superevent_data = { - 'preferred_event': p_ev.graceid(), + 'preferred_event': p_ev.graceid, 'category': Superevent.SUPEREVENT_CATEGORY_PRODUCTION, } cls.test_superevent_data = { - 'preferred_event': t_ev.graceid(), + 'preferred_event': t_ev.graceid, 'category': Superevent.SUPEREVENT_CATEGORY_TEST, } cls.mdc_superevent_data = { - 'preferred_event': m_ev.graceid(), + 'preferred_event': m_ev.graceid, 'category': Superevent.SUPEREVENT_CATEGORY_MDC, } cls.production_superevent_data.update(base_superevent_data) @@ -782,7 +782,7 @@ class TestSupereventEventList(SupereventManagersGroupAndUserSetup, self.assertEqual(len(response.data['events']), s.events.count()) graceid_list = [ev['graceid'] for ev in response.data['events']] for ev in s.events.all(): - self.assertIn(ev.graceid(), graceid_list) + self.assertIn(ev.graceid, graceid_list) def test_lvem_get_no_view_perms(self): """LV-EM user can't see events for internal-only superevent""" @@ -807,7 +807,7 @@ class TestSupereventEventList(SupereventManagersGroupAndUserSetup, self.lvem_superevent.events.count()) graceid_list = [ev['graceid'] for ev in data['events']] for ev in self.lvem_superevent.events.all(): - self.assertIn(ev.graceid(), graceid_list) + self.assertIn(ev.graceid, graceid_list) def test_public_get_no_view_perms(self): """Public user can't see events for non-public superevents""" @@ -843,7 +843,7 @@ class TestSupereventEventList(SupereventManagersGroupAndUserSetup, url = v_reverse('superevents:superevent-event-list', args=[self.internal_superevent.superevent_id]) response = self.request_as_user(url, "POST", self.internal_user, - data={'event': ev.graceid()}) + data={'event': ev.graceid}) self.assertEqual(response.status_code, 403) def test_basic_internal_post_mdc(self): @@ -858,7 +858,7 @@ class TestSupereventEventList(SupereventManagersGroupAndUserSetup, url = v_reverse('superevents:superevent-event-list', args=[s.superevent_id]) response = self.request_as_user(url, "POST", self.internal_user, - data={'event': ev.graceid()}) + data={'event': ev.graceid}) self.assertEqual(response.status_code, 403) def test_basic_internal_post_test(self): @@ -873,9 +873,9 @@ class TestSupereventEventList(SupereventManagersGroupAndUserSetup, url = v_reverse('superevents:superevent-event-list', args=[s.superevent_id]) response = self.request_as_user(url, "POST", self.internal_user, - data={'event': ev.graceid()}) + data={'event': ev.graceid}) self.assertEqual(response.status_code, 201) - self.assertEqual(response.data['graceid'], ev.graceid()) + self.assertEqual(response.data['graceid'], ev.graceid) def test_privileged_internal_post_production(self): """Privileged internal user can add events to production superevents""" @@ -887,9 +887,9 @@ class TestSupereventEventList(SupereventManagersGroupAndUserSetup, url = v_reverse('superevents:superevent-event-list', args=[self.internal_superevent.superevent_id]) response = self.request_as_user(url, "POST", self.sm_user, - data={'event': ev.graceid()}) + data={'event': ev.graceid}) self.assertEqual(response.status_code, 201) - self.assertEqual(response.data['graceid'], ev.graceid()) + self.assertEqual(response.data['graceid'], ev.graceid) def test_privileged_internal_post_mdc(self): """Privileged internal user can add events to mdc superevents""" @@ -903,9 +903,9 @@ class TestSupereventEventList(SupereventManagersGroupAndUserSetup, url = v_reverse('superevents:superevent-event-list', args=[s.superevent_id]) response = self.request_as_user(url, "POST", self.sm_user, - data={'event': ev.graceid()}) + data={'event': ev.graceid}) self.assertEqual(response.status_code, 201) - self.assertEqual(response.data['graceid'], ev.graceid()) + self.assertEqual(response.data['graceid'], ev.graceid) def test_privileged_internal_post_test(self): """Privileged internal user can add events to test superevents""" @@ -919,9 +919,9 @@ class TestSupereventEventList(SupereventManagersGroupAndUserSetup, url = v_reverse('superevents:superevent-event-list', args=[s.superevent_id]) response = self.request_as_user(url, "POST", self.sm_user, - data={'event': ev.graceid()}) + data={'event': ev.graceid}) self.assertEqual(response.status_code, 201) - self.assertEqual(response.data['graceid'], ev.graceid()) + self.assertEqual(response.data['graceid'], ev.graceid) def test_lvem_user_post(self): """LV-EM user can't add events to superevents""" @@ -934,14 +934,14 @@ class TestSupereventEventList(SupereventManagersGroupAndUserSetup, url = v_reverse('superevents:superevent-event-list', args=[self.internal_superevent.superevent_id]) response = self.request_as_user(url, "POST", self.lvem_user, - data={'event': ev.graceid()}) + data={'event': ev.graceid}) self.assertEqual(response.status_code, 404) # Expose superevent and retry, should get 403 now assign_perm('superevent.view_superevent', self.lvem_group, obj=self.internal_superevent) response = self.request_as_user(url, "POST", self.lvem_user, - data={'event': ev.graceid()}) + data={'event': ev.graceid}) self.assertEqual(response.status_code, 403) def test_public_user_post(self): @@ -955,7 +955,7 @@ class TestSupereventEventList(SupereventManagersGroupAndUserSetup, url = v_reverse('superevents:superevent-event-list', args=[self.internal_superevent.superevent_id]) response = self.request_as_user(url, "POST", - data={'event': ev.graceid()}) + data={'event': ev.graceid}) self.assertEqual(response.status_code, 403) # TODO: this is 403 for now, will be 404 in the future @@ -986,18 +986,18 @@ class TestSupereventEventDetail(SupereventManagersGroupAndUserSetup, for ev in s.events.all(): # Set up URL url = v_reverse('superevents:superevent-event-detail', - args=[s.superevent_id, ev.graceid()]) + args=[s.superevent_id, ev.graceid]) # Get response and check code response = self.request_as_user(url, "GET", self.internal_user) self.assertEqual(response.status_code, 200) # Check event number and graceids - self.assertEqual(response.data['graceid'], ev.graceid()) + self.assertEqual(response.data['graceid'], ev.graceid) def test_lvem_get_no_view_perms(self): """LV-EM user can't see events for internal-only superevent""" for ev in self.internal_superevent.events.all(): url = v_reverse('superevents:superevent-event-detail', - args=[self.internal_superevent.superevent_id, ev.graceid()]) + args=[self.internal_superevent.superevent_id, ev.graceid]) response = self.request_as_user(url, "GET", self.lvem_user) # Should get 404 response - because of filtering, this superevent # should be excluded from the queryset @@ -1009,18 +1009,18 @@ class TestSupereventEventDetail(SupereventManagersGroupAndUserSetup, # don't show events in the list if they aren't exposed? for ev in self.lvem_superevent.events.all(): url = v_reverse('superevents:superevent-event-detail', - args=[self.lvem_superevent.superevent_id, ev.graceid()]) + args=[self.lvem_superevent.superevent_id, ev.graceid]) response = self.request_as_user(url, "GET", self.lvem_user) self.assertEqual(response.status_code, 200) # Check response data - self.assertEqual(response.data['graceid'], ev.graceid()) + self.assertEqual(response.data['graceid'], ev.graceid) def test_public_get_no_view_perms(self): """Public user can't see events for non-public superevents""" # Internal superevent for ev in self.internal_superevent.events.all(): url = v_reverse('superevents:superevent-event-detail', - args=[self.internal_superevent.superevent_id, ev.graceid()]) + args=[self.internal_superevent.superevent_id, ev.graceid]) response = self.request_as_user(url, "GET") # Should get 404 response - because of filtering, this superevent # should be excluded from the queryset @@ -1029,7 +1029,7 @@ class TestSupereventEventDetail(SupereventManagersGroupAndUserSetup, for ev in self.lvem_superevent.events.all(): url = v_reverse('superevents:superevent-event-detail', - args=[self.lvem_superevent.superevent_id, ev.graceid()]) + args=[self.lvem_superevent.superevent_id, ev.graceid]) response = self.request_as_user(url, "GET") # Should get 404 response - because of filtering, this superevent # should be excluded from the queryset @@ -1047,7 +1047,7 @@ class TestSupereventEventDetail(SupereventManagersGroupAndUserSetup, """ url = v_reverse('superevents:superevent-event-detail', args=[self.internal_superevent.superevent_id, - self.event1.graceid()]) + self.event1.graceid]) response = self.request_as_user(url, "DELETE", self.internal_user) self.assertEqual(response.status_code, 403) @@ -1064,7 +1064,7 @@ class TestSupereventEventDetail(SupereventManagersGroupAndUserSetup, # Set up URL, make request, check response code url = v_reverse('superevents:superevent-event-detail', - args=[s.superevent_id, ev.graceid()]) + args=[s.superevent_id, ev.graceid]) response = self.request_as_user(url, "DELETE", self.internal_user) self.assertEqual(response.status_code, 403) @@ -1081,7 +1081,7 @@ class TestSupereventEventDetail(SupereventManagersGroupAndUserSetup, # Set up URL, make request, check response code url = v_reverse('superevents:superevent-event-detail', - args=[s.superevent_id, ev.graceid()]) + args=[s.superevent_id, ev.graceid]) response = self.request_as_user(url, "DELETE", self.internal_user) self.assertEqual(response.status_code, 204) @@ -1091,7 +1091,7 @@ class TestSupereventEventDetail(SupereventManagersGroupAndUserSetup, """ url = v_reverse('superevents:superevent-event-detail', args=[self.internal_superevent.superevent_id, - self.event1.graceid()]) + self.event1.graceid]) response = self.request_as_user(url, "DELETE", self.sm_user) self.assertEqual(response.status_code, 204) @@ -1108,7 +1108,7 @@ class TestSupereventEventDetail(SupereventManagersGroupAndUserSetup, # Set up URL, make request, check response code url = v_reverse('superevents:superevent-event-detail', - args=[s.superevent_id, ev.graceid()]) + args=[s.superevent_id, ev.graceid]) response = self.request_as_user(url, "DELETE", self.sm_user) self.assertEqual(response.status_code, 204) @@ -1125,7 +1125,7 @@ class TestSupereventEventDetail(SupereventManagersGroupAndUserSetup, # Set up URL, make request, check response code url = v_reverse('superevents:superevent-event-detail', - args=[s.superevent_id, ev.graceid()]) + args=[s.superevent_id, ev.graceid]) response = self.request_as_user(url, "DELETE", self.sm_user) self.assertEqual(response.status_code, 204) @@ -1134,14 +1134,14 @@ class TestSupereventEventDetail(SupereventManagersGroupAndUserSetup, # Internal superevent url = v_reverse('superevents:superevent-event-detail', args=[self.internal_superevent.superevent_id, - self.event1.graceid()]) + self.event1.graceid]) response = self.request_as_user(url, "DELETE", self.lvem_user) self.assertEqual(response.status_code, 404) # Exposed superevent url = v_reverse('superevents:superevent-event-detail', args=[self.lvem_superevent.superevent_id, - self.event2.graceid()]) + self.event2.graceid]) response = self.request_as_user(url, "DELETE", self.lvem_user) self.assertEqual(response.status_code, 403) @@ -1152,7 +1152,7 @@ class TestSupereventEventDetail(SupereventManagersGroupAndUserSetup, # Internal superevent url = v_reverse('superevents:superevent-event-detail', args=[self.internal_superevent.superevent_id, - self.event1.graceid()]) + self.event1.graceid]) response = self.request_as_user(url, "DELETE") self.assertEqual(response.status_code, 403) # TODO: will be 404 in the future diff --git a/gracedb/events/admin.py b/gracedb/events/admin.py index 04ce6a67a0c7309051704cb35990770e8bbd2a6d..f2d7b260713b5faf957ad980cac247c09930b82d 100644 --- a/gracedb/events/admin.py +++ b/gracedb/events/admin.py @@ -5,7 +5,7 @@ from django.contrib import admin class EventAdmin(admin.ModelAdmin): def graceid(obj): - return obj.graceid() + return obj.graceid graceid.admin_order_field = 'id' list_display = [ graceid, 'group', 'pipeline', 'search', 'submitter' ] diff --git a/gracedb/events/buildVOEvent.py b/gracedb/events/buildVOEvent.py index 287f4c54205fe5daf56a63f7d3f559c53a52c14f..1721f8f88c7bdd51ca7e9aa9d9f9e2f3a8323228 100644 --- a/gracedb/events/buildVOEvent.py +++ b/gracedb/events/buildVOEvent.py @@ -65,7 +65,7 @@ def buildVOEvent(event, serial_number, voevent_type, request=None, skymap_filena # Let's convert that voevent_type to something nicer looking voevent_type = VOEVENT_TYPE_DICT[voevent_type] - objid = event.graceid() + objid = event.graceid # Now build the IVORN. # XXX This will have the string '-Retraction' appended if it is a retraction, diff --git a/gracedb/events/feeds.py b/gracedb/events/feeds.py index 52922dabaa8191067c7a87042fe6e890fa97ab44..c6e549f2a43b3fbb534310de08d3f513cfa4a641 100644 --- a/gracedb/events/feeds.py +++ b/gracedb/events/feeds.py @@ -60,7 +60,7 @@ class EventFeed(Feed): return reverse("home") def item_link(self, obj): - return reverse(view, args=[obj.graceid()]) + return reverse(view, args=[obj.graceid]) def item_author_name(self, obj): return u"{0} {1}".format(obj.submitter.first_name, obj.submitter.last_name) diff --git a/gracedb/events/models.py b/gracedb/events/models.py index 862da5be1cafd6383d7d34a65b26e7b75b54728f..b52b75d689ef5afc3e2d877b14d9117582d6ef16 100644 --- a/gracedb/events/models.py +++ b/gracedb/events/models.py @@ -181,6 +181,7 @@ class Event(models.Model): class Meta: ordering = ["-id"] + @property def graceid(self): if self.group.name == "Test": return "T%04d" % self.id @@ -194,7 +195,7 @@ class Event(models.Model): def weburl(self): # XXX Not good. But then, it never was. - return reverse('file_list', args=[self.graceid()]) + return reverse('file_list', args=[self.graceid]) @property def datadir(self): @@ -284,7 +285,7 @@ class Event(models.Model): raise cls.DoesNotExist("Event matching query does not exist") def __unicode__(self): - return self.graceid() + return self.graceid # Return a list of distinct tags associated with the log messages of this # event. @@ -416,7 +417,7 @@ class EventLog(CleanSaveModel, LogBase, AutoIncrementModel): def fileurl(self): if self.filename: - return reverse('file-download', args=[self.event.graceid(), + return reverse('file-download', args=[self.event.graceid, self.versioned_filename]) else: return None @@ -512,7 +513,7 @@ class EMObservation(EMObservationBase, AutoIncrementModel): def __unicode__(self): return "{event_id} | {group} | {N}".format( - event_id=self.event.graceid(), group=self.group.name, N=self.N) + event_id=self.event.graceid, group=self.group.name, N=self.N) def calculateCoveringRegion(self): footprints = self.emfootprint_set.all() @@ -568,7 +569,7 @@ class Labelling(m2mThroughBase): label = models.ForeignKey(Label) def __unicode__(self): - return "{graceid} | {label}".format(graceid=self.event.graceid(), + return "{graceid} | {label}".format(graceid=self.event.graceid, label=self.label.name) @@ -928,7 +929,7 @@ class VOEvent(VOEventBase, AutoIncrementModel): actual_filename = self.filename if self.file_version >= 0: actual_filename += ',%d' % self.file_version - return reverse('file-download', args=[self.event.graceid(), + return reverse('file-download', args=[self.event.graceid, actual_filename]) else: return None @@ -1033,7 +1034,7 @@ class Signoff(SignoffBase): unique_together = ('event', 'instrument') def __unicode__(self): - return "%s | %s | %s" % (self.event.graceid(), self.instrument, + return "%s | %s | %s" % (self.event.graceid, self.instrument, self.status) EMSPECTRUM = ( @@ -1102,7 +1103,7 @@ class EMBBEventLog(AutoIncrementModel): unique_together = ("event","N") def __unicode__(self): - return "%s-%s-%d" % (self.event.graceid(), self.group.name, self.N) + return "%s-%s-%d" % (self.event.graceid, self.group.name, self.N) # A counter for Eels associated with a given event. This is # important for addressibility. diff --git a/gracedb/events/tests/test_perms.py b/gracedb/events/tests/test_perms.py index 8aca82db2448c074f21d02bf0173a5898e7d66b3..f4e8ca252582fcdba3b846ba51f10e7a40daa236 100644 --- a/gracedb/events/tests/test_perms.py +++ b/gracedb/events/tests/test_perms.py @@ -246,7 +246,7 @@ class TestPerms(TestCase): def test_internal_event_access(self): """Test viewing of events by LIGO users""" for e in Event.objects.all(): - url = reverse('view', args=[e.graceid()]) + url = reverse('view', args=[e.graceid]) response = self.client.get(url, **extra_args(self.internal_user)) self.assertEqual(response.status_code, 200) @@ -255,9 +255,9 @@ class TestPerms(TestCase): # Only the internal event should not be viewable for LV-EM for e in Event.objects.all(): - url = reverse('view', args=[e.graceid()]) + url = reverse('view', args=[e.graceid]) response = self.client.get(url, **extra_args(self.lvem_user)) - if (e.graceid() != self.internal_event.graceid()): + if (e.graceid != self.internal_event.graceid): self.assertEqual(response.status_code, 200) else: self.assertEqual(response.status_code, 403) @@ -267,9 +267,9 @@ class TestPerms(TestCase): # Only the public event should be viewable for public users for e in Event.objects.all(): - url = reverse('view', args=[e.graceid()]) + url = reverse('view', args=[e.graceid]) response = self.client.get(url, **extra_args(self.public_user)) - if (e.graceid() == self.public_event.graceid()): + if (e.graceid == self.public_event.graceid): self.assertEqual(response.status_code, 200) else: self.assertEqual(response.status_code, 403) @@ -295,7 +295,7 @@ class TestPerms(TestCase): def test_internal_log_creation(self): """Test annotation of events by LIGO users""" for e in Event.objects.all(): - url = reverse('logentry', args=[e.graceid(), '']) + url = reverse('logentry', args=[e.graceid, '']) input_dict = { 'comment' : 'This is a test.', 'tagname' : 'test_tag', @@ -310,7 +310,7 @@ class TestPerms(TestCase): """Test annotation of events by LV-EM users""" # Should be able to annotate the LV-EM and public events for e in Event.objects.all(): - url = reverse('logentry', args=[e.graceid(), '']) + url = reverse('logentry', args=[e.graceid, '']) input_dict = { 'comment' : 'This is a test.', 'tagname' : 'test_tag', @@ -329,7 +329,7 @@ class TestPerms(TestCase): # Public user should not be able to annotate any events, # even publicly viewable ones event = self.public_event - url = reverse('logentry', args=[event.graceid(), '']) + url = reverse('logentry', args=[event.graceid, '']) input_dict = { 'comment': 'This is a test.', 'tagname': 'test_tag', @@ -342,7 +342,7 @@ class TestPerms(TestCase): """Test event log tagging by internal user""" for e in Event.objects.all(): # Try to add 'test_tag' to the first log entry. - url = reverse('taglogentry', args=[e.graceid(), 1, 'test_tag']) + url = reverse('taglogentry', args=[e.graceid, 1, 'test_tag']) input_dict = {'displayName': 'test_tag',} response = self.client.post(url, input_dict, **extra_args(self.internal_user)) @@ -354,7 +354,7 @@ class TestPerms(TestCase): # Should be able to tag the LV-EM and public event's logs. for e in Event.objects.all(): # Try to add 'test_tag' to the first log entry. - url = reverse('taglogentry', args=[e.graceid(), 1, 'test_tag']) + url = reverse('taglogentry', args=[e.graceid, 1, 'test_tag']) input_dict = {'displayName': 'test_tag',} response = self.client.post(url, input_dict, **extra_args(self.lvem_user)) @@ -371,7 +371,7 @@ class TestPerms(TestCase): # publicly viewable events for e in Event.objects.all(): # Try to add 'test_tag' to the first log entry. - url = reverse('taglogentry', args=[e.graceid(), 1, 'test_tag']) + url = reverse('taglogentry', args=[e.graceid, 1, 'test_tag']) input_dict = {'displayName': 'test_tag',} response = self.client.post(url, input_dict, **extra_args(self.public_user)) @@ -381,7 +381,7 @@ class TestPerms(TestCase): """Test EEL creation by internal user""" # Internal user should be able to create EELs for all events for e in Event.objects.all(): - url = reverse('embblogentry', args=[e.graceid(), '']) + url = reverse('embblogentry', args=[e.graceid, '']) input_dict = { 'group': TEST_NAMES['emgroup'], 'waveband': 'em.gamma', @@ -401,7 +401,7 @@ class TestPerms(TestCase): """Test EEL creation by LV-EM user""" # LV-EM user should be able to create EELs for LV-EM and public events for e in Event.objects.all(): - url = reverse('embblogentry', args=[e.graceid(), '']) + url = reverse('embblogentry', args=[e.graceid, '']) input_dict = { 'group': TEST_NAMES['emgroup'], 'waveband': 'em.gamma', @@ -421,7 +421,7 @@ class TestPerms(TestCase): """Test EEL creation by public user""" # Public user should not be able to create EELs event = self.public_event - url = reverse('embblogentry', args=[event.graceid(), '']) + url = reverse('embblogentry', args=[event.graceid, '']) # Test, em.gamma, FO, TE, instrument='Test', comment='Test' input_dict = { 'group': TEST_NAMES['emgroup'], @@ -475,7 +475,7 @@ class TestPerms(TestCase): # choose any event event = self.internal_event # try POST to permission creation URL - url = reverse('modify_permissions', args=[event.graceid()]) + url = reverse('modify_permissions', args=[event.graceid]) input_dict = { 'action': 'expose', 'group_name': settings.LVEM_GROUP, diff --git a/gracedb/events/view_logic.py b/gracedb/events/view_logic.py index 5f29445515075043737fa0995787801d375d5cf1..03022c384a1b92c4402059a648ed98dd1e7c28fb 100644 --- a/gracedb/events/view_logic.py +++ b/gracedb/events/view_logic.py @@ -148,7 +148,7 @@ def _createEventFromForm(request, form): # Append a warning message. if label in event.labels.all(): warnings.append("Event {0} already labeled with '{1}'" \ - .format(event.graceid(), label)) + .format(event.graceid, label)) else: create_label(event, request, label.name, can_add_protected=False) @@ -157,7 +157,7 @@ def _createEventFromForm(request, form): message = "Problem scanning data. No alert issued (%s)" % e logger.warning(message) warnings += [message] - #return HttpResponseRedirect(reverse(view, args=[event.graceid()])) + #return HttpResponseRedirect(reverse(view, args=[event.graceid])) except Exception, e: # something went wrong. # XXX We need to make sure we clean up EVERYTHING. @@ -196,7 +196,7 @@ def create_label(event, request, labelName, can_add_protected=False, # send the correct HTTP response code label_created = False if label in event.labels.all(): - d['warning'] = "Event %s already labeled with '%s'" % (event.graceid(), labelName) + d['warning'] = "Event %s already labeled with '%s'" % (event.graceid, labelName) else: labelling = Labelling( event = event, @@ -249,8 +249,8 @@ def delete_label(event, request, labelName, can_remove_protected=False, # Next, check if the label is in the list of labels for the event. Throw out an # error if it isn't. There might be a more elegant way of doing this. if label not in event.labels.all(): - d['warning'] = "No label '%s' associated with event %s" % (labelName, event.graceid()) - raise ValueError("No label '%s' associated with event %s" % (labelName, event.graceid())) + d['warning'] = "No label '%s' associated with event %s" % (labelName, event.graceid) + raise ValueError("No label '%s' associated with event %s" % (labelName, event.graceid)) else: this_label = Labelling.objects.get( event = event, diff --git a/gracedb/events/view_utils.py b/gracedb/events/view_utils.py index e402d83a89e35c0c13d7f07e41330587197f5e5e..505763a6baefb178d11433b22eaa724dd74a9c0b 100644 --- a/gracedb/events/view_utils.py +++ b/gracedb/events/view_utils.py @@ -129,7 +129,7 @@ def reverse(name, *args, **kw): def eventToDict(event, columns=None, request=None, is_alert=False): """Convert an Event to a dictionary.""" rv = {} - graceid = event.graceid() + graceid = event.graceid try: rv['submitter'] = event.submitter.username except: @@ -366,10 +366,10 @@ def eventLogToDict(log, request=None): # Get some links uri = api_reverse("events:eventlog-detail", - args=[log.event.graceid(), log.N], + args=[log.event.graceid, log.N], request=request) taglist_uri = api_reverse("events:eventlogtag-list", - args=[log.event.graceid(), log.N], + args=[log.event.graceid, log.N], request=request) if log.filename: actual_filename = log.filename @@ -381,7 +381,7 @@ def eventLogToDict(log, request=None): #filename = urlquote(actual_filename) filename = actual_filename file_uri = api_reverse("events:files", - args=[log.event.graceid(), filename], + args=[log.event.graceid, filename], request=request) # This is purely for convenience in working with the web interface. @@ -416,7 +416,7 @@ def labelToDict(labelling, request=None): "created" : labelling.created.strftime( settings.GRACE_STRFTIME_FORMAT), "self" : api_reverse("events:labels", - args=[labelling.event.graceid(), labelling.label.name], + args=[labelling.event.graceid, labelling.label.name], request=request), } @@ -425,7 +425,7 @@ def embbEventLogToDict(eel, request=None): uri = None if request: uri = api_reverse("events:embbeventlog-detail", - args=[eel.event.graceid(), eel.N], + args=[eel.event.graceid, eel.N], request=request) return { "N" : eel.N, @@ -461,7 +461,7 @@ def embbEventLogToDict(eel, request=None): # EMObservation serializer. def emObservationToDict(emo, request=None): uri = api_reverse("events:emobservation-detail", - args=[emo.event.graceid(), emo.N], request=request) + args=[emo.event.graceid, emo.N], request=request) # User display name # Show full name for web interface views (fetched via AJAX), unless it's @@ -492,7 +492,7 @@ def emFootprintToDict(emf, request=None): # uri = None # if request: # uri = api_reverse("events:emfootprint-detail", -# args=[emf.emobservation.event.graceid(), emf.emobservation.N, emf.N], +# args=[emf.emobservation.event.graceid, emf.emobservation.N, emf.N], # request=request) return { @@ -513,7 +513,7 @@ def emFootprintToDict(emf, request=None): # EMObservation serializer for the skymap Viewer def skymapViewerEMObservationToDict(emo, request=None): uri = api_reverse("events:emobservation-detail", - args=[emo.event.graceid(), emo.N], + args=[emo.event.graceid, emo.N], request=request) # Keys we want: @@ -574,10 +574,10 @@ def voeventToDict(voevent, request=None): filename = '%s,%d' % (voevent.filename, voevent.file_version) uri = api_reverse("events:voevent-detail", - args=[voevent.event.graceid(), voevent.N], + args=[voevent.event.graceid, voevent.N], request=request) file_uri = api_reverse("events:files", - args=[voevent.event.graceid(), filename], + args=[voevent.event.graceid, filename], request=request) issuer = voevent.issuer.username @@ -639,13 +639,13 @@ def groupeventpermissionToDict(gop, event=None, request=None): rv = {} rv['group'] = gop.group.name rv['permission'] = gop.permission.codename - #rv['graceid'] = event.graceid() + #rv['graceid'] = event.graceid #perm_shortname = gop.permission.codename.split('_')[0] #rv['permission'] = perm_shortname # We want a link to the self only. End of the line. #rv['links'] = { # "self" : api_reverse("events:groupeventpermission-detail", - # args=[event.graceid(),gop.group.name,perm_shortname], + # args=[event.graceid,gop.group.name,perm_shortname], # request=request) # } return rv @@ -779,7 +779,7 @@ def get_recent_events_string(request): return '' event_list = [ {'pipeline': e.pipeline.name, - 'graceid': e.graceid(), + 'graceid': e.graceid, 'created': e.created.isoformat() } for e in events ] return json.dumps(event_list) diff --git a/gracedb/events/views.py b/gracedb/events/views.py index 1894d942083b88a76058a7cf42f0cdae7f92c5cc..7838b6811ef2b7fdec48734e53e6920af59a4f73 100644 --- a/gracedb/events/views.py +++ b/gracedb/events/views.py @@ -116,8 +116,8 @@ def index(request): older_events = events.filter(created__lt=one_day_ago) # Put into context dict for template rendering - context['new_signoff_graceids'] = [e.graceid() for e in new_events] - context['older_signoff_graceids'] = [e.graceid() for e in older_events] + context['new_signoff_graceids'] = [e.graceid for e in new_events] + context['older_signoff_graceids'] = [e.graceid for e in older_events] # TODO: ensure not test or MDC types once those are implemented # Superevent signoffs @@ -203,7 +203,7 @@ def _create(request): # problem creating event... XXX need an error page for this. raise Exception("\n".join(warnings)) - return HttpResponseRedirect(reverse(view, args=[event.graceid()])) + return HttpResponseRedirect(reverse(view, args=[event.graceid])) else: rv['form'] = form return rv @@ -317,7 +317,7 @@ def logentry(request, event, num=None): return HttpResponseBadRequest if not request.is_ajax(): - return HttpResponseRedirect(reverse(view, args=[event.graceid()])) + return HttpResponseRedirect(reverse(view, args=[event.graceid])) rv = {} rv['comment'] = elog.comment @@ -568,7 +568,7 @@ def taglogentry(request, event, num, tagname): # Hopefully, this will only ever be called from inside a script. Just in case... if not request.is_ajax(): - return HttpResponseRedirect(reverse(view, args=[event.graceid()])) + return HttpResponseRedirect(reverse(view, args=[event.graceid])) # no need for a JSON response. msg = "Successfully applied tag %s to log message %s." % (tagname, num) @@ -613,8 +613,8 @@ def file_list(request, event): context = {} context['file_list'] = f - context['title'] = 'Files for %s' % event.graceid() - context['graceid'] = event.graceid() + context['title'] = 'Files for %s' % event.graceid + context['graceid'] = event.graceid return render(request, 'gracedb/event_filelist.html', context=context) @@ -729,7 +729,7 @@ def modify_permissions(request, event): update_event_perms_for_group(underlying_event, g, action) # Finished. Redirect back to the event. - return HttpResponseRedirect(reverse("view", args=[event.graceid()])) + return HttpResponseRedirect(reverse("view", args=[event.graceid])) # A view to create embb log entries @event_and_auth_required @@ -743,7 +743,7 @@ def embblogentry(request, event, num=None): except Exception, e: return HttpResponseServerError(str(e)) - return HttpResponseRedirect(reverse(view, args=[event.graceid()])) + return HttpResponseRedirect(reverse(view, args=[event.graceid])) else: return HttpResponseBadRequest("This URL only supports POST.") @@ -788,7 +788,7 @@ def emobservation_entry(request, event, num=None): except Exception, e: return HttpResponseServerError(str(e)) - return HttpResponseRedirect(reverse(view, args=[event.graceid()])) + return HttpResponseRedirect(reverse(view, args=[event.graceid])) else: return HttpResponseBadRequest("This URL only supports POST.") @@ -825,7 +825,7 @@ def modify_t90(request, event): event.save() # Finished. Redirect back to the event. - return HttpResponseRedirect(reverse("view", args=[event.graceid()])) + return HttpResponseRedirect(reverse("view", args=[event.graceid])) def get_signoff_type(stype): @@ -1016,5 +1016,5 @@ def modify_signoff(request, event): pass # Finished. Redirect back to the event. - return HttpResponseRedirect(reverse("view", args=[event.graceid()])) + return HttpResponseRedirect(reverse("view", args=[event.graceid])) diff --git a/gracedb/search/utils.py b/gracedb/search/utils.py index d9c85ce53d4bfe73ce519f2ee9054266cf66d618..0bb8e60f506f1650560528d93d81d7c56bba8557 100644 --- a/gracedb/search/utils.py +++ b/gracedb/search/utils.py @@ -111,9 +111,9 @@ def superevent_flexigrid_response(request, objects): object.superevent_id]), object.superevent_id), #Labels " ".join(["""<span onmouseover="tooltip.show(tooltiptext('%s', '%s', '%s'));" onmouseout="tooltip.hide();" style="color: %s"> %s </span>""" % (label.label.name, label.creator.username, label.created, label.label.defaultColor, label.label.name) for label in object.labelling_set.all()]), - ev_link(object.preferred_event.graceid()), - ", ".join([ev_link(ev.graceid()) for ev in object.get_internal_events()]), - ", ".join([ev_link(ev.graceid()) for ev in object.get_external_events()]), + ev_link(object.preferred_event.graceid), + ", ".join([ev_link(ev.graceid) for ev in object.get_internal_events()]), + ", ".join([ev_link(ev.graceid) for ev in object.get_external_events()]), t_start_times.get('gps', ""), t_0_times.get('gps', ""), t_end_times.get('gps', ""), @@ -205,7 +205,7 @@ def event_flexigrid_response(request, objects): display_far = "< %s" % scientific(settings.VOEVENT_FAR_FLOOR) cell_values = [ '<a href="%s">%s</a>' % - (django_reverse("view", args=[object.graceid()]), object.graceid()), + (django_reverse("view", args=[object.graceid]), object.graceid), #Labels " ".join(["""<span onmouseover="tooltip.show(tooltiptext('%s', '%s', '%s'));" onmouseout="tooltip.hide();" style="color: %s"> %s </span>""" % (label.label.name, label.creator.username, label.created, label.label.defaultColor, label.label.name) for label in object.labelling_set.all()]), @@ -233,7 +233,7 @@ def event_flexigrid_response(request, objects): if get_neighbors: # Links to neighbors cell_values.insert(2, ', '.join([ '<a href="%s">%s</a>' % - (django_reverse("view", args=[n.graceid()]), n.graceid()) for n in object.neighbors()])) + (django_reverse("view", args=[n.graceid]), n.graceid) for n in object.neighbors()])) rows.append( { 'id' : object.id, diff --git a/gracedb/superevents/utils.py b/gracedb/superevents/utils.py index 6272a75d006319d05fe32e7467a2887c602fdf9c..77ccd9b229d48aadf5f1a7fd726f096158deaec9 100644 --- a/gracedb/superevents/utils.py +++ b/gracedb/superevents/utils.py @@ -70,7 +70,7 @@ def create_superevent(submitter, t_start, t_0, t_end, preferred_event, t_start=t_start, t_0=t_0, t_end=t_end, preferred_event=preferred_event) if events: creation_comment += ", events={events}".format(events=", ".join( - [ev.graceid() for ev in events])) + [ev.graceid for ev in events])) # This is autogenerated, but people probably don't want to hide it # in the web interface superevent_creation_log = create_log(submitter, creation_comment, s, @@ -339,7 +339,7 @@ def add_event_to_superevent(superevent, event, user, add_event_log=True, raise Superevent.EventCategoryMismatchError( _(('Event {graceid} is of type \'{e_category}\', and ' 'cannot be assigned to a superevent of type ' - '\'{s_category}\'').format(graceid=event.graceid(), + '\'{s_category}\'').format(graceid=event.graceid, e_category=event.get_event_category(), s_category=superevent.get_category_display()))) @@ -350,7 +350,7 @@ def add_event_to_superevent(superevent, event, user, add_event_log=True, if add_superevent_log: # Record event addition in superevent logs superevent_comment = 'Added event: {graceid}'.format( - graceid=event.graceid()) + graceid=event.graceid) superevent_log_for_event_addition = create_log(user, superevent_comment, superevent, issue_alert=False, autogenerated=True) @@ -390,7 +390,7 @@ def remove_event_from_superevent(superevent, event, user, add_event_log=True, if add_superevent_log: # Record event removal in superevent logs superevent_comment = 'Removed event: {graceid}'.format( - graceid=event.graceid()) + graceid=event.graceid) superevent_log_for_event_removal = create_log(user, superevent_comment, superevent, issue_alert=False, autogenerated=True)