@@ -477,6 +478,7 @@ def dashboard(request):
477 478
         'consumer_count': consumer_count,
478 479
     })
479 480
 
481
+
480 482
 def statistic_consumer(request):
481 483
     brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID)
482 484
     admin_id = request.POST.get('admin_id', '')
@@ -490,8 +492,8 @@ def statistic_consumer(request):
490 492
         administrator = AdministratorInfo.objects.get(admin_id=admin_id, user_status=AdministratorInfo.ACTIVATED, status=True)
491 493
     except AdministratorInfo.DoesNotExist:
492 494
         return response(AdministratorStatusCode.ADMINISTRATOR_NOT_FOUND)
493
-    
494
-    #消费者统计
495
+
496
+    # 消费者统计
495 497
     logs = ConsumeInfoSubmitLogInfo.objects.filter(ymd__gte=start_time, ymd__lte=end_time, test_user=False, dupload=False, status=True)
496 498
 
497 499
     daily_logs = list(logs.values('ymd').annotate(num=Count('pk')).order_by('ymd'))
@@ -506,7 +508,7 @@ def statistic_consumer(request):
506 508
         if j < len(daily_code1_logs) and daily_logs[i]['ymd'] == daily_code1_logs[j]['ymd']:
507 509
             daily_logs[i]['code1'] = daily_code1_logs[j]['num']
508 510
             j += 1
509
-        
511
+
510 512
         if k < len(daily_code2_logs) and daily_logs[i]['ymd'] == daily_code2_logs[k]['ymd']:
511 513
             daily_logs[i]['code2'] = daily_code2_logs[k]['num']
512 514
             k += 1
@@ -523,11 +525,11 @@ def statistic_consumer(request):
523 525
         if j < len(model_code1_logs) and model_logs[i]['model_uni_name'] == model_code1_logs[j]['model_uni_name']:
524 526
             model_logs[i]['code1'] = model_code1_logs[j]['num']
525 527
             j += 1
526
-        
528
+
527 529
         if k < len(model_code2_logs) and model_logs[i]['model_uni_name'] == model_code2_logs[k]['model_uni_name']:
528 530
             model_logs[i]['code2'] = model_code2_logs[k]['num']
529 531
             k += 1
530
-    
532
+
531 533
     model_logs.sort(key=lambda k: (-k['num']))
532 534
 
533 535
     province_logs = list(logs.values('province').annotate(num=Count('pk')).order_by('province'))
@@ -542,15 +544,15 @@ def statistic_consumer(request):
542 544
         if j < len(province_code1_logs) and province_logs[i]['province'] == province_code1_logs[j]['province']:
543 545
             province_logs[i]['code1'] = province_code1_logs[j]['num']
544 546
             j += 1
545
-        
547
+
546 548
         if k < len(province_code2_logs) and province_logs[i]['province'] == province_code2_logs[k]['province']:
547 549
             province_logs[i]['code2'] = province_code2_logs[k]['num']
548 550
             k += 1
549
-    
551
+
550 552
     province_logs.sort(key=lambda k: (-k['num']))
551 553
 
552 554
     return response(200, 'Get Consumer Statistic Success', u'获取消费者统计成功', data={
553 555
         'daily_logs': daily_logs,
554 556
         'model_logs': model_logs,
555 557
         'province_logs': province_logs,
556
-    })
558
+    })

+ 1 - 1
api/encrypt_views.py

@@ -145,7 +145,7 @@ def decrypt(request, v='v2'):
145 145
         mdli.decrypt_count += 1
146 146
         mdli.save()
147 147
 
148
-    #弃用老版本的劵形式,和会员系统统一
148
+    # 弃用老版本的劵形式,和会员系统统一
149 149
     if v == 'v1':
150 150
         has_unexpired_activity = False
151 151
         coupon_infos = {}

+ 7 - 6
api/mch_views.py

@@ -2,6 +2,8 @@
2 2
 
3 3
 from __future__ import division
4 4
 
5
+import json
6
+
5 7
 from django.conf import settings
6 8
 from django.contrib.auth.hashers import check_password
7 9
 from django.db import transaction
@@ -10,19 +12,18 @@ from django_response import response
10 12
 from pywe_miniapp import get_phone_number
11 13
 from pywe_storage import RedisStorage
12 14
 from TimeConvert import TimeConvert as tc
13
-import json
14 15
 
