@@ -8,8 +8,9 @@ from django_logit import logit |
||
| 8 | 8 |
from django_response import response |
| 9 | 9 |
from TimeConvert import TimeConvert as tc |
| 10 | 10 |
|
| 11 |
-from mch.models import ConsumeInfoSubmitLogInfo, AdministratorInfo |
|
| 12 |
-from utils.error.errno_utils import AdministratorStatusCode, ProductBrandStatusCode, ProductCouponStatusCode, ProductMachineStatusCode |
|
| 11 |
+from mch.models import AdministratorInfo, ConsumeInfoSubmitLogInfo |
|
| 12 |
+from utils.error.errno_utils import (AdministratorStatusCode, ProductBrandStatusCode, ProductCouponStatusCode, |
|
| 13 |
+ ProductMachineStatusCode) |
|
| 13 | 14 |
|
| 14 | 15 |
|
| 15 | 16 |
WECHAT = settings.WECHAT |
@@ -5,7 +5,8 @@ from django_file_upload import views as file_views |
||
| 5 | 5 |
|
| 6 | 6 |
from account import tourguide_views |
| 7 | 7 |
from account import views as account_views |
| 8 |
-from api import admin_views, clerk_views, distributor_views, encrypt_views, mch_views, model_views, operator_views, sr_views |
|
| 8 |
+from api import (admin_views, clerk_views, distributor_views, encrypt_views, mch_views, model_views, operator_views, |
|
| 9 |
+ sr_views) |
|
| 9 | 10 |
from box import views as box_views |
| 10 | 11 |
from geo import views as geo_views |
| 11 | 12 |
from group import (groupuser_views, lensman_views, tourguidegroup_views, tourguidegroupadmin_views, |
@@ -8,7 +8,8 @@ from TimeConvert import TimeConvert as tc |
||
| 8 | 8 |
|
| 9 | 9 |
from integral.models import SaleclerkSubmitLogInfo |
| 10 | 10 |
from mch.models import BrandInfo, DistributorInfo, ModelInfo, SaleclerkInfo |
| 11 |
-from sales.models import SalesResponsibilityInfo, SalesResponsibilityInfoModelsSaleStatisticInfo, SuperSalesResponsibilityInfoModelsSaleStatisticInfo |
|
| 11 |
+from sales.models import (SalesResponsibilityInfo, SalesResponsibilityInfoModelsSaleStatisticInfo, |
|
| 12 |
+ SuperSalesResponsibilityInfoModelsSaleStatisticInfo) |
|
| 12 | 13 |
|
| 13 | 14 |
|
| 14 | 15 |
logger = logging.getLogger('console')
|
@@ -1,7 +1,7 @@ |
||
| 1 | 1 |
# -*- coding: utf-8 -*- |
| 2 | 2 |
|
| 3 | 3 |
from django.contrib import admin |
| 4 |
-from django_admin import ReadOnlyModelAdmin, AdvancedExportExcelModelAdmin |
|
| 4 |
+from django_admin import AdvancedExportExcelModelAdmin, ReadOnlyModelAdmin |
|
| 5 | 5 |
|
| 6 | 6 |
from integral.models import SaleclerkIntegralIncomeExpensesInfo, SaleclerkSubmitLogInfo |
| 7 | 7 |
|
@@ -112,3 +112,15 @@ def DJANGO_FILE_UPLOAD_CALLBACK_FUNC(request, file_path=None, file_url=None): |
||
| 112 | 112 |
operator_id=optor_id, |
| 113 | 113 |
app_version=version, |
| 114 | 114 |
) |
| 115 |
+ |
|
| 116 |
+ zbar = int(request.POST.get('zbar', 0))
|
|
| 117 |
+ if zbar: |
|
| 118 |
+ import os |
|
| 119 |
+ from utils.zbar.zbar import zbar |
|
| 120 |
+ |
|
| 121 |
+ file_path = os.path.join(settings.MEDIA_ROOT, file_path) |
|
| 122 |
+ zbars = zbar(file_path) |
|
| 123 |
+ |
|
| 124 |
+ return {
|
|
| 125 |
+ 'zbars': zbars, |
|
| 126 |
+ } |
@@ -356,6 +356,7 @@ def clerk_integral_list_api(request): |
||
| 356 | 356 |
'left_integral': clerk.integral, |
| 357 | 357 |
}) |
| 358 | 358 |
|
| 359 |
+ |
|
| 359 | 360 |
@logit |
| 360 | 361 |
def clerk_model_list_api(request): |
| 361 | 362 |
brandID = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_PK)
|
@@ -2,11 +2,11 @@ |
||
| 2 | 2 |
|
| 3 | 3 |
from __future__ import division |
| 4 | 4 |
|
| 5 |
-import xlrd |
|
| 6 | 5 |
from django.conf import settings |
| 7 | 6 |
from pysnippets.strsnippets import strip |
| 8 | 7 |
from TimeConvert import TimeConvert as tc |
| 9 | 8 |
|
| 9 |
+import xlrd |
|
| 10 | 10 |
from mch.models import BrandInfo, ConsumeInfoSubmitLogInfo, DistributorInfo, ModelInfo |
| 11 | 11 |
from statistic.models import (ConsumeDistributorSaleStatisticInfo, ConsumeModelSaleStatisticInfo, |
| 12 | 12 |
ConsumeProvinceSaleStatisticInfo, ConsumeSaleStatisticInfo, ConsumeUserStatisticInfo, |
@@ -1,10 +1,10 @@ |
||
| 1 | 1 |
Django==1.11.20 |
| 2 |
-django-admin==1.3.2 |
|
| 2 |
+django-admin==2.0.0 |
|
| 3 | 3 |
django-cors-headers==2.4.0 |
| 4 | 4 |
django-curtail-uuid==1.0.4 |
| 5 | 5 |
django-detect==1.0.8 |
| 6 |
-django-file-md5==1.0.2 |
|
| 7 |
-django-file-upload==1.1.0 |
|
| 6 |
+django-file-md5==1.0.3 |
|
| 7 |
+django-file-upload==1.1.1 |
|
| 8 | 8 |
django-ip==1.0.2 |
| 9 | 9 |
django-json-render==1.0.2 |
| 10 | 10 |
django-json-response==1.1.5 |
@@ -12,13 +12,12 @@ django-logit==1.1.3 |
||
| 12 | 12 |
django-mobi==0.1.7 |
| 13 | 13 |
django-models-ext==1.1.8 |
| 14 | 14 |
django-multidomain==1.1.4 |
| 15 |
-django-paginator2==1.0.4 |
|
| 15 |
+django-paginator2==1.1.3 |
|
| 16 | 16 |
django-query==1.0.3 |
| 17 | 17 |
django-redis-connector==1.0.1 |
| 18 | 18 |
django-response==1.1.1 |
| 19 | 19 |
django-rlog==1.0.7 |
| 20 | 20 |
django-shortuuidfield==0.1.3 |
| 21 | 21 |
django-six==1.0.4 |
| 22 |
-django-uniapi==1.0.5 |
|
| 23 |
-django-we==1.4.2 |
|
| 24 |
-djangorestframework==3.7.7 |
|
| 22 |
+django-uniapi==1.0.7 |
|
| 23 |
+django-we==1.5.3rk==3.7.7 |
@@ -2,7 +2,8 @@ |
||
| 2 | 2 |
|
| 3 | 3 |
from django.contrib import admin |
| 4 | 4 |
|
| 5 |
-from sales.models import SalesResponsibilityInfo, SalesResponsibilityInfoModelsSaleStatisticInfo, SuperSalesResponsibilityInfoModelsSaleStatisticInfo |
|
| 5 |
+from sales.models import (SalesResponsibilityInfo, SalesResponsibilityInfoModelsSaleStatisticInfo, |
|
| 6 |
+ SuperSalesResponsibilityInfoModelsSaleStatisticInfo) |
|
| 6 | 7 |
|
| 7 | 8 |
|
| 8 | 9 |
class SalesResponsibilityInfoAdmin(admin.ModelAdmin): |
@@ -3,4 +3,5 @@ from __future__ import unicode_literals |
||
| 3 | 3 |
|
| 4 | 4 |
from django.test import TestCase |
| 5 | 5 |
|
| 6 |
+ |
|
| 6 | 7 |
# Create your tests here. |
@@ -9,8 +9,9 @@ from TimeConvert import TimeConvert as tc |
||
| 9 | 9 |
|
| 10 | 10 |
from account.models import UserInfo |
| 11 | 11 |
from mch.models import DistributorInfo |
| 12 |
-from sales.models import SalesResponsibilityInfo, SalesResponsibilityInfoModelsSaleStatisticInfo, SuperSalesResponsibilityInfoModelsSaleStatisticInfo |
|
| 13 |
-from utils.error.errno_utils import UserStatusCode, SalesResponsibilityStatusCode |
|
| 12 |
+from sales.models import (SalesResponsibilityInfo, SalesResponsibilityInfoModelsSaleStatisticInfo, |
|
| 13 |
+ SuperSalesResponsibilityInfoModelsSaleStatisticInfo) |
|
| 14 |
+from utils.error.errno_utils import SalesResponsibilityStatusCode, UserStatusCode |
|
| 14 | 15 |
|
| 15 | 16 |
|
| 16 | 17 |
@logit |
@@ -0,0 +1,40 @@ |
||
| 1 |
+# -*- coding: utf-8 -*- |
|
| 2 |
+ |
|
| 3 |
+from PIL import Image, ImageEnhance |
|
| 4 |
+from pyzbar import pyzbar |
|
| 5 |
+ |
|
| 6 |
+ |
|
| 7 |
+# The zbar DLLs are included with the Windows Python wheels. |
|
| 8 |
+# On other operating systems, you will need to install the zbar shared library. |
|
| 9 |
+# |
|
| 10 |
+# Mac OS X: |
|
| 11 |
+# brew install zbar |
|
| 12 |
+# |
|
| 13 |
+# Linux: |
|
| 14 |
+# sudo apt-get install libzbar0 |
|
| 15 |
+# |
|
| 16 |
+# Install this Python wrapper; use the second form to install dependencies of the command-line scripts: |
|
| 17 |
+# pip install pyzbar |
|
| 18 |
+ |
|
| 19 |
+ |
|
| 20 |
+def zbar(path): |
|
| 21 |
+ img = Image.open(path) |
|
| 22 |
+ |
|
| 23 |
+ # img = ImageEnhance.Brightness(img).enhance(2.0) # 增加亮度 |
|
| 24 |
+ # img = ImageEnhance.Sharpness(img).enhance(17.0) # 锐利化 |
|
| 25 |
+ # img = ImageEnhance.Contrast(img).enhance(4.0) # 增加对比度 |
|
| 26 |
+ # img = img.convert('L') # 灰度化
|
|
| 27 |
+ |
|
| 28 |
+ # img.show() |
|
| 29 |
+ |
|
| 30 |
+ barcodes = pyzbar.decode(img) |
|
| 31 |
+ |
|
| 32 |
+ # for barcode in barcodes: |
|
| 33 |
+ # barcodeData = barcode.data.decode("utf-8")
|
|
| 34 |
+ # print(barcodeData) |
|
| 35 |
+ |
|
| 36 |
+ return [bar.data.decode('utf-8') for bar in barcodes]
|
|
| 37 |
+ |
|
| 38 |
+ |
|
| 39 |
+if __name__ == '__main__': |
|
| 40 |
+ print zbar('zbar.jpg')
|