Ver código fonte

客户跟踪信息

hujingpei 4 anos atrás
pai
commit
346fe48c16

+ 10 - 1
apps/customer/filters.py

@@ -1,7 +1,7 @@
 # coding=utf-8
 import django_filters
 
-from .models import ReportCustomer
+from .models import ReportCustomer,NewCustomer
 
 class ReportCustomerFilter(django_filters.FilterSet):
     name = django_filters.CharFilter(field_name='name', lookup_expr='icontains')
@@ -9,4 +9,13 @@ class ReportCustomerFilter(django_filters.FilterSet):
 
     class Meta:
         model = ReportCustomer
+        fields = '__all__'
+
+
+class NewCustomerFilter(django_filters.FilterSet):
+    name = django_filters.CharFilter(field_name='report_customer__name', lookup_expr='icontains')
+    tel = django_filters.CharFilter(field_name='report_customer__tel', lookup_expr='icontains')
+
+    class Meta:
+        model = NewCustomer
         fields = '__all__'

+ 28 - 1
apps/customer/models.py

@@ -60,4 +60,31 @@ class ReportCustomer(models.Model):
     #         self.check_time = timezone.now()
     #         self.save()
     #     # if self.report_status == Customer.CHECKED:
-    #     #     # 撞单
+    #     #     # 撞单
+
+
+class NewCustomer(models.Model):
+    report_customer = models.ForeignKey(ReportCustomer, verbose_name=u'报备客户信息', related_name='customer_source',
+                                        on_delete=models.PROTECT)
+    potential_level = models.ForeignKey(Option, verbose_name=u'潜客级别', related_name='potential_level',
+                                        on_delete=models.PROTECT)
+    stage_progress = models.ForeignKey(Option, verbose_name=u'阶段进度', related_name='stage_progress',
+                                        on_delete=models.PROTECT)
+    track_user = models.ForeignKey(settings.AUTH_USER_MODEL, verbose_name=u'跟踪人', related_name='track_user',
+                                   editable=False, on_delete=models.PROTECT)
+    end_time = models.DateTimeField(verbose_name=u'最后跟踪时间', null=True)
+    next_time = models.DateTimeField(verbose_name=u'下次跟踪时间', null=True)
+    create_user = models.ForeignKey(settings.AUTH_USER_MODEL, verbose_name=u'建档人', related_name='newcustomer_create_user',
+                                    editable=False, on_delete=models.PROTECT)
+    create_time = models.DateTimeField(verbose_name=u'建档时间', auto_now_add=True, editable=False)
+
+    class Meta:
+        db_table = 'new_customer'
+        verbose_name = u'客户跟踪信息'
+        ordering = ['-id']
+        default_permissions = ()
+        permissions = [
+            ('view_new_customer', u'查看'),
+            ('update_new_customer', u'更新'),
+            ('delete_new_customer', u'删除'),
+        ]

+ 36 - 1
apps/customer/serializers.py

@@ -4,7 +4,7 @@ from rest_framework import serializers
 from apps.option.models import Option
 from utils.exceptions import CustomError
 from apps.option.serializers import OptionSerializer
-from .models import ReportCustomer
+from .models import ReportCustomer,NewCustomer
 
 class ReportCustomerSerializer(serializers.ModelSerializer):
     gender_text = serializers.CharField(source='get_gender_display', read_only=True)
@@ -47,3 +47,38 @@ class ReportCustomerSerializer(serializers.ModelSerializer):
             instance.project.add(project)
         instance = super(ReportCustomerSerializer, self).update(instance, validated_data)
         return instance
+
+class NewCustomerSerializer(serializers.ModelSerializer):
+    track_user_text = serializers.CharField(source='track_user.name', read_only=True)
+    create_user_text = serializers.CharField(source='create_user.name', read_only=True)
+    potential_level_text = serializers.CharField(source='potential_level.name', read_only=True)
+    stage_progress_text = serializers.CharField(source='stage_progress.name', read_only=True)
+    create_time = serializers.DateTimeField(format='%Y-%m-%d %H:%M', read_only=True)
+    end_time = serializers.DateTimeField(format='%Y-%m-%d %H:%M', read_only=True)
+    next_time = serializers.DateTimeField(format='%Y-%m-%d %H:%M', read_only=True)
+
+    name = serializers.CharField(source='report_customer.name', lookup_expr='icontains')
+    tel = serializers.CharField(source='report_customer.tel', lookup_expr='icontains')
+    village = serializers.CharField(source='report_customer.village', lookup_expr='icontains')
+    address = serializers.CharField(source='report_customer.address', lookup_expr='icontains')
+    source_text = serializers.CharField(source='report_customer.source.name', lookup_expr='icontains')
+    project_text = serializers.CharField(source='report_customer.projects.name', lookup_expr='icontains')
+    track_user = serializers.CharField(source='track_user.name', lookup_expr='icontains')
+
+    class Meta:
+        model = NewCustomer
+        fields = (
+            'id', 'name', 'tel', 'village', 'address', 'source_text', 'project_text', 'potential_level_text',
+            'stage_progress_text','track_user', 'end_time', 'next_time','create_time','create_user'
+        )
+
+    def create(self, validated_data):
+        validated_data['create_user'] = self.context['request'].user
+        instance = super(NewCustomerSerializer, self).create(validated_data)
+
+        return instance
+
+    def update(self, instance, validated_data):
+
+        instance = super(NewCustomerSerializer, self).update(instance, validated_data)
+        return instance

+ 2 - 1
apps/customer/urls.py

@@ -2,7 +2,7 @@
 from django.conf.urls import url, include
 from rest_framework.routers import SimpleRouter
 
-from .views import ReportCustomerViewSet,ReportCustomerDictView
+from .views import ReportCustomerViewSet,ReportCustomerDictView,NewCustomerViewSet
 
 
 urlpatterns = [
@@ -12,4 +12,5 @@ urlpatterns = [
 
 router = SimpleRouter()
 router.register(r'report_customer', ReportCustomerViewSet)
+router.register(r'new_customer', NewCustomerViewSet)
 urlpatterns += router.urls

+ 15 - 3
apps/customer/views.py

@@ -10,9 +10,9 @@ from utils.exceptions import CustomError
 from apps.log.models import BizLog
 from apps.option.models import Option
 from apps.option.serializers import OptionComboboxSerializer
-from .models import ReportCustomer
-from .serializers import ReportCustomerSerializer
-from .filters import ReportCustomerFilter
+from .models import ReportCustomer,NewCustomer
+from .serializers import ReportCustomerSerializer,NewCustomerSerializer
+from .filters import ReportCustomerFilter,NewCustomerFilter
 
 
 class ReportCustomerViewSet(CustomModelViewSet):
@@ -74,6 +74,7 @@ class ReportCustomerViewSet(CustomModelViewSet):
             return response_error(str(e))
         return response_ok('审核完成!')
 
+
 class ReportCustomerDictView(APIView):
     permission_classes = []
 
@@ -86,3 +87,14 @@ class ReportCustomerDictView(APIView):
             'source': serializer_scouce.data,
             'project': serializer_project.data,
         })
+
+
+class NewCustomerViewSet(CustomModelViewSet):
+    permission_classes = []
+    queryset = NewCustomer.objects.filter()
+    serializer_class = NewCustomerSerializer
+
+    def filter_queryset(self, queryset):
+        queryset = queryset.filter()
+        f = NewCustomerFilter(self.request.GET, queryset=queryset)
+        return f.qs