You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
85 lines
2.9 KiB
85 lines
2.9 KiB
from django.db.models import Q
|
|
from rest_framework.viewsets import ModelViewSet
|
|
from rest_framework import permissions
|
|
|
|
from projects.models import Project, Realty, Stage
|
|
from projects.serializers import ProjectSerializer, RealtySerializer, StageSerializer
|
|
from projects.filters import ProjectFilterSet, RealtyFilterSet, StageFilterSet
|
|
|
|
from specializations.models import Specialization
|
|
from specializations.serializers import SpecializationSerializer
|
|
from specializations.filters import SpecializationFilterSet
|
|
|
|
from users.models import User
|
|
from users.serializers import UserSerializer
|
|
from users.filters import UserFilterSet
|
|
|
|
from common.models import Location
|
|
from common.serializers import LocationSerializer
|
|
from common.filters import LocationFilterSet
|
|
|
|
from chat.models import Message
|
|
from chat.serializers import MessageSerializer
|
|
from chat.filters import MessageFilterSet
|
|
|
|
|
|
class StageViewSet(ModelViewSet):
|
|
queryset = Stage.objects.all()
|
|
serializer_class = StageSerializer
|
|
filter_class = StageFilterSet
|
|
permission_classes = (permissions.IsAuthenticatedOrReadOnly,)
|
|
|
|
# def put(self, request, *args, **kwargs):
|
|
# # import code; code.interact(local=dict(globals(), **locals()))
|
|
# return super().update(request, *args, **kwargs)
|
|
|
|
|
|
class ProjectViewSet(ModelViewSet):
|
|
queryset = Project.objects.all()
|
|
serializer_class = ProjectSerializer
|
|
filter_class = ProjectFilterSet
|
|
|
|
|
|
class MessageViewSet(ModelViewSet):
|
|
queryset = Message.objects.all()
|
|
serializer_class = MessageSerializer
|
|
filter_class = MessageFilterSet
|
|
|
|
def get_queryset(self):
|
|
queryset = Message.objects.all()
|
|
search_param = self.request.query_params.get('operand', None)
|
|
recipent_id = self.request.query_params.get('recipent_id', None)
|
|
sender_id = self.request.query_params.get('sender_id', None)
|
|
if search_param:
|
|
# import code; code.interact(local=dict(globals(), **locals()))
|
|
if search_param == 'in':
|
|
queryset = queryset.filter(Q(sender__in=[sender_id,recipent_id]),Q(recipent__in=[sender_id,recipent_id])).order_by('created')
|
|
return queryset
|
|
|
|
|
|
|
|
class RealtyViewSet(ModelViewSet):
|
|
queryset = Realty.objects.all()
|
|
serializer_class = RealtySerializer
|
|
filter_class = RealtyFilterSet
|
|
|
|
|
|
|
|
class SpecializationViewSet(ModelViewSet):
|
|
queryset = Specialization.objects.root_nodes()[0].get_descendants()
|
|
# queryset = Specialization.objects # Migrate with this enabled
|
|
serializer_class = SpecializationSerializer
|
|
filter_class = SpecializationFilterSet
|
|
|
|
|
|
class UserViewSet(ModelViewSet):
|
|
queryset = User.objects.all()
|
|
serializer_class = UserSerializer
|
|
filter_class = UserFilterSet
|
|
|
|
|
|
class LocationViewSet(ModelViewSet):
|
|
queryset = Location.objects.root_nodes()[0].get_descendants()
|
|
# queryset = Location.objects # Migrate with this enabled
|
|
serializer_class = LocationSerializer
|
|
filter_class = LocationFilterSet
|
|
|