15
-from logs.models import MchInfoEncryptLogInfo
16 16
 from account.models import UserInfo
17
+from coupon.models import CouponInfo, UserCouponInfo
17 18
 from integral.models import SaleclerkSubmitLogInfo
19
+from logs.models import MchInfoEncryptLogInfo
18 20
 from mch.models import (ActivityInfo, AdministratorInfo, BrandInfo, ConsumeInfoSubmitLogInfo, DistributorInfo,
19 21
                         LatestAppInfo, LatestAppScreenInfo, ModelInfo, OperatorInfo)
20
-from coupon.models import CouponInfo, UserCouponInfo
21 22
 from statistic.models import ConsumeModelSaleStatisticInfo, ConsumeSaleStatisticInfo, ConsumeUserStatisticInfo
22 23
 from utils.error.errno_utils import (AdministratorStatusCode, OperatorStatusCode, ProductBrandStatusCode,
23 24
                                      ProductModelStatusCode, UserStatusCode)
24 25
 from utils.redis.connect import r
25
-from utils.redis.rkeys import MEMBER_SEND_COUPON_LIST, MINI_PROGRAM_GIS_LIST, MEMBER_UPGRADE_INFO
26
+from utils.redis.rkeys import MEMBER_SEND_COUPON_LIST, MEMBER_UPGRADE_INFO, MINI_PROGRAM_GIS_LIST
26 27
 
27 28
 
28 29
 WECHAT = settings.WECHAT
@@ -264,7 +265,7 @@ def consumer_info_api(request):
264 265
 
265 266
         if encrypt_logs:
266 267
             code_version = encrypt_logs[0].version
267
-    
268
+
268 269
     user.code_version = code_version
269 270
     user.save()
270 271
 
@@ -313,7 +314,7 @@ def consumer_info_api(request):
313 314
                 )
314 315
             except:
315 316
                 continue
316
-        
317
+
317 318
         # 更新销售员提交的表
318 319
         logs = SaleclerkSubmitLogInfo.objects.filter(code=serialNo, model_pk=model.pk)
319 320
         for log in logs:

+ 2 - 2
api/member_views.py

@@ -14,8 +14,8 @@ from account.models import UserInfo
14 14
 from coupon.models import UserCouponInfo
15 15
 from member.models import (GoodsInfo, GoodsOrderInfo, MemberActivityInfo, MemberActivitySigninInfo,
16 16
                            MemberActivitySignupInfo, RightInfo)
17
-from utils.error.errno_utils import (MemberActivityStatusCode, MemberCouponStatusCode, MemberGoodStatusCode, MemberRightStatusCode,
18
-                                     UserStatusCode)
17
+from utils.error.errno_utils import (MemberActivityStatusCode, MemberCouponStatusCode, MemberGoodStatusCode,
18
+                                     MemberRightStatusCode, UserStatusCode)
19 19
 from utils.redis.connect import r
20 20
 from utils.redis.rkeys import MEMBER_SEND_COUPON_LIST, MEMBER_UPGRADE_INFO
21 21
 from utils.redis.rshot import get_member_shot_data

+ 3 - 2
api/model_views.py

@@ -10,7 +10,7 @@ from django_response import response
10 10
 from paginator import pagination
11 11
 
12 12
 from account.models import UserInfo
13
-from mch.models import AdministratorInfo, ModelInfo, ModelCameraBodyInfo
13
+from mch.models import AdministratorInfo, ModelCameraBodyInfo, ModelInfo
14 14
 from utils.error.errno_utils import AdministratorStatusCode, ProductModelStatusCode, UserStatusCode
15 15
 
16 16
 
@@ -159,6 +159,7 @@ def model_list(request):
159 159
         'left': left,
160 160
     })
161 161
 
162
+
162 163
 @logit
163 164
 def model_name_list(request):
164 165
     brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID)
@@ -175,7 +176,7 @@ def model_name_list(request):
175 176
     models = list(models)
176 177
 
177 178
     return response(200, 'Get Model Name List Success', u'获取型号列表成功', {
178
-        'models': sorted(set(models),key=models.index)
179
+        'models': sorted(set(models), key=models.index)
179 180
     })
180 181
 
181 182
 

+ 4 - 4
api/urls.py

