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

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, Notes
from chat.serializers import MessageSerializer, NoteSerializer
from chat.filters import MessageFilterSet, NoteFilterSet
class StageViewSet(ModelViewSet):
queryset = Stage.objects.all()
serializer_class = StageSerializer
filter_class = StageFilterSet
permission_classes = (permissions.IsAuthenticatedOrReadOnly,)
class ProjectViewSet(ModelViewSet):
queryset = Project.objects.all()
serializer_class = ProjectSerializer
filter_class = ProjectFilterSet
class NoteViewSet(ModelViewSet):
queryset = Notes.objects.all()
serializer_class = NoteSerializer
filter_class = NoteFilterSet
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