예제 #1
0
파일: views.py 프로젝트: nekeal/passit
 def get_queryset(self):
     profile = self.request.user.profile
     queryset = SubjectOfAgeGroup.objects.filter_by_profile(profile)
     if is_expanded(self.request, "field_age_group"):
         queryset = queryset.select_related("field_age_group")
     if is_expanded(self.request, "subject_name"):
         queryset = queryset.add_subject_name()
     return queryset
예제 #2
0
파일: views.py 프로젝트: z687wang/Hikari
    def get_queryset(self):
        queryset = Post.objects.all().filter(
            Q(public=True) | Q(author=self.request.user.id))

        if is_expanded(self.request, 'category'):
            queryset = queryset.prefetch_related('category')

        queryset = queryset.prefetch_related('image')

        if is_expanded(self.request, 'comments'):
            queryset = queryset.prefetch_related('comments')

        return queryset
예제 #3
0
파일: views.py 프로젝트: nekeal/passit
 def get_queryset(self):
     queryset = Event.objects.get_by_profile(
         self.request.user.profile).select_related("created_by__user",
                                                   "modified_by__user")
     if is_expanded(self.request, "subject"):
         queryset = queryset.annotate(
             subject=F("subject_group__subject__name"))
     if is_expanded(self.request, "field_age_group"):
         queryset = queryset.select_related("field_age_group")
     if is_expanded(self.request, "subject_group"):
         queryset = queryset.select_related("subject_group")
     if is_expanded(self.request, "subject"):
         queryset = queryset.select_related("subject_group__subject")
     return queryset.order_by("due_date")
예제 #4
0
    def get_queryset(self):
        queryset = super().get_queryset().annotate(_admin=Exists(
            RemoteRepositoryRelation.objects.filter(remote_repository=OuterRef(
                'pk'),
                                                    user=self.request.user,
                                                    admin=True)))

        if is_expanded(self.request, 'remote_organization'):
            queryset = queryset.select_related('organization')

        if is_expanded(self.request, 'projects'):
            queryset = queryset.prefetch_related('projects__users')

        return queryset.order_by('organization__name', 'full_name').distinct()
예제 #5
0
 def get_queryset(self):
     action = self.get_serializer_context()['view'].action
     if self.request.user.is_staff or not action == 'list':
         queryset = ProyectoREM.objects.all()
     else:
         queryset = ProyectoREM.objects.filter(
             Q(autor=self.request.user)
             | Q(grupos__usuarios=self.request.user)).distinct('pk')
     if is_expanded(self.request, 'autor'):
         queryset = queryset.select_related('autor')
     if is_expanded(self.request, 'usuario_ultima_apertura'):
         queryset = queryset.select_related('usuario_ultima_apertura')
     if is_expanded(self.request, 'logs'):
         queryset = queryset.prefetch_related('logs')
     return queryset.prefetch_related('documentos', 'grupos')
예제 #6
0
    def get_queryset(self):
        queryset = PostSearch.objects.all()

        if is_expanded(self.request, 'user_profile'):
            queryset = queryset.select_related('user_profile')

        return queryset
예제 #7
0
    def get_queryset(self):
        queryset = Member.objects.all()

        if is_expanded(self.request, 'characterneed'):
            queryset = queryset.prefetch_related('characterneed')

        if is_expanded(self.request, 'dayofbirth'):
            queryset = queryset.prefetch_related('dayofbirth')

        # if is_expanded(self.request, 'bloodtype'):
        #     queryset = queryset.prefetch_related('bloodtype')

        if is_expanded(self.request, 'naksus'):
            queryset = queryset.prefetch_related('company')

        if is_expanded(self.request, 'testes'):
            queryset = queryset.prefetch_related('testes')

        return queryset
예제 #8
0
    def get_queryset(self):
        queryset = Product.objects.all()

        if is_expanded(self.request, 'category'):
            queryset = queryset.prefetch_related('category')

        if is_expanded(self.request, 'comments'):
            queryset = queryset.prefetch_related('comments')

        if is_expanded(self.request, 'sites'):
            queryset = queryset.prefetch_related('sites')

        if is_expanded(self.request, 'company'):
            queryset = queryset.prefetch_related('sites__company')

        if is_expanded(self.request, 'productsize'):
            queryset = queryset.prefetch_related('sites__productsize')

        return queryset
