Browse Source

Merge branch 'master' of http://git.zzliaoyuan.com:4000/wushaodong/decorate

lijiangwei 4 years ago
parent
commit
20b223f426

+ 3 - 3
apps/customer/filters.py

@@ -1,12 +1,12 @@
 # coding=utf-8
 # coding=utf-8
 import django_filters
 import django_filters
 
 
-from .models import Customer
+from .models import ReportCustomer
 
 
-class CustomerFilter(django_filters.FilterSet):
+class ReportCustomerFilter(django_filters.FilterSet):
     name = django_filters.CharFilter(field_name='name', lookup_expr='icontains')
     name = django_filters.CharFilter(field_name='name', lookup_expr='icontains')
     tel = django_filters.CharFilter(field_name='tel', lookup_expr='icontains')
     tel = django_filters.CharFilter(field_name='tel', lookup_expr='icontains')
 
 
     class Meta:
     class Meta:
-        model = Customer
+        model = ReportCustomer
         fields = '__all__'
         fields = '__all__'

+ 6 - 6
apps/customer/models.py

@@ -7,7 +7,7 @@ from utils.exceptions import CustomError
 from apps.option.models import Option
 from apps.option.models import Option
 
 
 
 
-class Customer(models.Model):
+class ReportCustomer(models.Model):
     NOT_CHECKED = 0
     NOT_CHECKED = 0
     CHECKED = 1
     CHECKED = 1
     REPEAT_REPORT = 2
     REPEAT_REPORT = 2
