예제 #1
0
파일: views.py 프로젝트: interlegis/sapl
    def get(self, request, *args, **kwargs):
        self.model = ContentType.objects.get_for_id(self.kwargs["content_type"]).model_class()

        pagination = request.GET.get("pagination", "")

        if pagination == "False":
            self.pagination_class = None

        return ListAPIView.get(self, request, *args, **kwargs)
예제 #2
0
    def get(self, request, *args, **kwargs):
        if self.tr == AutorListView.TR_AUTOR_SERIALIZER:
            self.serializer_class = AutorSerializer
            self.permission_classes = (IsAuthenticated, )

        if self.filter_class and 'q_0' in request.GET:
            self.filter_class = AutorSearchForFieldFilterSet

        return ListAPIView.get(self, request, *args, **kwargs)
예제 #3
0
    def get(self, request, *args, **kwargs):
        self.model = ContentType.objects.get_for_id(
            self.kwargs['content_type']).model_class()

        pagination = request.GET.get('pagination', '')

        if pagination == 'False':
            self.pagination_class = None

        return ListAPIView.get(self, request, *args, **kwargs)
예제 #4
0
    def list(self, request, *args, **kwargs):
        try:
            if Room.objects.get(id=kwargs['id']).members.filter(
                    id=request.user.id):
                self.queryset = Message.objects.filter(room=kwargs['id'])
                return ListAPIView.list(self, request, *args, **kwargs)

            return Response('Permission denied',
                            status=status.HTTP_403_FORBIDDEN)

        except ObjectDoesNotExist:
            return Response({'detail': 'Not found.'},
                            status=status.HTTP_404_NOT_FOUND)
예제 #5
0
파일: views.py 프로젝트: camaragyn/sapl
    def get(self, request, *args, **kwargs):
        """
            desativa o django-filter se a busca for por possiveis autores
            parametro tr = TR_CHOICE_SERIALIZER
        """
        if self.tr == AutorListView.TR_CHOICE_SERIALIZER:
            self.filter_class = None
            self.filter_backends = []
            self.serializer_class = ChoiceSerializer

        elif self.tr == AutorListView.TR_AUTOR_SERIALIZER:
            self.serializer_class = AutorSerializer
            self.permission_classes = (IsAuthenticated, )

        return ListAPIView.get(self, request, *args, **kwargs)
예제 #6
0
파일: views.py 프로젝트: interlegis/sapl
    def get(self, request, *args, **kwargs):
        """
            desativa o django-filter se a busca for por possiveis autores
            parametro tr = TR_CHOICE_SERIALIZER
        """
        if self.tr == AutorListView.TR_CHOICE_SERIALIZER:
            self.filter_class = None
            self.filter_backends = []
            self.serializer_class = ChoiceSerializer

        elif self.tr == AutorListView.TR_AUTOR_SERIALIZER:
            self.serializer_class = AutorSerializer
            self.permission_classes = (IsAuthenticated,)

        return ListAPIView.get(self, request, *args, **kwargs)
예제 #7
0
    def list(self, request, *args, **kwargs):
        try:
            # Verify that the user is a member of the room
            if (Room.objects.get(id=kwargs["id"]).members.filter(
                    id=request.user.id).exists()):
                # Retrieve the messages for the room
                self.queryset = Message.objects.filter(room=kwargs["id"])
                return ListAPIView.list(self, request, *args, **kwargs)

            return Response("Permission denied",
                            status=status.HTTP_403_FORBIDDEN)

        # Room was not found
        except ObjectDoesNotExist:
            return Response({"detail": "Not found."},
                            status=status.HTTP_404_NOT_FOUND)
예제 #8
0
from django.urls import path
from rest_framework.generics import ListAPIView, RetrieveUpdateAPIView
from rest_framework.permissions import IsAuthenticated

from v1.apps.organizations.models import Organization, Building
from v1.apps.organizations.permissions import IsOrganizationAdmin
from v1.apps.organizations.serializers import OrganizationListSerializer, OrganizationSerializer, BuildingListSerializer
from v1.apps.organizations.views import BuildingView

