def get_queryset(self): request_user = self.request.user # Showing non-end dated, public ProviderMachines public_set = ProviderMachine.objects.filter( only_current_source(), only_public_providers(), application_version__application__private=False) if not isinstance(request_user, AnonymousUser): # Showing non-end dated, public ProviderMachines shared_set = ProviderMachine.objects.filter( only_current_source(), members__in=request_user.group_set.values('id')) # NOTE: Showing 'my pms' EVEN if they are end-dated. my_set = ProviderMachine.objects.filter(user_provider_machine_set(request_user)) if request_user.is_staff: admin_set = get_admin_machines(request_user) else: admin_set = ProviderMachine.objects.none() else: shared_set = my_set = admin_set = ProviderMachine.objects.none() # Order them by date, make sure no dupes. queryset = ( public_set | shared_set | my_set | admin_set).distinct().order_by( '-instance_source__start_date') if not isinstance(request_user, AnonymousUser): queryset = queryset.filter(in_provider_list(request_user.current_providers)) return queryset
def get_queryset(self): request_user = self.request.user # Showing non-end dated, public ProviderMachines public_set = ProviderMachine.objects.filter( only_current_source(), only_public_providers(), application_version__application__private=False) if not isinstance(request_user, AnonymousUser): # Showing non-end dated, public ProviderMachines shared_set = ProviderMachine.objects.filter( only_current_source(), members__id__in=request_user.memberships.values_list( 'group__id', flat=True)) # NOTE: Showing 'my pms' EVEN if they are end-dated. my_set = ProviderMachine.objects.filter( user_provider_machine_set(request_user)) if request_user.is_staff: admin_set = get_admin_machines(request_user) else: admin_set = ProviderMachine.objects.none() else: shared_set = my_set = admin_set = ProviderMachine.objects.none() # Order them by date, make sure no dupes. queryset = ( public_set | shared_set | my_set | admin_set).distinct().order_by('-instance_source__start_date') if not isinstance(request_user, AnonymousUser): queryset = queryset.filter( in_provider_list(request_user.current_providers)) return queryset
def current_apps(cls, atmo_user=None): from core.models.user import AtmosphereUser public_images = Application.public_apps() if not atmo_user or isinstance(atmo_user, AnonymousUser): return public_images.distinct() if not isinstance(atmo_user, AtmosphereUser): raise Exception("Expected atmo_user to be of type AtmosphereUser" " - Received %s" % type(atmo_user)) user_images = atmo_user.application_set.all() shared_images = Application.shared_with(atmo_user) if atmo_user.is_staff: admin_images = Application.admin_apps(atmo_user) else: admin_images = Application.objects.none() all_the_images = (public_images | user_images | shared_images | admin_images).distinct().filter( in_provider_list(atmo_user.current_providers, key_override='versions__machines__instance_source__provider')) return all_the_images