@@ -5,8 +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, member_views, model_views,
9
-                 operator_views, refresh_views, sr_views, staff_views, log_views)
8
+from api import (admin_views, clerk_views, distributor_views, encrypt_views, log_views, mch_views, member_views,
9
+                 model_views, operator_views, refresh_views, sr_views, staff_views)
10 10
 from box import views as box_views
11 11
 from geo import views as geo_views
12 12
 from group import (groupuser_views, lensman_views, tourguidegroup_views, tourguidegroupadmin_views,
@@ -230,8 +230,8 @@ urlpatterns += [
230 230
     url(r'^clerk/integral/list$', sale_views.clerk_integral_list_api, name='clerk_integral_list_api'),  # 店员销售积分列表
231 231
     url(r'^clerk/model/list$', sale_views.clerk_model_list_api, name='clerk_model_list_api'),
232 232
     url(r'^clerk/checkout/serialNo$', sale_views.clerk_checkout_serialNo_api, name='clerk_checkout_serialNo_api'),  # 校验序列号
233
-    url(r'^clerk/query/coupon$', sale_views.clerk_query_coupon, name='clerk_query_coupon'), 
234
-    url(r'^clerk/writeoff/coupon$', sale_views.clerk_writeoff_coupon, name='clerk_writeoff_coupon'), 
233
+    url(r'^clerk/query/coupon$', sale_views.clerk_query_coupon, name='clerk_query_coupon'),
234
+    url(r'^clerk/writeoff/coupon$', sale_views.clerk_writeoff_coupon, name='clerk_writeoff_coupon'),
235 235
 ]
236 236
 
237 237
 urlpatterns += [

+ 1 - 1
commands/management/commands/gis.py

@@ -9,9 +9,9 @@ from django.db import transaction
9 9
 from django_models_ext import ProvinceModelMixin, ProvinceShortModelMixin
10 10
 from django_six import CompatibilityBaseCommand, close_old_connections
11 11
 
12
-from statistic.models import ConsumeProvinceSaleStatisticInfo
13 12
 from account.models import UserInfo
14 13
 from mch.models import ConsumeInfoSubmitLogInfo
14
+from statistic.models import ConsumeProvinceSaleStatisticInfo
15 15
 from utils.redis.connect import r
16 16
 from utils.redis.rkeys import MINI_PROGRAM_GIS_LIST
17 17
 

+ 1 - 2
commands/management/commands/membercard.py

@@ -89,7 +89,6 @@ class Command(CompatibilityBaseCommand):
89 89
                     log.phone = userinfo.phone
90 90
                     log.save()
91 91
 
92
-
93 92
                 try:
94 93
                     phoneinfo = requests.get(settings.PHONE_2_ADMINISTRATIVE_DIVISION.format(phone))
95 94
                 except Exception as e:
@@ -100,7 +99,7 @@ class Command(CompatibilityBaseCommand):
100 99
                 except Exception as e:
101 100
                     logger.info(e.message)
102 101
                     continue
103
-                
102
+
104 103
                 logs = ConsumeInfoSubmitLogInfo.objects.filter(user_id=userinfo.user_id)
105 104
                 for log in logs:
106 105
                     log.province = log.province if log.lat and log.lon else province_name

+ 1 - 1
commands/management/commands/subscribe.py

@@ -8,11 +8,11 @@ from django_redis_connector import connector
8 8
 from django_six import CompatibilityBaseCommand, close_old_connections
9 9
 from django_we.models import SubscribeUserInfo
10 10
 from pywe_storage import RedisStorage
11
-from pywe_user import get_user_info
12 11
 
13 12
 from account.models import UserInfo
14 13
 from mch.models import BrandInfo
15 14
 from pre.custom_message import sendcustomwxamessage
15
+from pywe_user import get_user_info
16 16
 from utils.redis.rkeys import SUBSCRIBE_USERINFO_LIST
17 17
 
18 18
 

+ 2 - 3
coupon/models.py

@@ -51,7 +51,6 @@ class CouponInfo(BaseModelMixin):
51 51
     def coupon_image_url(self):
52 52
         return upload_file_url(self.coupon_image)
53 53
 
54
-
55 54
     @property
56 55
     def final_expire_at(self):
57 56
         if self.coupon_expire_type == CouponInfo.FIXED_EXPIRED_TIME:
@@ -131,8 +130,8 @@ class UserCouponInfo(BaseModelMixin):
131 130
             'coupon_value': self.coupon_value,
132 131
             'coupon_image_url': self.coupon_image_url,
133 132
             'is_coupon_admin_writeoff': self.is_coupon_admin_writeoff,
134
-            'active_at': tc.local_string(self.active_at, format='%Y%m%d'),
135
-            'expire_at': tc.local_string(self.expire_at, format='%Y-%m-%d'),
133
+            'active_at': tc.local_string(utc_dt=self.active_at, format='%Y%m%d'),
134
+            'expire_at': tc.local_string(utc_dt=self.expire_at, format='%Y-%m-%d'),
136 135
             'coupon_valid_period': self.coupon_valid_period,
137 136
             'coupon_limit_model_ids': self.coupon_limit_model_ids,
138 137
             'has_actived': self.has_actived,

+ 0 - 2
integral/admin.py

@@ -1,6 +1,5 @@
1 1
 # -*- coding: utf-8 -*-
2 2
 
3
-from daterange_filter.filter import DateRangeFilter
4 3
 from django.contrib import admin
5 4
 from django_admin import AdvancedExportExcelModelAdmin, ReadOnlyModelAdmin
6 5
 
@@ -21,6 +20,5 @@ class SaleclerkSubmitLogInfoAdmin(AdvancedExportExcelModelAdmin, ReadOnlyModelAd
21 20
     search_fields = ('code', 'trackingNo', 'distributor_name', 'clerk_name', 'model_name', 'model_uni_name')
22 21
 
23 22
 
24
-
25 23
 admin.site.register(SaleclerkIntegralIncomeExpensesInfo, SaleclerkIntegralIncomeExpensesInfoAdmin)
26 24
 admin.site.register(SaleclerkSubmitLogInfo, SaleclerkSubmitLogInfoAdmin)

+ 0 - 1
kodo/settings.py

@@ -86,7 +86,6 @@ MIDDLEWARE = (
86 86
     'django.middleware.common.CommonMiddleware',
87 87
     # 'django.middleware.csrf.CsrfViewMiddleware',
88 88
     'django.contrib.auth.middleware.AuthenticationMiddleware',
89
-    'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
90 89
     'django.contrib.messages.middleware.MessageMiddleware',
91 90
     'django.middleware.clickjacking.XFrameOptionsMiddleware',
92 91
     'django.middleware.security.SecurityMiddleware',

+ 2 - 2
logs/models.py

@@ -18,8 +18,8 @@ class MchInfoEncryptLogInfo(BaseModelMixin):
18 18
 
19 19
     sn = models.CharField(_(u'sn'), max_length=32, blank=True, null=True, help_text=u'序列号', db_index=True)
20 20
 
21
-    #二维码版本
22
-    version=models.IntegerField(_(u'version'), default=2, help_text=u'二维码版本', db_index=True)
21
+    # 二维码版本
22
+    version = models.IntegerField(_(u'version'), default=2, help_text=u'二维码版本', db_index=True)
23 23
 
24 24
     # 一物一码
25 25
     application_id = models.IntegerField(_(u'application_id'), default=0, help_text=u'申请单号', db_index=True)

+ 1 - 0
marketcode/tests.py

@@ -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.

+ 1 - 0
marketcode/views.py

@@ -3,4 +3,5 @@ from __future__ import unicode_literals
3 3
 
4 4
 from django.shortcuts import render
5 5
 
6
+
6 7
 # Create your views here.

+ 3 - 2
mch/admin.py

@@ -8,8 +8,9 @@ from django_admin import AdvancedActionsModelAdmin, AdvancedExportExcelModelAdmi
8 8
 from django_models_ext import ProvinceShortModelMixin
9 9
 from pysnippets.strsnippets import strip
10 10
 
11
-from mch.models import (ActivityInfo, AdministratorInfo, BrandInfo, CameraModelInfo, ConsumeInfoSubmitLogInfo, DistributorInfo,
12
-                        LatestAppInfo, LatestAppScreenInfo, ModelInfo, ModelCameraBodyInfo, OperatorInfo, SaleclerkInfo)
11
+from mch.models import (ActivityInfo, AdministratorInfo, BrandInfo, CameraModelInfo, ConsumeInfoSubmitLogInfo,
12
+                        DistributorInfo, LatestAppInfo, LatestAppScreenInfo, ModelCameraBodyInfo, ModelInfo,
13
+                        OperatorInfo, SaleclerkInfo)
13 14
 from utils.redis.rshot import update_member_shot_data
14 15
 
15 16
 

+ 17 - 21
mch/models.py

@@ -337,7 +337,7 @@ class ModelCameraBodyInfo(BaseModelMixin):
337 337
     def final_camera_market_time(self):
338 338
         if not self.camera_market_time:
339 339
             return ''
340
-        return tc.local_string(self.camera_market_time, format='%Y-%m-%d')
340
+        return tc.local_string(utc_dt=self.camera_market_time, format='%Y-%m-%d')
341 341
 
342 342
     @property
343 343
     def data(self):
@@ -693,7 +693,7 @@ class ConsumeInfoSubmitLogInfo(BaseModelMixin):
693 693
             'serialNo': self.serialNo,
694 694
             'integral': model_info.shot_member_integral,
695 695
             'dupload': self.dupload,
696
-            'created_at': tc.local_string(self.created_at, format='%Y-%m-%d'),
696
+            'created_at': tc.local_string(utc_dt=self.created_at, format='%Y-%m-%d'),
697 697
         }
698 698
 
699 699
 
@@ -737,10 +737,7 @@ class ActivityInfo(BaseModelMixin):
737 737
         final_expire_at = self.final_expire_at(created_at=created_at)
738 738
         if not final_expire_at:
739 739
             return ''
740
-        y = tc.local_string(final_expire_at, format='%Y')
741
-        m = tc.local_string(final_expire_at, format='%m')
742
-        d = tc.local_string(final_expire_at, format='%d')
743
-        return u'{}年{}月{}日'.format(y, m, d)
740
+        return tc.local_string(utc_dt=final_expire_at, format=u'%Y年%m月%d日', isuc=True)
744 741
 
745 742
     def has_unexpired_activity(self, model_name):
746 743
         return ((self.model_uni_names and model_name in self.model_uni_names) or not self.model_uni_names) and (self.start_at <= tc.utc_datetime() < self.end_at)
@@ -751,7 +748,6 @@ class ActivityInfo(BaseModelMixin):
751 748
             'coupon_value': self.coupon_value,
752 749
             'coupon_has_expired': tc.utc_datetime() >= self.final_expire_at(created_at=created_at),
753 750
         }
754
-    
755 751
 
756 752
     def coupon_info2(self, created_at=None):
757 753
         return self.coupon_info(created_at=created_at),
@@ -759,17 +755,17 @@ class ActivityInfo(BaseModelMixin):
759 755
     @property
760 756
     def coupon_info3(self):
761 757
         try:
762
-            coupon_info = CouponInfo.objects.get(coupon_id=self.coupon_id)
763
-            return {
764
-                'coupon_image': coupon_info.coupon_image_url,
765
-                'coupon_expire_at': coupon_info.coupon_expire_at,
766
-                'coupon_value': coupon_info.coupon_value,
767
-                'coupon_title': coupon_info.coupon_title,
768
-                'coupon_valid_period': coupon_info.coupon_valid_period,
769
-                'coupon_id': coupon_info.coupon_id,
770
-                'activity_id': self.activity_id,
771
-                'activity_name': self.activity_name,
772
-            }
773
-        except:
774
-            return {}
775
-        
758
+            coupon = CouponInfo.objects.get(coupon_id=self.coupon_id)
759
+        except CouponInfo.DoesNotExist:
760
+            coupon = None
761
+
762
+        return {
763
+            'coupon_image': coupon.coupon_image_url,
764
+            'coupon_expire_at': coupon.coupon_expire_at,
765
+            'coupon_value': coupon.coupon_value,
766
+            'coupon_title': coupon.coupon_title,
767
+            'coupon_valid_period': coupon.coupon_valid_period,
768
+            'coupon_id': coupon.coupon_id,
769
+            'activity_id': self.activity_id,
770
+            'activity_name': self.activity_name,
771
+        } if coupon else {}

+ 2 - 2
member/models.py

@@ -330,7 +330,7 @@ class MemberActivityInfo(BaseModelMixin):
330 330
             'activity_id': self.activity_id,
331 331
             'title': self.title,
332 332
             'subtitle': self.subtitle,
333
-            'date': tc.local_string(self.date, format='%Y-%m-%d'),
333
+            'date': tc.local_string(utc_dt=self.date, format='%Y-%m-%d'),
334 334
             'city': self.city,
335 335
             'location': self.location,
336 336
             'lat': self.lat,
@@ -350,7 +350,7 @@ class MemberActivityInfo(BaseModelMixin):
350 350
             'activity_id': self.activity_id,
351 351
             'title': self.title,
352 352
             'subtitle': self.subtitle,
353
-            'date': tc.local_string(self.date, format='%Y-%m-%d'),
353
+            'date': tc.local_string(utc_dt=self.date, format='%Y-%m-%d'),
354 354
             'city': self.city,
355 355
             'location': self.location,
356 356
             'lat': self.lat,

+ 12 - 8
page/sale_views.py

@@ -2,6 +2,10 @@
2 2
 
3 3
 from __future__ import division
4 4
 
5
+import os
6
+import string
7
+import sys
8
+
5 9
 from django.conf import settings
6 10
 from django.db import transaction
7 11
 from django_logit import logit
@@ -10,16 +14,14 @@ from paginator import pagination
10 14
 from TimeConvert import TimeConvert as tc
11 15
 
12 16
 from account.models import UserInfo
17
+from coupon.models import UserCouponInfo
13 18
 from integral.models import SaleclerkIntegralIncomeExpensesInfo, SaleclerkSubmitLogInfo
14 19
 from logs.models import MchInfoEncryptLogInfo
15
-from coupon.models import UserCouponInfo
16 20
 from mch.models import BrandInfo, ConsumeInfoSubmitLogInfo, DistributorInfo, ModelInfo, SaleclerkInfo
17 21
 from statistic.models import (DistributorSaleStatisticInfo, ModelSaleStatisticInfo, ProvinceSaleStatisticInfo,
18 22
                               SaleclerkSaleStatisticInfo, SaleStatisticInfo)
19
-from utils.error.errno_utils import (ProductBrandStatusCode, ProductDistributorStatusCode, ProductMachineStatusCode,
20
-                                     ProductModelStatusCode, SaleclerkStatusCode, CouponStatusCode)
21
-import os,sys,string
22
-
23
+from utils.error.errno_utils import (CouponStatusCode, ProductBrandStatusCode, ProductDistributorStatusCode,
24
+                                     ProductMachineStatusCode, ProductModelStatusCode, SaleclerkStatusCode)
23 25
 
24 26
 
25 27
 @logit
@@ -99,7 +101,7 @@ def clerk_sale_submit_api(request):
99 101
     # 是否被消费者扫过
100 102
     has_scan = ConsumeInfoSubmitLogInfo.objects.filter(model_id=model.model_id, serialNo=serialNo).exists()
101 103
 
102
-    #是否是新二维码,即统览码2
104
+    # 是否是新二维码,即统览码2
103 105
     if not code_version:
104 106
         code_version = 1
105 107
         code = filter(lambda ch: ch in '0123456789', serialNo)
@@ -458,6 +460,7 @@ def clerk_query_coupon(request):
458 460
         'user_coupon': user_coupon.data
459 461
     })