urlpatterns = [
    path('',
         ListAPIView.as_view(queryset=Organization.objects.all(),
                             serializer_class=OrganizationListSerializer,
                             permission_classes=[IsAuthenticated]),
         name='organization-list'),
    path('<int:pk>',
         RetrieveUpdateAPIView.as_view(
             queryset=Organization.objects.all(),
             serializer_class=OrganizationSerializer,
             permission_classes=[IsOrganizationAdmin]),
         name='organization-RW'),
    path('buildings', BuildingView.as_view({'get': 'list'}))
]
예제 #9
0
 def get(self, request, *args, **kwargs):
     return ListAPIView.get(self, request, *args, **kwargs)
예제 #10
0
    def get_queryset(self):
        queryset = ListAPIView.get_queryset(self)

        if self.filter_backends:
            return queryset

        params = {'content_type__isnull': False}

        tipo = ''
        try:
            tipo = int(self.request.GET.get('tipo', ''))
            if tipo:
                params['id'] = tipo
        except:
            pass

        tipos = TipoAutor.objects.filter(**params)

        if not tipos.exists() and tipo:
            raise Http404()

        r = []
        for tipo in tipos:
            q = self.request.GET.get('q', '').strip()

            model_class = tipo.content_type.model_class()

            fields = list(
                filter(
                    lambda field: isinstance(field, SaplGenericRelation) and
                    field.related_model == Autor,
                    model_class._meta.get_fields(include_hidden=True)))
            """
            fields - é um array de SaplGenericRelation que deve possuir o
                 atributo fields_search. Verifique na documentação da classe
                 a estrutura de fields_search.
            """

            assert len(fields) >= 1, (
                _('Não foi encontrado em %(model)s um atributo do tipo '
                  'SaplGenericRelation que use o model %(model_autor)s') % {
                      'model': model_class._meta.verbose_name,
                      'model_autor': Autor._meta.verbose_name
                  })

            qs = model_class.objects.all()

            q_filter = Q()
            if q:
                for item in fields:
                    if item.related_model != Autor:
                        continue
                    q_fs = Q()
                    for field in item.fields_search:
                        q_fs = q_fs | Q(**{'%s%s' % (field[0], field[1]): q})
                    q_filter = q_filter & q_fs

                qs = qs.filter(q_filter).distinct(
                    fields[0].fields_search[0][0])

            qs = qs.order_by(fields[0].fields_search[0][0]).values_list(
                'id', fields[0].fields_search[0][0])
            r += list(qs)

        if tipos.count() > 1:
            r.sort(key=lambda x: x[1].upper())
        return r
예제 #11
0
 def get(self, request, *args, **kwargs):
     return RetrieveAPIView.get(self, request, *args, **kwargs) \
         if 'pk' in kwargs else ListAPIView.get(self, request, *args, **kwargs)
