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.
 
 
 
 
 
 

165 lines
6.0 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, Portfolio, PortfolioPhoto, Answer, AnswerFile, Order
from projects.serializers import (ProjectSerializer, RealtySerializer, StageSerializer,
PortfolioSerializer, PortfolioPhotoSerializer, AnswerSerializer,
OrderSerializer, AnswerFileSerializer,)
from projects.filters import (ProjectFilterSet, RealtyFilterSet, StageFilterSet, PortfolioFilterSet,
OrderFilterSet, 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 OrderViewSet(ModelViewSet):
queryset = Order.objects.all()
serializer_class = OrderSerializer
filter_class = OrderFilterSet
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