460 462
 
463
+
461 464
 @logit
462 465
 def clerk_writeoff_coupon(request):
463 466
     brandID = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_PK)
@@ -490,7 +493,7 @@ def clerk_writeoff_coupon(request):
490 493
     try:
491 494
         user_coupon = UserCouponInfo.objects.get(user_coupon_id=user_coupon_id)
492 495
         if user_coupon.has_used:
493
-            return response(CouponStatusCode.COUPON_HAS_USED) 
496
+            return response(CouponStatusCode.COUPON_HAS_USED)
494 497
         elif user_coupon.is_coupon_admin_writeoff:
495 498
             return response(CouponStatusCode.COUPON_PERMISSION_DENIED)
496 499
         elif not user_coupon.has_expired:
@@ -502,12 +505,13 @@ def clerk_writeoff_coupon(request):
502 505
             user_coupon.used_at = tc.utc_datetime()
503 506
             user_coupon.save()
504 507
         else:
505
-          return response(CouponStatusCode.COUPON_EXPIRED)
508
+            return response(CouponStatusCode.COUPON_EXPIRED)
506 509
     except UserCouponInfo.DoesNotExist:
507 510
         return response(CouponStatusCode.COUPON_NOT_FOUND)
508 511
 
509 512
     return response(200, 'Write Off Coupon Success', u'劵核销成功')