예제 #9
0
    def get_queryset(self):
        action = self.get_serializer_context()['view'].action
        if self.request.user.is_staff or not action == 'list':
            queryset = DocumentoREM.objects.all()
        else:
            queryset = DocumentoREM.objects.filter(
                Q(autor=self.request.user)
                | Q(proyecto__grupos__usuarios=self.request.user)).distinct(
                    'pk')

        select_related_fields = []
        for field in self.AVAILABLE_SELECT_RELATED_FIELDS:
            if is_expanded(self.request, field):
                select_related_fields.append(field)
        if select_related_fields:
            queryset = queryset.select_related(*select_related_fields)

        if is_expanded(self.request, 'logs'):
            queryset = queryset.prefetch_related('logs')

        return queryset
예제 #10
0
    def get_favorite_products(self, obj):
        request = self.context.get('request', None)
        is_favorite_products_expanded = False

        if request:
            is_favorite_products_expanded = is_expanded(
                request, 'favorite_products')

        if is_favorite_products_expanded:
            return ProductSerializer(Product.objects.filter(
                pk__in=obj.favorites.values_list('product', flat=True)),
                                     many=True).data

        return obj.favorites.values_list('product_id', flat=True)
예제 #11
0
    def get_queryset(self):
        queryset = Incident.objects.filter(verified=True)
        loss_queryset = Loss.with_stat.all()
        if is_expanded(self.request, 'event'):
            queryset = queryset.select_related('event')
        if is_expanded(self.request, 'hazard'):
            queryset = queryset.select_related('hazard')
        if is_expanded(self.request, 'wards'):
            queryset = queryset.prefetch_related('wards')
        if is_expanded(self.request, 'loss.peoples'):
            loss_queryset = loss_queryset.prefetch_related('peoples')
        if is_expanded(self.request, 'loss.families'):
            loss_queryset = loss_queryset.prefetch_related('families')
        if is_expanded(self.request, 'loss.livestocks'):
            loss_queryset = loss_queryset.prefetch_related('livestocks')
        if is_expanded(self.request, 'loss.infrastructures'):
            loss_queryset = loss_queryset.prefetch_related('infrastructures')
        if is_expanded(self.request, 'loss'):
            queryset = queryset.prefetch_related(
                Prefetch('loss', loss_queryset))

        return queryset
예제 #12
0
파일: views.py 프로젝트: nekeal/passit
 def get_queryset(self):
     qs = Resource.objects.filter_by_profile(self.request.user.profile)
     if is_expanded(self.request, "subject"):
         qs = qs.select_related("subject")
     return qs
예제 #13
0
 def test_should_be_expanded_and_has_dot_notation(self):
     request = MockRequest(query_params={"expand": "person.name,address"})
     self.assertTrue(is_expanded(request, "name"))
예제 #14
0
 def test_should_not_be_expanded(self):
     request = MockRequest(query_params={"expand": "name,address"})
     self.assertFalse(is_expanded(request, "hobby"))
예제 #15
0
 def test_should_be_expanded(self):
     request = MockRequest(query_params={"expand": "name,address"})
     self.assertTrue(is_expanded(request, "name"))
예제 #16
0
 def get_queryset(self):
     queryset = super().get_queryset()
     if is_expanded(self.request, 'slides'):
         queryset = queryset.prefetch_related('slides')
     return queryset
예제 #17
0
 def get_queryset(self):
     queryset = self.model.objects.all().select_related('owner')
     if is_expanded(self.request, 'owner'):
         queryset = queryset.select_related('owner__group')
     return queryset
예제 #18
0
 def get_queryset(self):
     queryset = self.model.objects.all().select_related(
         'pattern', 'asset_id_type')
     if is_expanded(self.request, 'pattern'):
         queryset = queryset.select_related('pattern__project')
     return queryset