@@ -89,6 +89,8 @@ def generate_node_id(cls, project_id, event_id):
8989 @property
9090 def group (self ):
9191 from sentry .models import Group
92+ if not self .group_id :
93+ return None
9294 if not hasattr (self , '_group_cache' ):
9395 self ._group_cache = Group .objects .get (id = self .group_id )
9496 return self ._group_cache
@@ -223,7 +225,9 @@ def title(self):
223225 @property
224226 def culprit (self ):
225227 # For a while events did not save the culprit
226- return self .data .get ('culprit' ) or self .group .culprit
228+ if self .group_id :
229+ return self .data .get ('culprit' ) or self .group .culprit
230+ return self .data .get ('culprit' )
227231
228232 @property
229233 def location (self ):
@@ -353,7 +357,7 @@ def as_dict(self):
353357
354358 # for a long time culprit was not persisted. In those cases put
355359 # the culprit in from the group.
356- if data .get ('culprit' ) is None :
360+ if data .get ('culprit' ) is None and self . group_id :
357361 data ['culprit' ] = self .group .culprit
358362
359363 # Override title and location with dynamically generated data
@@ -370,12 +374,18 @@ def as_dict(self):
370374 def level (self ):
371375 # we might want to move to this:
372376 # return LOG_LEVELS_MAP.get(self.get_level_display()) or self.group.level
373- return self .group .level
377+ if self .group :
378+ return self .group .level
379+ else :
380+ return None
374381
375382 def get_level_display (self ):
376383 # we might want to move to this:
377384 # return self.get_tag('level') or self.group.get_level_display()
378- return self .group .get_level_display ()
385+ if self .group :
386+ return self .group .get_level_display ()
387+ else :
388+ return None
379389
380390 # deprecated accessors
381391
@@ -630,7 +640,7 @@ def next_event_id(self, environments=None):
630640 conditions = conditions ,
631641 filter_keys = {
632642 'project_id' : [self .project_id ],
633- 'issue' : [self .group_id ],
643+ 'issue' : [self .group_id ] if self . group_id else [] ,
634644 },
635645 orderby = ['timestamp' , 'event_id' ],
636646 limit = 1 ,
@@ -660,7 +670,7 @@ def prev_event_id(self, environments=None):
660670 conditions = conditions ,
661671 filter_keys = {
662672 'project_id' : [self .project_id ],
663- 'issue' : [self .group_id ],
673+ 'issue' : [self .group_id ] if self . group_id else [] ,
664674 },
665675 orderby = ['-timestamp' , '-event_id' ],
666676 limit = 1 ,
@@ -778,7 +788,7 @@ def __getitem__(self, name):
778788 return self .event .project .get_full_name ()
779789 elif name == 'projectID' :
780790 return self .event .project .slug
781- elif name == 'shortID' :
791+ elif name == 'shortID' and self . event . group_id :
782792 return self .event .group .qualified_short_id
783793 elif name == 'orgID' :
784794 return self .event .organization .slug
0 commit comments