510 513
 
514
+
511 515
 @logit
512 516
 def clerk_checkout_serialNo_api(request):
513 517
     brandID = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_PK)

+ 7 - 7
pre/views.py

@@ -128,7 +128,7 @@ def pre_new_models(fpath='./pre/static/models_20180816.xls'):
128 128
     nrows = sheet.nrows
129 129
     for idx in range(1, nrows):
130 130
         rvals = sheet.row_values(idx)
131
-        print rvals
131
+        print(rvals)
132 132
 
133 133
         jancode = strip(rvals[0])
134 134
         if not jancode:
@@ -159,18 +159,18 @@ def pre_adaptive_cameras(fpath=u'./pre/static/腾龙镜头适用机型V1.xlsx'):
159 159
     for sheet in sheets:
160 160
         model_name = sheet.name
161 161
         model_full_name = sheet.row_values(2)[0]
162
-        print model_name, model_full_name
162
+        print(model_name, model_full_name)
163 163
         nrows = sheet.nrows
164 164
         for idx in range(4, nrows):
165 165
             rvals = sheet.row_values(idx)
166
-            print rvals
166
+            print(rvals)
167 167
             for val in rvals:
168 168
                 val = strip(val)
169 169
                 if not val:
170 170
                     continue
171 171
                 if u'卡口' in val:
