Browse Source

Merge remote-tracking branch 'origin/master'

wushaodong 4 years ago
parent
commit
6ea715813b

+ 19 - 0
apps/agent/filters.py

@@ -0,0 +1,19 @@
+# coding=utf-8
+import django_filters
+
+from .models import Agent,Store
+
+class AgentFilter(django_filters.FilterSet):
+    name = django_filters.CharFilter(field_name='name', lookup_expr='icontains')
+    tel = django_filters.CharFilter(field_name='tel', lookup_expr='icontains')
+
+    class Meta:
+        model = Agent
+        fields = '__all__'
+
+class StoreFilter(django_filters.FilterSet):
+    name = django_filters.CharFilter(field_name='name', lookup_expr='icontains')
+
+    class Meta:
+        model = Store
+        fields = '__all__'

+ 6 - 0
apps/agent/serializers.py

@@ -5,11 +5,17 @@ from django.conf import settings
 from apps.agent.models import Agent,Store
 
 class AgentSerializer(serializers.ModelSerializer):
+    create_time = serializers.DateTimeField(format='%Y-%m-%d %H:%M', read_only=True)
 
     class Meta:
         model = Agent
         fields = '__all__'
 
+    def create(self, validated_data):
+        validated_data['create_user'] = self.context['request'].user
+        instance = super(AgentSerializer, self).create(validated_data)
+        return instance
+
 
 class AgentComboboxSerializer(serializers.ModelSerializer):
     class Meta:

+ 1 - 1
apps/agent/urls.py

@@ -7,6 +7,6 @@ urlpatterns = [
 ]
 
 router = SimpleRouter()
-router.register(r'agent', AgentViewSet)
+router.register(r'', AgentViewSet)
 router.register(r'store', StoreViewSet)
 urlpatterns += router.urls

+ 35 - 2
apps/agent/views.py

@@ -1,11 +1,14 @@
 # coding=utf-8
 from utils.custom_modelviewset import CustomModelViewSet
 from django.db.models import Q
+from django.utils import timezone
+from rest_framework.views import APIView
+
 from utils import response_ok, response_error
 from .models import Agent,Store
 from .serializers import AgentSerializer,StoreSerializer
-from utils.permission import permission_required, isLogin
-from rest_framework.views import APIView
+from .filters import AgentFilter,StoreFilter
+from utils.permission import isLogin
 from apps.agent.serializers import AgentComboboxSerializer,StoreComboboxSerializer
 
 class AgentViewSet(CustomModelViewSet):
@@ -13,12 +16,42 @@ class AgentViewSet(CustomModelViewSet):
     queryset = Agent.objects.filter()
     serializer_class = AgentSerializer
 
+    def filter_queryset(self, queryset):
+        queryset = queryset.filter()
+        f = AgentFilter(self.request.GET, queryset=queryset)
+        return f.qs
+
+    def perform_create(self, serializer):
+        super(AgentViewSet, self).perform_create(serializer)
+        instance = serializer.instance
+        validated_data = serializer.validated_data
+
+    def destroy(self, request, *args, **kwargs):
+        instance = self.get_object()
+        super(AgentViewSet, self).destroy(self, request, *args, **kwargs)
+        return response_ok()
 
 class StoreViewSet(CustomModelViewSet):
     permission_classes = []
     queryset = Store.objects.filter()
     serializer_class = StoreSerializer
 
+
+    def filter_queryset(self, queryset):
+        queryset = queryset.filter()
+        f = StoreFilter(self.request.GET, queryset=queryset)
+        return f.qs
+
+    def perform_create(self, serializer):
+        super(StoreViewSet, self).perform_create(serializer)
+        instance = serializer.instance
+        validated_data = serializer.validated_data
+
+    def destroy(self, request, *args, **kwargs):
+        instance = self.get_object()
+        super(StoreViewSet, self).destroy(self, request, *args, **kwargs)
+        return response_ok()
+
 class AgentDictView(APIView):
     permission_classes = [isLogin, ]
 

+ 3 - 5
apps/customer/models.py

@@ -23,16 +23,14 @@ class ReportCustomer(models.Model):
                                               default=settings.MALE)
     village = 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, verbose_name=u'来源', related_name='customer_source',
                                on_delete=models.PROTECT)
-    project = models.ForeignKey(Option, max_length=100, verbose_name=u'项目', related_name='customer_category',
-                                on_delete=models.PROTECT)
+    project = models.ManyToManyField(Option, verbose_name=u'项目', related_name='customer_category')
     notes = models.CharField(max_length=500, verbose_name=u"备注", null=True)
     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',
                                    on_delete=models.PROTECT,null=True)
-    check_time = models.DateTimeField(verbose_name=u'审核时间', editable=False, null=True)
-
+    check_time = models.DateTimeField(verbose_name=u'审核时间', null=True)
 
     class Meta:
         db_table = 'report_customer'

+ 18 - 2
apps/customer/serializers.py

@@ -1,13 +1,29 @@
 # coding=utf-8
 from rest_framework import serializers
 
+from apps.option.models import Option
+from apps.option.serializers import OptionSerializer
 from .models import ReportCustomer
 
 class ReportCustomerSerializer(serializers.ModelSerializer):
     gender_text = serializers.CharField(source='get_gender_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)
+    project = serializers.SerializerMethodField()
+
+    def get_project(self, obj):
+        return OptionSerializer(obj.project, many=True).data
 
     class Meta:
         model = ReportCustomer
-        fields = '__all__'
+        fields = '__all__'
+
+    def create(self, validated_data):
+        print(111111111,int(self.initial_data['project']))
+        # validated_data['project'] = self.initial_data['project']
+        instance = super(ReportCustomerSerializer, self).create(validated_data)
+        return instance
+
+    # def update(self, instance, validated_data):
+    #     if instance.project == self.initial_data['project']
+

+ 1 - 0
apps/customer/views.py

@@ -17,6 +17,7 @@ class ReportCustomerViewSet(CustomModelViewSet):
     serializer_class = ReportCustomerSerializer
 
     def filter_queryset(self, queryset):
+        queryset = queryset.filter()
         f = ReportCustomerFilter(self.request.GET, queryset=queryset)
         return f.qs
 

+ 1 - 1
uis/views/agent/index.html

@@ -119,7 +119,7 @@
 
         table.render({
             elem: '#customer_datagrid'
-            , url: '/agent/agent/'
+            , url: '/agent/'
             , cols: [[
                 {field: 'name', title: '名称', width: 150}
                 , {field: 'relation_user', title: "联系人", width: 100}