@@ -46,25 +46,24 @@ def get_context_data(self, *args, **kwargs):
4646 # Start with an empty queryset
4747 qs = Submission .objects .none ()
4848
49+ user = self .request .user
4950 # Only if user is authenticated
50- if self . request . user .is_authenticated :
51- # If user is not super user then:
52- # filter this user's own submissions
53- # and
54- # submissions running on queue which belongs to this user
51+ if user .is_authenticated :
52+ # If user is not super user then filter :
53+ # - this user's own submissions
54+ # - submissions running on competitions where the user is owner or collaborator
55+ # - submissions running on queue where the user is owner or organizer
5556 # NOTE: exclude all soft-deleted submissions
56- if not self . request . user .is_superuser :
57- qs = Submission .objects .filter (
58- Q (is_soft_deleted = False ) &
59- (
60- Q ( owner = self . request . user ) |
61- Q ( phase__competition__queue__isnull = False , phase__competition__queue__owner = self . request . user )
62- )
63- )
57+ if not user .is_superuser :
58+ qs = Submission .objects .filter (is_soft_deleted = False ). filter (
59+ Q (owner = user ) |
60+ Q ( phase__competition__created_by = user ) |
61+ Q ( phase__competition__collaborators = user ) |
62+ Q ( phase__competition__queue__owner = user , phase__competition__queue__isnull = False ) |
63+ Q ( phase__competition__queue__organizers = user , phase__competition__queue__isnull = False )
64+ ). distinct ()
6465 else :
65- qs = Submission .objects .filter (
66- Q (is_soft_deleted = False )
67- )
66+ qs = Submission .objects .filter (is_soft_deleted = False )
6867
6968 # Filter out child submissions i.e. submission has no parent
7069 if not show_child_submissions :
0 commit comments