172 172
                     continue
173
-                print val
173
+                print(val)
174 174
                 ModelCameraBodyInfo.objects.get_or_create(
175 175
                     brand_id=settings.KODO_DEFAULT_BRAND_ID,
176 176
                     brand_name=settings.KODO_DEFAULT_BRAND_NAME,
@@ -249,7 +249,7 @@ def refreshs():
249 249
     logs = ConsumeInfoSubmitLogInfo.objects.filter(verifyResult=1, dupload=False, test_user=False)
250 250
 
251 251
     for log in logs:
252
-        ymd = tc.local_string(tc.to_local_datetime(log.created_at), format='%Y%m%d')
252
+        ymd = tc.local_string(utc_dt=log.created_at, format='%Y%m%d')
253 253
 
254 254
         try:
255 255
             mdl = ModelInfo.objects.get(model_id=log.model_id)
@@ -329,7 +329,7 @@ def refreshs():
329 329
                 'lat': log.lat,
330 330
                 'lon': log.lon,
331 331
                 'phone': log.phone,
332
-                'ymd': tc.local_string(tc.to_local_datetime(log.created_at), format='%Y%m%d'),
332
+                'ymd': tc.local_string(utc_dt=log.created_at, format='%Y%m%d'),
333 333
                 'model_id': log.model_id,
334 334
                 'serialNo': log.serialNo
335 335
             })
