from django.db.models import Q from rest_framework.viewsets import ModelViewSet from rest_framework import permissions from projects.models import Project, Realty, Stage, Portfolio, PortfolioPhoto, Answer, AnswerFile from projects.serializers import ProjectSerializer, RealtySerializer, StageSerializer, PortfolioSerializer, PortfolioPhotoSerializer, AnswerSerializer, AnswerFileSerializer from projects.filters import ProjectFilterSet, RealtyFilterSet, StageFilterSet, PortfolioFilterSet, PortfolioPhotoFilterSet from specializations.models import Specialization from specializations.serializers import SpecializationSerializer from specializations.filters import SpecializationFilterSet from users.models import User, ContractorResumeFiles, ContractorResume, Team from users.serializers import UserSerializer, ContractorResumeFilesSerializer, ContractorResumeSerializer, TeamSerializer from users.filters import UserFilterSet, ContractorResumeFilesFilterSet, ContractorResumeFilterSet from common.models import Location from common.serializers import LocationSerializer from common.filters import LocationFilterSet from chat.models import Message, Notes, Documents from chat.serializers import MessageSerializer, NoteSerializer, DocumentsSerializer from chat.filters import MessageFilterSet, NoteFilterSet, DocumentsFilterSet from reviews.models import Review from reviews.serializers import ReviewSerializer from reviews.filters import ReviewFilterSet class ContractorResumeFilesViewSet(ModelViewSet): queryset = ContractorResumeFiles.objects.all() serializer_class = ContractorResumeFilesSerializer # filter_class = ContractorResumeFilesFilterSet permission_classes = (permissions.IsAuthenticatedOrReadOnly,) class ContractorResumeViewSet(ModelViewSet): queryset = ContractorResume.objects.all() serializer_class = ContractorResumeSerializer # filter_class = ContractorResumeFilterSet permission_classes = (permissions.IsAuthenticatedOrReadOnly,) class StageViewSet(ModelViewSet): queryset = Stage.objects.all() serializer_class = StageSerializer filter_class = StageFilterSet permission_classes = (permissions.IsAuthenticatedOrReadOnly,) class ReviewViewSet(ModelViewSet): queryset = Review.objects.all() serializer_class = ReviewSerializer filter_class = ReviewFilterSet permission_classes = (permissions.IsAuthenticatedOrReadOnly,) class DocumentViewSet(ModelViewSet): queryset = Documents.objects.all() serializer_class = DocumentsSerializer # filter_class = DocumentsFilterSet # 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 permission_classes = (permissions.IsAuthenticatedOrReadOnly,) def get_queryset(self): queryset = Notes.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 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): try: # TODO: dirty queryset = Specialization.objects.root_nodes()[0].get_descendants() except: queryset = Specialization.objects.all() serializer_class = SpecializationSerializer filter_class = SpecializationFilterSet class UserViewSet(ModelViewSet): queryset = User.objects.all() serializer_class = UserSerializer filter_class = UserFilterSet class LocationViewSet(ModelViewSet): try: # TODO: dirty queryset = Location.objects.root_nodes()[0].get_descendants() except: queryset = Location.objects.all() serializer_class = LocationSerializer filter_class = LocationFilterSet class PortfolioViewSet(ModelViewSet): queryset = Portfolio.objects.all() serializer_class = PortfolioSerializer filter_class = PortfolioFilterSet class PortfolioPhotoViewSet(ModelViewSet): queryset = PortfolioPhoto.objects.all() serializer_class = PortfolioPhotoSerializer filter_class = PortfolioPhotoFilterSet class AnswerViewSet(ModelViewSet): queryset = Answer.objects.all() serializer_class = AnswerSerializer # filter_class = AnswerFilterSet class TeamViewSet(ModelViewSet): queryset = Team.objects.all() serializer_class = TeamSerializer # filter_class = TeamFilterSet