Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
wbcrm / crm / views / api / contacts.py
Size: Mime:
from django_filters.rest_framework import DjangoFilterBackend
from rest_framework import filters, viewsets

from crm import filters as crm_filters

from crm.filters.contacts import (AddressContactFilter, BankingContactFilter,
                                 EmailContactFilter, TelephoneContactFilter,
                                 WebsiteContactFilter)
from crm.models.contacts import (AddressContact, BankingContact, ContactCountry,
                                ContactLocation, ContactTelephoneType,
                                EmailContact, TelephoneContact, WebsiteContact)
from crm.serializers.contacts import (AddressContactSerializer,
                                     BankingContactSerializer,
                                     ContactCountrySerializer,
                                     ContactLocationSerializer,
                                     ContactTelephoneTypeSerializer,
                                     EmailContactSerializer,
                                     TelephoneContactSerializer,
                                     WebsiteContactSerializer)
from wbutils.views import AppModelResponseHeaderMixin


class ContactLocationViewSet(AppModelResponseHeaderMixin, viewsets.ModelViewSet):
    filter_backends = (filters.SearchFilter,)
    search_fields = ('location',)
    queryset = ContactLocation.objects.all()
    serializer_class = ContactLocationSerializer


class ContactCountryViewSet(AppModelResponseHeaderMixin, viewsets.ModelViewSet):
    filter_backends = (filters.SearchFilter,)
    search_fields = ('country_code', 'country_name')
    queryset = ContactCountry.objects.all()
    serializer_class = ContactCountrySerializer


class ContactTelephoneTypeViewSet(AppModelResponseHeaderMixin, viewsets.ModelViewSet):
    IDENTIFIER = 'crm:contacttelephonetype'
    filter_backends = (filters.SearchFilter,)
    search_fields = ('telephone_type',)
    queryset = ContactTelephoneType.objects.all()
    serializer_class = ContactTelephoneTypeSerializer


class EmailContactViewSet(AppModelResponseHeaderMixin, viewsets.ModelViewSet):
    IDENTIFIER = 'crm:emailcontact'
    filter_backends = (DjangoFilterBackend,
                       filters.SearchFilter, filters.OrderingFilter)
    filter_class = EmailContactFilter
    search_fields = ('address',)
    ordering_fields = ('primary',)
    queryset = EmailContact.objects.all()
    serializer_class = EmailContactSerializer


class AddressContactViewSet(AppModelResponseHeaderMixin, viewsets.ModelViewSet):
    IDENTIFIER = 'crm:addresscontact'
    filter_backends = (DjangoFilterBackend,
                       filters.SearchFilter, filters.OrderingFilter)
    filter_class = AddressContactFilter
    ordering_fields = ('primary',)
    queryset = AddressContact.objects.all()
    serializer_class = AddressContactSerializer


class TelephoneContactViewSet(AppModelResponseHeaderMixin, viewsets.ModelViewSet):
    IDENTIFIER = 'crm:telephonecontact'
    filter_backends = (DjangoFilterBackend,
                       filters.SearchFilter, filters.OrderingFilter)
    filter_class = TelephoneContactFilter
    ordering_fields = ('primary',)
    queryset = TelephoneContact.objects.all()
    serializer_class = TelephoneContactSerializer


class WebsiteContactViewSet(AppModelResponseHeaderMixin, viewsets.ModelViewSet):
    IDENTIFIER = 'crm:websitecontact'
    filter_backends = (DjangoFilterBackend,
                       filters.SearchFilter, filters.OrderingFilter)
    filter_class = WebsiteContactFilter
    ordering_fields = ('primary',)
    queryset = WebsiteContact.objects.all()
    serializer_class = WebsiteContactSerializer


class BankingContactViewSet(AppModelResponseHeaderMixin, viewsets.ModelViewSet):
    IDENTIFIER = 'crm:bankingcontact'
    filter_backends = (DjangoFilterBackend,
                       filters.SearchFilter, filters.OrderingFilter)
    filter_class = BankingContactFilter
    ordering_fields = ('primary',)
    queryset = BankingContact.objects.all()
    serializer_class = BankingContactSerializer