@@ -345,7 +345,7 @@ def refreshs2():
345 345
     logs = SaleclerkSubmitLogInfo.objects.filter(dupload=False, test_user=False, test_sn=False, status=True)
346 346
 
347 347
     for log in logs:
348
-        ymd = tc.local_string(tc.to_local_datetime(log.created_at), format='%Y%m%d')
348
+        ymd = tc.local_string(utc_dt=log.created_at, format='%Y%m%d')
349 349
 
350 350
         try:
351 351
             brand = BrandInfo.objects.get(pk=log.brand_pk)

+ 2 - 2
requirements.txt

@@ -1,4 +1,4 @@
1
-CodeConvert==2.0.5
1
+CodeConvert==3.0.2
2 2
 Pillow==5.0.0
3 3
 StatusCode==1.0.0
4 4
 TimeConvert==1.5.1
@@ -7,7 +7,7 @@ isoweek==1.3.3
7 7
 jsonfield==2.0.2
8 8
 mock==2.0.0
9 9
 monetary==1.0.3
10
-mysqlclient==1.4.5
10
+mysqlclient==1.4.6
11 11
 pysnippets==1.1.2
12 12
 qiniu==7.2.6
13 13
 requests==2.21.0

+ 1 - 1
requirements_deploy.txt

@@ -1,3 +1,3 @@
1 1
 ipdb==0.11
2 2
 ipython==5.8.0
3
-uwsgi==2.0.17
3
+uwsgi==2.0.18

+ 2 - 2
requirements_dj.txt

@@ -1,9 +1,9 @@
1
-Django==1.11.26
1
+Django==1.11.29
2 2
 django-admin==2.0.1
3 3
 django-cors-headers==3.0.2
4 4
 django-curtail-uuid==1.0.4
5 5
 django-daterange-filter==1.3.0
