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
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
|
|
|