@@ -24,9 +24,9 @@ class Customer(models.Model):
     village = models.CharField(max_length=100, verbose_name=u'小区')
     village = models.CharField(max_length=100, verbose_name=u'小区')
     address = models.CharField(max_length=100, verbose_name=u'地址')
     address = models.CharField(max_length=100, verbose_name=u'地址')
     source = models.ForeignKey(Option, max_length=100, verbose_name=u'来源', related_name='customer_source',
     source = models.ForeignKey(Option, max_length=100, verbose_name=u'来源', related_name='customer_source',
-                               on_delete=models.PROTECT, null=True)
+                               on_delete=models.PROTECT)
     project = models.ForeignKey(Option, max_length=100, verbose_name=u'项目', related_name='customer_category',
     project = models.ForeignKey(Option, max_length=100, verbose_name=u'项目', related_name='customer_category',
-                                on_delete=models.PROTECT, null=True)
+                                on_delete=models.PROTECT)
     notes = models.CharField(max_length=500, verbose_name=u"备注", null=True)
     notes = models.CharField(max_length=500, verbose_name=u"备注", null=True)
     report_status = models.PositiveSmallIntegerField(choices=STATUS_CHOICES, verbose_name=u'报备状态', default=NOT_CHECKED)
     report_status = models.PositiveSmallIntegerField(choices=STATUS_CHOICES, verbose_name=u'报备状态', default=NOT_CHECKED)
     check_user = models.ForeignKey(settings.AUTH_USER_MODEL, verbose_name=u'审核人', related_name='customer_check_user',
     check_user = models.ForeignKey(settings.AUTH_USER_MODEL, verbose_name=u'审核人', related_name='customer_check_user',
@@ -49,12 +49,12 @@ class Customer(models.Model):
 
 
     def check_customer(self, user):
     def check_customer(self, user):
         # 审核
         # 审核
-        if self.report_status == Customer.REPEAT_REPORT:
+        if self.report_status == ReportCustomer.REPEAT_REPORT:
             raise CustomError('当前客户报备状态为重复报备!')
             raise CustomError('当前客户报备状态为重复报备!')
 
 
-        if self.report_status == Customer.NOT_CHECKED:
+        if self.report_status == ReportCustomer.NOT_CHECKED:
             self.check_user = user
             self.check_user = user
-            self.report_status = Customer.CHECKED
+            self.report_status = ReportCustomer.CHECKED
             self.check_time = timezone.now()
             self.check_time = timezone.now()
             self.save()
             self.save()
         # if self.report_status == Customer.CHECKED:
         # if self.report_status == Customer.CHECKED:

+ 3 - 3
apps/customer/serializers.py

@@ -1,13 +1,13 @@
 # coding=utf-8
 # coding=utf-8
 from rest_framework import serializers
 from rest_framework import serializers
 
 
-from .models import Customer
+from .models import ReportCustomer
 
 
-class CustomerSerializer(serializers.ModelSerializer):
+class ReportCustomerSerializer(serializers.ModelSerializer):
     gender_text = serializers.CharField(source='get_gender_display', read_only=True)
     gender_text = serializers.CharField(source='get_gender_display', read_only=True)
     report_status_text = serializers.CharField(source='get_report_status_display', read_only=True)
     report_status_text = serializers.CharField(source='get_report_status_display', read_only=True)
     check_time= serializers.DateTimeField(format='%Y-%m-%d %H:%M', read_only=True)
     check_time= serializers.DateTimeField(format='%Y-%m-%d %H:%M', read_only=True)
 
 
     class Meta:
     class Meta:
-        model = Customer
+        model = ReportCustomer
         fields = '__all__'
         fields = '__all__'

+ 3 - 4
apps/customer/urls.py

@@ -2,15 +2,14 @@
 from django.conf.urls import url, include
 from django.conf.urls import url, include
 from rest_framework.routers import SimpleRouter
 from rest_framework.routers import SimpleRouter
 
 
-from .views import CustomerViewSet,SourceDictView,ProjectDictView
+from .views import ReportCustomerViewSet,ReportCustomerDictView
 
 
 
 
 urlpatterns = [
 urlpatterns = [
-    url(r'^source/dict/$', SourceDictView.as_view()),
-    url(r'^project/dict/$', ProjectDictView.as_view()),
+    url(r'^dict/$', ReportCustomerDictView.as_view()),
 
 
 ]
 ]
 
 
 router = SimpleRouter()
 router = SimpleRouter()
-router.register(r'', CustomerViewSet)
+router.register(r'', ReportCustomerViewSet)
 urlpatterns += router.urls
 urlpatterns += router.urls

+ 17 - 21
apps/customer/views.py

@@ -1,8 +1,8 @@
 # coding=utf-8
 # coding=utf-8
 from rest_framework.decorators import action
 from rest_framework.decorators import action
 from rest_framework import permissions
 from rest_framework import permissions
-
 from rest_framework.views import APIView
 from rest_framework.views import APIView
+from django.db.models import Q
 
 
 from utils.custom_modelviewset import CustomModelViewSet
 from utils.custom_modelviewset import CustomModelViewSet
 from utils.permission import IsAdministratorUser,IsTenantUser
 from utils.permission import IsAdministratorUser,IsTenantUser
@@ -10,27 +10,27 @@ from utils.exceptions import CustomError
 from utils import response_ok, response_error
 from utils import response_ok, response_error
 from apps.option.models import Option
 from apps.option.models import Option
 from apps.option.serializers import OptionComboboxSerializer
 from apps.option.serializers import OptionComboboxSerializer
-from .models import Customer
-from .serializers import CustomerSerializer
-from .filters import CustomerFilter
+from .models import ReportCustomer
+from .serializers import ReportCustomerSerializer
+from .filters import ReportCustomerFilter
 
 
 
 
-class CustomerViewSet(CustomModelViewSet):
+class ReportCustomerViewSet(CustomModelViewSet):
     permission_classes = []
     permission_classes = []
-    queryset = Customer.objects.filter()
-    serializer_class = CustomerSerializer
+    queryset = ReportCustomer.objects.filter()
+    serializer_class = ReportCustomerSerializer
 
 
     def filter_queryset(self, queryset):
     def filter_queryset(self, queryset):
-        f = CustomerFilter(self.request.GET, queryset=queryset)
+        f = ReportCustomerFilter(self.request.GET, queryset=queryset)
         return f.qs
         return f.qs
 
 
     def perform_create(self, serializer):
     def perform_create(self, serializer):
-        super(CustomerViewSet, self).perform_create(serializer)
+        super(ReportCustomerViewSet, self).perform_create(serializer)
         instance = serializer.instance
         instance = serializer.instance
         validated_data = serializer.validated_data
         validated_data = serializer.validated_data
 
 
     def perform_update(self, serializer):
     def perform_update(self, serializer):
-        super(CustomerViewSet, self).perform_update(serializer)
+        super(ReportCustomerViewSet, self).perform_update(serializer)
         instance = serializer.instance
         instance = serializer.instance
         validated_data = serializer.validated_data
         validated_data = serializer.validated_data
 
 
@@ -38,7 +38,7 @@ class CustomerViewSet(CustomModelViewSet):
         instance = self.get_object()
         instance = self.get_object()
         # if instance.tenant != request.user.employee.tenant:
         # if instance.tenant != request.user.employee.tenant:
         #     raise CustomError(u'禁止跨企业操作!')
         #     raise CustomError(u'禁止跨企业操作!')
-        super(CustomerViewSet, self).destroy(self, request, *args, **kwargs)
+        super(ReportCustomerViewSet, self).destroy(self, request, *args, **kwargs)
         return response_ok()
         return response_ok()
 
 
     # @action(methods=['post'], detail=False)
     # @action(methods=['post'], detail=False)
@@ -61,19 +61,15 @@ class CustomerViewSet(CustomModelViewSet):
     #         return response_error(str(e))
     #         return response_error(str(e))
     #     return response_ok('审核完成!')
     #     return response_ok('审核完成!')
 
 
-class SourceDictView(APIView):
+class ReportCustomerDictView(APIView):
     permission_classes = []
     permission_classes = []
 
 
     def get(self, request):
     def get(self, request):
-        rows = Option.objects.filter(type=Option.CUSTOMER_SOURCE,enable=True)
+        rows = Option.objects.filter(Q(type=Option.CUSTOMER_SOURCE)|Q(type=Option.CATEGORY), enable=True)
         serializer = OptionComboboxSerializer(rows, many=True)
         serializer = OptionComboboxSerializer(rows, many=True)
-        return response_ok(serializer.data)
-
+        return response_ok({
+            "source": serializer.data,
+            "project": serializer.data,
+        })
 
 
-class ProjectDictView(APIView):
-    permission_classes = []
 
 
-    def get(self, request):
-        rows = Option.objects.filter(type=Option.CATEGORY, enable=True)
-        serializer = OptionComboboxSerializer(rows, many=True)
-        return response_ok(serializer.data)