6
-django-detect==1.0.17
6
+django-detect==1.0.18
7 7
 django-file-md5==1.0.3
8 8
 django-file-upload==1.1.1
9 9
 django-ip==1.0.2

+ 1 - 1
requirements_pywe.txt

@@ -8,7 +8,7 @@ pywe-custom-message==1.0.1
8 8
 pywe-miniapp==1.1.5
9 9
 pywe-oauth==1.1.1
10 10
 pywe-pay==1.0.13
11
-pywe-pay-notify==1.0.4
11
+pywe-pay-notify==1.0.5
12 12
 pywe-response==1.0.1
13 13
 pywe-sign==1.1.0
14 14
 pywe-wxa-cv==1.0.0

+ 2 - 2
shells/views.py

@@ -3,8 +3,8 @@
3 3
 from django.conf import settings
4 4
 from django_redis_connector import connector
5 5
 from pywe_storage import RedisStorage
6
-from pywe_user import get_all_users
7 6
 
7
+from pywe_user import get_all_users
8 8
 from utils.redis.rkeys import SUBSCRIBE_USERINFO_LIST
9 9
 
10 10
 
@@ -15,7 +15,7 @@ WECHAT = settings.WECHAT
15 15
 
16 16
 
17 17
 def fetch_users_func(authorizer_appid, infos):
18
-    print authorizer_appid, infos
18
+    print(authorizer_appid, infos)
19 19
     openids = infos.get('data', {}).get('openid', [])
20 20
     for openid in openids:
21 21
         r1.rpushjson(SUBSCRIBE_USERINFO_LIST % authorizer_appid, {

+ 1 - 0
staff/tests.py

@@ -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.

+ 1 - 0
staff/views.py

@@ -3,4 +3,5 @@ from __future__ import unicode_literals
3 3
 
4 4
 from django.shortcuts import render
5 5
 
6
+
6 7
 # Create your views here.

+ 1 - 0
utils/error/errno_utils.py

@@ -256,6 +256,7 @@ class PermissionStatusCode(BaseStatusCode):
256 256
     """ 4099xx 权限相关错误码 """
257 257
     PERMISSION_DENIED = StatusCodeField(409900, 'Permission Denied', description=u'权限不足')
258 258
 
259
+
259 260
 class CouponStatusCode(BaseStatusCode):
260 261
     """ 4050xx 优惠劵相关错误码 """
261 262
     COUPON_NOT_FOUND = StatusCodeField(405001, 'Coupon Not Found', description=u'劵不存在')

+ 1 - 1
utils/redis/rbrief.py

@@ -9,7 +9,7 @@ from utils.redis.rkeys import TODAY_INCOME, TOTAL_INCOME, WEEK_INCOME, WEEK_SOLD
9 9
 
10 10
 def set_brief_info(uid, ptype, fee, dt=None):
11 11
     """ 更新简报信息 """
12
-    ymd, week = (tc.local_string(tc.to_local_datetime(dt), format='%Y%m%d'), Week.withdate(dt)) if dt else (tc.local_string(format='%Y%m%d'), Week.thisweek().isoformat())
12
+    ymd, week = (tc.local_string(utc_dt=dt, format='%Y%m%d'), Week.withdate(dt)) if dt else (tc.local_string(format='%Y%m%d'), Week.thisweek().isoformat())
13 13
 
14 14
     # 总收入
15 15
     r.incr(TOTAL_INCOME % (uid, ptype), fee)

+ 1 - 1
utils/zbar/zbar.py

@@ -41,7 +41,7 @@ def zbar(path):
41 41
 def test_zbar():
42 42
     # In[4]: test_zbar()
43 43
     # [u'189415']
44
-    print zbar(settings.TESTING_ZBAR)
44
+    print(zbar(settings.TESTING_ZBAR))
45 45
 
46 46
 
47 47
 if __name__ == '__main__':

+ 1 - 1
utils/zbar/zbar2.py

@@ -28,4 +28,4 @@ def zbar2(path):
28 28
 def test_zbar2():
29 29
     # In[5]: test_zbar()
30 30
     # [u'189415']
31
-    print zbar2(settings.TESTING_ZBAR)
31
+    print(zbar2(settings.TESTING_ZBAR))

adminSystem - Gogs: Go Git Service

Geen omschrijving

LICENSE 1.1KB

    The MIT License (MIT) Copyright (c) 2016-2017, Jon Schlinkert Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.