@@ -508,12 +508,8 @@ def sources_url(self):
508508 def collections_url (self ):
509509 return self .uri + 'collections/'
510510
511- def get_repo_events (self , private = False ):
512- def get_events_for (entity ):
513- return entity .events .filter (public = True ) if private else entity .events
514-
515- queryset = self .__class__ .objects .none ()
516-
511+ def get_repo_events_criteria (self , private = False ):
512+ criteria = None
517513 sources = self .source_set .filter (is_active = True )
518514 collections = self .collection_set .filter (is_active = True )
519515
@@ -522,11 +518,25 @@ def get_events_for(entity):
522518 collections = self .collection_set .filter (public_access__in = [ACCESS_TYPE_VIEW , ACCESS_TYPE_EDIT ])
523519
524520 for source in sources :
525- queryset = queryset .union (get_events_for (source ))
521+ if criteria is None :
522+ criteria = Q (referenced_object_url = source .uri )
523+ else :
524+ criteria |= Q (referenced_object_url = source .uri )
526525 for collection in collections :
527- queryset = queryset .union (get_events_for (collection ))
526+ if criteria is None :
527+ criteria = Q (referenced_object_url = collection .uri )
528+ else :
529+ criteria |= Q (referenced_object_url = collection .uri )
528530
529- return queryset
531+ return criteria
532+
533+ def get_repo_events (self , private = False ):
534+ from core .events .models import Event
535+ criteria = self .get_repo_events_criteria (private )
536+ if criteria is None :
537+ return Event .objects .none ()
538+ queryset = Event .objects .filter (criteria )
539+ return queryset if private else queryset .filter (public = True )
530540
531541
532542class SourceChildMixin (ChecksumModel ):
0 commit comments