예제 #12
0
 path('logout', views.Logout.as_view(), name="logout"),
 path('create', views.CreateUser.as_view(), name="create_user"),
 path('item/dailychance',
      views.DailyChance.as_view(),
      name="set_dailyChance"),
 path('profile/<str:username>',
      views.ProfileView.as_view(),
      name="profile_view"),
 path('profile/edit/<str:username>',
      OwnProfileView.as_view(),
      name="profile_edit_view"),
 path(
     'view/all',
     ListAPIView.as_view(
         authentication_classes=settings.AUTH_CLASSES,
         permission_classes=settings.PERM_CLASSES,
         serializer_class=QuickUserSerializer,
         queryset=User.objects.all(),
     )),
 path(
     'view/<str:username>',
     RetrieveAPIView.as_view(
         authentication_classes=settings.AUTH_CLASSES,
         permission_classes=settings.PERM_CLASSES,
         serializer_class=QuickUserSerializer,
         lookup_field="username",
         queryset=User.objects.all(),
     )),
 path('validate',
      views.ValidateUserData.as_view(),
      name="validate_username"),
 path('activate/<uidb64>/<token>',
예제 #13
0
파일: views.py 프로젝트: interlegis/sapl
    def get_queryset(self):
        queryset = ListAPIView.get_queryset(self)

        if self.filter_backends:
            return queryset

        params = {"content_type__isnull": False}

        tipo = ""
        try:
            tipo = int(self.request.GET.get("tipo", ""))
            if tipo:
                params["id"] = tipo
        except:
            pass

        tipos = TipoAutor.objects.filter(**params)

        if not tipos.exists() and tipo:
            raise Http404()

        r = []
        for tipo in tipos:
            q = self.request.GET.get("q", "").strip()

            model_class = tipo.content_type.model_class()

            fields = list(
                filter(
                    lambda field: isinstance(field, SaplGenericRelation) and field.related_model == Autor,
                    model_class._meta.get_fields(include_hidden=True),
                )
            )

            """
            fields - é um array de SaplGenericRelation que deve possuir o
                 atributo fields_search. Verifique na documentação da classe
                 a estrutura de fields_search.
            """

            assert len(fields) >= 1, _(
                "Não foi encontrado em %(model)s um atributo do tipo "
                "SaplGenericRelation que use o model %(model_autor)s"
            ) % {"model": model_class._meta.verbose_name, "model_autor": Autor._meta.verbose_name}

            qs = model_class.objects.all()

            q_filter = Q()
            if q:
                for item in fields:
                    if item.related_model != Autor:
                        continue
                    q_fs = Q()
                    for field in item.fields_search:
                        q_fs = q_fs | Q(**{"%s%s" % (field[0], field[1]): q})
                    q_filter = q_filter & q_fs

                qs = qs.filter(q_filter).distinct(fields[0].fields_search[0][0])

            qs = qs.order_by(fields[0].fields_search[0][0]).values_list("id", fields[0].fields_search[0][0])
            r += list(qs)

        if tipos.count() > 1:
            r.sort(key=lambda x: x[1].upper())
        return r
예제 #14
0
 def list(self, request, *args, **kwargs):
     return ListAPIView.list(self, request, *args, **kwargs)
예제 #15
0
 def list(self, request, *args, **kwargs):
     return ListAPIView.list(self, request, *args, **kwargs)
예제 #16
0
 def get(self, request, *args, **kwargs):
     Light.objects.all().update(activate=True)
     return ListAPIView.get(self, request, *args, **kwargs)
예제 #17
0
                queryset = queryset.exclude(
                    type=models.Project.PROJECT_TYPE_DATA_TRANSFER)

        request_user = self.request.user
        logger.debug('Current user: %s' % request_user)

        return queryset


class DataStewardViewSet(viewsets.ModelViewSet):
    queryset = models.DataSteward.objects.all()
    serializer_class = serializers.DataStewardSerializer
    filter_fields = '__all__'
    search_fields = '__all__'
    # ordering_fields = ('name', 'owner', )


class DataProviderViewSet(viewsets.ModelViewSet):
    queryset = models.DataProvider.objects.all()
    serializer_class = serializers.DataProviderSerializer
    filter_fields = '__all__'
    search_fields = '__all__'
    # ordering_fields = ('name', 'owner', )
    lookup_field = 'slug'
    lookup_url_kwarg = 'slug'


DatabaseSyncListView = ListAPIView.as_view(
    queryset=models.Project.objects.all(),
    serializer_class=serializers.DatabaseSyncSerializer)
예제 #18
0
from django.conf.urls import include, url
from rest_framework.generics import ListAPIView
from views import InfoViewer, InfoAdd
from core.models import InfoStorage
from serializers import InfoStorageSerializer

urlpatterns = [
    # ex: /api/backend/info/1/
    url(r'^backend/info/(?P<pk>[0-9]+)/$', InfoViewer.as_view()),
    # ex: /api/backend/info/
    url(r'^backend/info/$', InfoAdd.as_view()),
    # ex: /api/backend/info/all/
    # url(r'^backend/info/all/$', InfoViewerAll.as_view()),
    url(
        r'^backend/info/all/$',
        ListAPIView.as_view(queryset=InfoStorage.objects.all(),
                            serializer_class=InfoStorageSerializer)),
]