hujingpei vor 4 Jahren
Ursprung
Commit
913998d8d2
5 geänderte Dateien mit 59 neuen und 8 gelöschten Zeilen
  1. 19 0
      apps/agent/filters.py
  2. 1 1
      apps/agent/urls.py
  3. 35 2
      apps/agent/views.py
  4. 3 5
      apps/customer/models.py
  5. 1 0
      apps/customer/views.py

+ 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__'

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

+ 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