td> 5
+from django.contrib.auth.hashers import make_password
6
+from django_admin import DeleteModelAdmin, ReadOnlyModelAdmin
7 7
 from pysnippets.strsnippets import strip
8 8
 
9 9
 from mch.models import (BrandInfo, ConsumeInfoSubmitLogInfo, DistributorInfo, LatestAppInfo, ModelImageInfo, ModelInfo,

+ 3 - 3
mch/migrations/0002_auto_20180104_0414.py

@@ -3,7 +3,7 @@
3 3
 from __future__ import unicode_literals
4 4
 
5 5
 from django.db import migrations, models
6
-import models_ext.fileext
6
+import django_models_ext.fileext
7 7
 
8 8
 
9 9
 class Migration(migrations.Migration):
@@ -21,7 +21,7 @@ class Migration(migrations.Migration):
21 21
                 ('created_at', models.DateTimeField(auto_now_add=True, help_text='Create Time', verbose_name='created_at')),
22 22
                 ('updated_at', models.DateTimeField(auto_now=True, help_text='Update Time', verbose_name='updated_at')),
23 23
                 ('model_id', models.CharField(blank=True, db_index=True, help_text='\u578b\u53f7\u552f\u4e00\u6807\u8bc6', max_length=32, null=True, verbose_name='model_id')),
24
-                ('image', models.ImageField(blank=True, help_text='\u56fe\u7247', null=True, upload_to=models_ext.fileext.upload_path, verbose_name='image')),
24
+                ('image', models.ImageField(blank=True, help_text='\u56fe\u7247', null=True, upload_to=django_models_ext.fileext.upload_path, verbose_name='image')),
25 25
                 ('url', models.TextField(blank=True, help_text='\u94fe\u63a5', max_length=255, null=True, verbose_name='url')),
26 26
                 ('position', models.IntegerField(default=1, help_text='\u6392\u5e8f', verbose_name='position')),
27 27
             ],
@@ -33,7 +33,7 @@ class Migration(migrations.Migration):
33 33
         migrations.AddField(
34 34
             model_name='brandinfo',
35 35
             name='brand_logo',
36
-            field=models.ImageField(blank=True, help_text='\u54c1\u724c\u5546\u6807', null=True, upload_to=models_ext.fileext.upload_path, verbose_name='brand_logo'),
36
+            field=models.ImageField(blank=True, help_text='\u54c1\u724c\u5546\u6807', null=True, upload_to=django_models_ext.fileext.upload_path, verbose_name='brand_logo'),
37 37
         ),
38 38
         migrations.AddField(
39 39
             model_name='distributorinfo',

+ 2 - 2
mch/migrations/0004_latestappinfo.py

@@ -3,7 +3,7 @@
3 3
 from __future__ import unicode_literals
4 4
 
5 5
 from django.db import migrations, models
6
-import models_ext.fileext
6
+import django_models_ext.fileext
7 7
 
8 8
 
9 9
 class Migration(migrations.Migration):
@@ -22,7 +22,7 @@ class Migration(migrations.Migration):
22 22
                 ('updated_at', models.DateTimeField(auto_now=True, help_text='Update Time', verbose_name='updated_at')),
23 23
                 ('latest_adr_version_code', models.IntegerField(default=0, help_text='\u6700\u65b0\u5b89\u5353\u7248\u672c\u53f7', verbose_name='latest_adr_version_code')),
24 24
                 ('latest_adr_version_name', models.CharField(blank=True, help_text='\u6700\u65b0\u5b89\u5353\u7248\u672c\u540d', max_length=16, null=True, verbose_name='latest_adr_version_name')),
25
-                ('latest_adr_app', models.FileField(blank=True, help_text='\u6700\u65b0\u7248\u5b89\u5353 APP', null=True, upload_to=models_ext.fileext.upload_path, verbose_name='latest_adr_app')),
25
+                ('latest_adr_app', models.FileField(blank=True, help_text='\u6700\u65b0\u7248\u5b89\u5353 APP', null=True, upload_to=django_models_ext.fileext.upload_path, verbose_name='latest_adr_app')),
26 26
                 ('latest_adr_url', models.URLField(blank=True, help_text='\u6700\u65b0\u7248 APP \u94fe\u63a5', max_length=255, null=True, verbose_name='latest_adr_url')),
27 27
                 ('latest_ios_version_code', models.IntegerField(default=0, help_text='\u6700\u65b0 iOS \u7248\u672c\u53f7', verbose_name='latest_ios_version_code')),
28 28
                 ('latest_ios_version_name', models.CharField(blank=True, help_text='\u6700\u65b0 iOS \u7248\u672c\u540d', max_length=16, null=True, verbose_name='latest_ios_version_name')),

+ 1 - 1
mch/models.py

@@ -2,7 +2,7 @@
2 2
 
3 3
 from django.db import models
4 4
 from django.utils.translation import ugettext_lazy as _
5
-from models_ext import BaseModelMixin, upload_file_url, upload_path
5
+from django_models_ext import BaseModelMixin, upload_file_url, upload_path
6 6
 from shortuuidfield import ShortUUIDField
7 7
 
8 8
 

+ 1 - 29
message/admin.py

@@ -1,32 +1,4 @@
1
-# -*- coding: utf-8 -*-
2
-
3
-from djadmin import ReadOnlyModelAdmin
4 1
 from django.contrib import admin
5 2
 
6
-from message.models import SystemMessageDeleteInfo, SystemMessageInfo, SystemMessageReadInfo, UserMessageInfo
7
-
8
-
9
-class UserMessageInfoAdmin(ReadOnlyModelAdmin, admin.ModelAdmin):
10
-    list_display = ('from_uid', 'from_nickname', 'to_uid', 'group_id', 'photo_id', 'msg_type', 'read', 'status', 'created_at', 'updated_at')
11
-    list_filter = ('msg_type', 'read', 'status')
12
-
13
-
14
-class SystemMessageInfoAdmin(admin.ModelAdmin):
15
-    list_display = ('title', 'content', 'url', 'src', 'status', 'created_at', 'updated_at')
16
-    list_filter = ('src', 'status')
17
-
18
-
19
-class SystemMessageReadInfoAdmin(ReadOnlyModelAdmin, admin.ModelAdmin):
20
-    list_display = ('user_id', 'msg_id', 'status', 'created_at', 'updated_at')
21
-    list_filter = ('status', )
22
-
23
-
24
-class SystemMessageDeleteInfoAdmin(ReadOnlyModelAdmin, admin.ModelAdmin):
25
-    list_display = ('user_id', 'msg_id', 'status', 'created_at', 'updated_at')
26
-    list_filter = ('status', )
27
-
28 3
 
29
-# admin.site.register(UserMessageInfo, UserMessageInfoAdmin)
30
-# admin.site.register(SystemMessageInfo, SystemMessageInfoAdmin)
31
-# admin.site.register(SystemMessageReadInfo, SystemMessageReadInfoAdmin)
32
-# admin.site.register(SystemMessageDeleteInfo, SystemMessageDeleteInfoAdmin)
4
+# Register your models here.

+ 1 - 1
message/models.py

@@ -3,7 +3,7 @@
3 3
 from django.conf import settings
4 4
 from django.db import models
5 5
 from django.utils.translation import ugettext_lazy as _
6
-from models_ext import BaseModelMixin
6
+from django_models_ext import BaseModelMixin
7 7
 from TimeConvert import TimeConvert as tc
8 8
 
9 9
 from group.models import GroupPhotoInfo

+ 1 - 1
message/views.py

@@ -1,8 +1,8 @@
1 1
 # -*- coding: utf-8 -*-
2 2
 
3 3
 from django.conf import settings
4
+from django_logit import logit
4 5
 from django_response import response
5
-from logit import logit
6 6
 from paginator import pagination
7 7
 
8 8
 from account.models import UserInfo

+ 1 - 1
miniapp/views.py

@@ -3,9 +3,9 @@
3 3
 from django.conf import settings
4 4
 from django.db import transaction
5 5
 from django_curtail_uuid import CurtailUUID
6
+from django_logit import logit
6 7
 from django_response import response
7 8
 from ipaddr import client_ip
8
-from logit import logit
9 9
 from pywe_membercard import get_miniapp_extraData
10 10
 from pywe_miniapp import get_userinfo
11 11
 from pywe_storage import RedisStorage

+ 1 - 175
operation/admin.py

@@ -1,178 +1,4 @@
1
-# -*- coding: utf-8 -*-
2
-
3
-from djadmin import AdvancedExportExcelModelAdmin, ReadOnlyModelAdmin
4
-from django.conf import settings
5 1
 from django.contrib import admin
6
-from django.template.loader import render_to_string
7
-from pysnippets.strsnippets import strip
8
-
9
-from operation.models import (APPSettingsInfo, BoxProgramVersionInfo, FeedbackInfo, GuestEntranceControlInfo,
10
-                              LatestAppInfo, PatchInfo, SplashInfo)
11
-from utils.disk_utils import write_to_disk
12
-from utils.redis.rapp import set_latest_app
13
-from utils.redis.rguest import delete_guest_entrance_control, set_guest_entrance_control
14
-from utils.redis.roperation.rbox_program_version import set_box_program_version
15
-from utils.redis.rpatch import del_app_patch_info, set_app_patch_info
16
-from utils.redis.rsettings import del_app_settings_info, set_app_settings_info
17
-
18
-
19
-class LatestAppInfoAdmin(admin.ModelAdmin):
20
-    list_display = ('latest_adr_version_code', 'latest_adr_version_name', 'latest_adr_app', 'latest_adr_url', 'latest_ios_version_code', 'latest_ios_version_name', 'latest_ios_url', 'src', 'status', 'created_at', 'updated_at')
21
-    list_filter = ('src', 'status')
22
-    readonly_fields = ('status', )
23
-
24
-    def save_model(self, request, obj, form, change):
25
-        if not obj.pk and LatestAppInfo.objects.filter(src=obj.src, status=True).exists():
26
-            return
27
-        obj.latest_adr_version_name = strip(obj.latest_adr_version_name)
28
-        obj.latest_adr_app = strip(obj.latest_adr_app)
29
-        obj.latest_adr_url = strip(obj.latest_adr_url)
30
-        obj.latest_ios_version_name = strip(obj.latest_ios_version_name)
31
-        obj.latest_ios_url = strip(obj.latest_ios_url)
32
-        obj.save()
33
-
34
-        if obj.src == LatestAppInfo.PAIAI_USER:
35
-            # 更新安卓下载页面
36
-            write_to_disk(render_to_string('page/download.tmpl.html', {
37
-                'src': obj.src,
38
-                'version': obj.latest_adr_version_name,
39
-            }), settings.PAI2_USER_DOWNLOAD_ADR_PAGE_PATH)
40
-
41
-            # 更新 iOS 下载页面
42
-            write_to_disk(render_to_string('page/download.tmpl.html', {
43
-                'src': obj.src,
44
-                'version': obj.latest_ios_version_name,
45
-            }), settings.PAI2_USER_DOWNLOAD_IOS_PAGE_PATH)
46
-
47
-        elif obj.src == LatestAppInfo.PAIAI_LENSMAN:
48
-            # 更新安卓下载页面
49
-            write_to_disk(render_to_string('page/download.tmpl.html', {
50
-                'src': obj.src,
51
-                'version': obj.latest_adr_version_name,
52
-            }), settings.PAI2_LENSMAN_DOWNLOAD_ADR_PAGE_PATH)
53
-
54
-            # 更新 iOS 下载页面
55
-            write_to_disk(render_to_string('page/download.tmpl.html', {
56
-                'src': obj.src,
57
-                'version': obj.latest_ios_version_name,
58
-            }), settings.PAI2_LENSMAN_DOWNLOAD_IOS_PAGE_PATH)
59
-
60
-        elif obj.src == LatestAppInfo.PAIAI_TOURGUIDE:
61
-            # 更新安卓下载页面
62
-            write_to_disk(render_to_string('page/download.tmpl.html', {
63
-                'src': obj.src,
64
-                'version': obj.latest_adr_version_name,
65
-            }), settings.PAI2_TOURGUIDE_DOWNLOAD_ADR_PAGE_PATH)
66
-
67
-            # 更新 iOS 下载页面
68
-            write_to_disk(render_to_string('page/download.tmpl.html', {
69
-                'src': obj.src,
70
-                'version': obj.latest_ios_version_name,
71
-            }), settings.PAI2_TOURGUIDE_DOWNLOAD_IOS_PAGE_PATH)
72
-
73
-        # 设置最新 APP 信息
74
-        set_latest_app(obj.src)
75
-
76
-    def delete_model(self, request, obj):
77
-        obj.delete()
78
-
79
-        # 设置最新 APP 信息
80
-        set_latest_app(obj.src)
81
-
82
-
83
-class PatchInfoAdmin(admin.ModelAdmin):
84
-    list_display = ('platform', 'version', 'patch', 'src', 'status', 'created_at', 'updated_at')
85
-    list_filter = ('platform', 'src', 'status')
86
-
87
-    def save_model(self, request, obj, form, change):
88
-        obj.version = strip(obj.version)
89
-        obj.save()
90
-
91
-        # 设置 APP 补丁信息
92
-        set_app_patch_info(obj)
93
-
94
-    def delete_model(self, request, obj):
95
-        obj.delete()
96
-
97
-        # 删除 APP 补丁信息
98
-        del_app_patch_info(obj)
99
-
100
-
101
-class APPSettingsInfoAdmin(admin.ModelAdmin):
102
-    list_display = ('platform', 'channel', 'version', 'online', 'status', 'created_at', 'updated_at')
103
-    list_filter = ('platform', 'online', 'status')
104
-
105
-    def save_model(self, request, obj, form, change):
106
-        obj.channel = strip(obj.channel)
107
-        obj.version = strip(obj.version)
108
-        obj.save()
109
-
110
-        # 设置 APP 设置信息
111
-        set_app_settings_info(obj)
112
-
113
-    def delete_model(self, request, obj):
114
-        obj.delete()
115
-
116
-        # 删除 APP 设置信息
117
-        del_app_settings_info(obj)
118
-
119
-
120
-class SplashInfoAdmin(admin.ModelAdmin):
121
-    list_display = ('splash_image', 'spalash_image_airtime', 'spalash_image_deadline', 'src', 'status', 'created_at', 'updated_at')
122
-    list_filter = ('src', 'status')
123
-
124
-
125
-class FeedbackInfoAdmin(AdvancedExportExcelModelAdmin, ReadOnlyModelAdmin, admin.ModelAdmin):
126
-    list_display = ('user_id', 'feedback', 'src', 'status', 'created_at', 'updated_at')
127
-    list_filter = ('src', 'status')
128
-
129
-
130
-class GuestEntranceControlInfoAdmin(admin.ModelAdmin):
131
-    list_display = ('platform', 'min_adr', 'max_adr', 'min_ios', 'max_ios', 'src', 'status', 'created_at', 'updated_at')
132
-    list_filter = ('src', 'status')
133
-
134
-    def save_model(self, request, obj, form, change):
135
-        obj.min_adr = strip(obj.min_adr)
136
-        obj.max_adr = strip(obj.max_adr)
137
-        obj.min_ios = strip(obj.min_ios)
138
-        obj.max_ios = strip(obj.max_ios)
139
-        obj.save()
140
-
141
-        # 设置游客入口控制
142
-        set_guest_entrance_control(obj)
143
-
144
-    def delete_model(self, request, obj):
145
-        obj.delete()
146
-
147
-        # 删除游客入口控制
148
-        delete_guest_entrance_control()
149
-
150
-
151
-class BoxProgramVersionInfoAdmin(admin.ModelAdmin):
152
-    list_display = ('srv_version_code', 'srv_version_name', 'srv_sha1', 'proc_version_code', 'proc_version_name', 'proc_sha1', 'status', 'created_at', 'updated_at')
153
-    list_filter = ('status', )
154
-
155
-    def save_model(self, request, obj, form, change):
156
-        obj.srv_version_name = strip(obj.srv_version_name)
157
-        obj.srv_sha1 = strip(obj.srv_sha1)
158
-        obj.proc_version_name = strip(obj.proc_version_name)
159
-        obj.proc_sha1 = strip(obj.proc_sha1)
160
-        obj.save()
161
-
162
-        # 设置 BOX 程序版本信息
163
-        set_box_program_version()
164
-
165
-    def delete_model(self, request, obj):
166
-        obj.delete()
167
-
168
-        # 设置 BOX 程序版本信息
169
-        set_box_program_version()
170 2
 
171 3
 
172
-# admin.site.register(LatestAppInfo, LatestAppInfoAdmin)
173
-# admin.site.register(PatchInfo, PatchInfoAdmin)
174
-# admin.site.register(APPSettingsInfo, APPSettingsInfoAdmin)
175
-# admin.site.register(SplashInfo, SplashInfoAdmin)
176
-# admin.site.register(FeedbackInfo, FeedbackInfoAdmin)
177
-# admin.site.register(GuestEntranceControlInfo, GuestEntranceControlInfoAdmin)
178
-# admin.site.register(BoxProgramVersionInfo, BoxProgramVersionInfoAdmin)
4
+# Register your models here.

+ 1 - 1
operation/models.py

@@ -2,7 +2,7 @@
2 2
 
3 3
 from django.db import models
4 4
 from django.utils.translation import ugettext_lazy as _
5
-from models_ext import BaseModelMixin, upload_file_url, upload_path
5
+from django_models_ext import BaseModelMixin, upload_file_url, upload_path
6 6
 
7 7
 from pai2.basemodels import PaiaiSrcMixin, PlatformMixin, VersionMixin
8 8
 

+ 1 - 1
operation/views.py

@@ -4,8 +4,8 @@ import os
4 4
 
5 5
 from django.conf import settings
6 6
 from django.shortcuts import redirect
7
+from django_logit import logit
7 8
 from django_response import response
8
-from logit import logit
9 9
 
10 10
 from account.models import UserInfo
11 11
 from operation.models import FeedbackInfo, GuestEntranceControlInfo, LatestAppInfo, SplashInfo

+ 1 - 1
page/oauth_views.py

@@ -3,9 +3,9 @@
3 3
 from django.conf import settings
4 4
 from django.db import transaction
5 5
 from django.shortcuts import render
6
+from django_logit import logit
6 7
 from django_response import response
7 8
 from json_render import json_render
8
-from logit import logit
9 9
 
10 10
 from account.models import FranchiserInfo, LensmanInfo, SaleclerkInfo, TourGuideInfo
11 11
 from utils.error.errno_utils import FranchiserStatusCode, SaleclerkStatusCode

+ 1 - 1
page/sale_views.py

@@ -5,8 +5,8 @@ from __future__ import division
5 5
 from django.conf import settings
6 6
 from django.db import transaction
7 7
 from django.shortcuts import render
8
+from django_logit import logit
8 9
 from django_response import response
9
-from logit import logit
10 10
 
11 11
 from account.models import SaleclerkInfo
12 12
 from integral.models import SaleclerkIntegralIncomeExpensesInfo, SaleclerkSubmitLogInfo

+ 2 - 2
pai2/settings.py

@@ -44,10 +44,10 @@ INSTALLED_APPS = (
44 44
     'django.contrib.messages',
45 45
     'django.contrib.staticfiles',
46 46
     'django_file_upload',
47
-    'django_rlog',
48 47
     'django_uniapi',
48
+    'django_admin',
49
+    'django_rlog',
49 50
     'django_we',
50
-    'djadmin',
51 51
     'api',
52 52
     'account',
53 53
     'box',

+ 1 - 13
pay/admin.py

@@ -1,16 +1,4 @@
1
-# -*- coding: utf-8 -*-
2
-
3
-from djadmin import ReadOnlyModelAdmin
4 1
 from django.contrib import admin
5 2
 
6
-from pay.models import OrderInfo
7
-
8
-
9
-class OrderInfoAdmin(ReadOnlyModelAdmin, admin.ModelAdmin):
10
-    list_display = ('order_id', 'photo_type', 'photo_status', 'from_uid', 'to_uid', 'pay_status', 'paid_at', 'reback_status', 'reback_at', 'status', 'created_at', 'updated_at')
11
-    list_filter = ('photo_type', 'photo_status', 'pay_status', 'reback_status', 'status')
12
-    readonly_fields = ('order_id', 'prepay_id', 'transaction_id', 'unifiedorder_result', 'notify_msg')
13
-    search_fields = ('prepay_id', 'transaction_id', 'group_id', 'session_id', 'photo_id', 'lensman_photo_id', 'from_uid', 'to_uid')
14
-
15 3
 
16
-# admin.site.register(OrderInfo, OrderInfoAdmin)
4
+# Register your models here.

+ 1 - 1
pay/models.py

@@ -2,7 +2,7 @@
2 2
 
3 3
 from django.db import models
4 4
 from django.utils.translation import ugettext_lazy as _
5
-from models_ext import BaseModelMixin
5
+from django_models_ext import BaseModelMixin
6 6
 from shortuuidfield import ShortUUIDField
7 7
 from TimeConvert import TimeConvert as tc
8 8
 

+ 1 - 1
pay/views.py

@@ -3,8 +3,8 @@
3 3
 from django.conf import settings
4 4
 from django.db import transaction
5 5
 from django.shortcuts import HttpResponse
6
+from django_logit import logit
6 7
 from django_response import response
7
-from logit import logit
8 8
 from paginator import pagination
9 9
 from pywe_exception import WeChatPayException
10 10
 from pywe_pay import WeChatPay

+ 1 - 1
photo/models.py

@@ -2,7 +2,7 @@
2 2
 
3 3
 from django.db import models
4 4
 from django.utils.translation import ugettext_lazy as _
5
-from models_ext import BaseModelMixin
5
+from django_models_ext import BaseModelMixin
6 6
 
7 7
 from utils.qiniucdn import qiniu_file_url
8 8
 

+ 1 - 1
photo/views.py

@@ -3,9 +3,9 @@
3 3
 from django.db import transaction
4 4
 from django.shortcuts import render
5 5
 from django_curtail_uuid import CurtailUUID
6
+from django_logit import logit
6 7
 from django_response import response
7 8
 from ipaddr import client_ip
8
-from logit import logit
9 9
 from rest_framework import viewsets
10 10
 from TimeConvert import TimeConvert as tc
11 11
 

+ 1 - 1
product/models.py

@@ -2,7 +2,7 @@
2 2
 
3 3
 from django.db import models
4 4
 from django.utils.translation import ugettext_lazy as _
5
-from models_ext import BaseModelMixin, SexModelMixin
5
+from django_models_ext import BaseModelMixin, SexModelMixin
6 6
 from shortuuidfield import ShortUUIDField
7 7
 
8 8
 

+ 7 - 8
requirements.txt

@@ -5,26 +5,26 @@ Pillow==5.0.0
5 5
 StatusCode==1.0.0
6 6
 TimeConvert==1.4.3
7 7
 cryptography==1.5.2
8
-django-admin==1.1.1
8
+django-admin==1.2.0
9 9
 django-curtail-uuid==1.0.4
10 10
 django-detect==1.0.5
11
-django-file-md5==1.0.1
11
+django-file-md5==1.0.2
12 12
 django-file-upload==1.0.0
13 13
 django-ip==1.0.2
14 14
 django-json-render==1.0.0
15 15
 django-json-response==1.1.5
16
-django-logit==1.0.8
16
+django-logit==1.1.2
17 17
 django-mobi==0.1.7
18
-django-models-ext==1.1.0
18
+django-models-ext==1.1.1
19 19
 django-multidomain==1.1.4
20 20
 django-paginator2==1.0.3
21 21
 django-redis-connector==1.0.1
22
-django-response==1.0.2
22
+django-response==1.1.1
23 23
 django-rlog==1.0.7
24 24
 django-shortuuidfield==0.1.3
25 25
 django-six==1.0.4
26 26
 django-uniapi==1.0.1
27
-django-we==1.1.6
27
+django-we==1.2.1
28 28
 djangorestframework==3.7.7
29 29
 furl==1.0.1
30 30
 hiredis==0.2.0
@@ -37,7 +37,7 @@ pywe-membercard==1.0.0
37 37
 pywe-miniapp==1.0.2
38 38
 pywe-oauth==1.0.6
39 39
 pywe-pay==1.0.11
40
-pywe-pay-notify==1.0.1
40
+pywe-pay-notify==1.0.4
41 41
 pywe-response==1.0.1
42 42
 pywe-sign==1.0.7
43 43
 pywe-xml==1.0.0
@@ -48,5 +48,4 @@ requests==2.18.4
48 48
 rlog==0.3
49 49
 rsa==3.4.2
50 50
 shortuuid==0.5.0
51
-uWSGI==2.0.15
52 51
 versions==0.10.0

+ 1 - 1
server/server_views.py

@@ -1,7 +1,7 @@
1 1
 # -*- coding: utf-8 -*-
2 2
 
3
+from django_logit import logit
3 4
 from django_response import response
4
-from logit import logit
5 5
 from TimeConvert import TimeConvert as tc
6 6
 
7 7
 

+ 0 - 1
utils/redis/rlock.py

@@ -1,7 +1,6 @@
1 1
 # -*- coding: utf-8 -*-
2 2
 
3 3
 from filemd5 import calculate_md5
4
-
5 4
 from utils.redis.connect import r
6 5
 
7 6
 

+ 1 - 1
utils/storage_qiniu_utils.py

@@ -6,8 +6,8 @@ import shortuuid
6 6
 from django.conf import settings
7 7
 from django.core.files.storage import default_storage
8 8
 from django.db import transaction
9
-from filemd5 import calculate_md5
10 9
 
10
+from filemd5 import calculate_md5
11 11
 from photo.models import PhotoUUIDInfo
12 12
 from utils.qiniucdn import upload_file_path
13 13
 from utils.thumbnail_utils import make_thumbnail

+ 1 - 1
utils/storage_utils.py

@@ -6,8 +6,8 @@ import shortuuid
6 6
 from django.conf import settings
7 7
 from django.core.files.storage import default_storage
8 8
 from django.db import transaction
9
-from filemd5 import calculate_md5
10 9
 
10
+from filemd5 import calculate_md5
11 11
 from photo.models import PhotoUUIDInfo
12 12
 from utils.thumbnail_utils import make_thumbnail
13 13
 from utils.watermark_utils import watermark_wrap

adminSystem - Gogs: Go Git Service

暂无描述

FFIB: 5f023c677f update 3 年之前
build b222fe7640 adminStystem 2.0 6 年之前
config 6434df2401 init 7 年之前
src 237a29ab89 本地备份 3 年之前
web_static 6434df2401 init 7 年之前
.editorconfig 6434df2401 init 7 年之前
.eslintignore 6434df2401 init 7 年之前
.eslintrc.js b222fe7640 adminStystem 2.0 6 年之前
.gitignore 6434df2401 init 7 年之前
.prettierrc b222fe7640 adminStystem 2.0 6 年之前
.stylelintignore b222fe7640 adminStystem 2.0 6 年之前
.stylelintrc.json b222fe7640 adminStystem 2.0 6 年之前
.yarnclean dd250132a4 r 6 年之前
README.md 6434df2401 init 7 年之前
index.html 6434df2401 init 7 年之前
package-lock.json dd250132a4 r 6 年之前
package.json dd250132a4 r 6 年之前
postcss.config.js b222fe7640 adminStystem 2.0 6 年之前
yarn.lock dd250132a4 r 6 年之前

README.md

admin system

data visualization

Build Setup

# install dependencies
npm install

# serve with hot reload at localhost:8080
npm run dev

# build for production with minification
npm run build

# build for production and view the bundle analyzer report
npm run build --report

# run unit tests
npm run unit

# run e2e tests
npm run e2e

# run all tests
npm test

For a detailed explanation on how things work, check out the guide and docs for vue-loader.

Opt salesman_id/salesman_name · 53b8b2b0ec - Gogs: Go Git Service

Opt salesman_id/salesman_name

Kimi.Huang 6 jaren geleden
bovenliggende
commit
53b8b2b0ec
1 gewijzigde bestanden met toevoegingen van 1 en 1 verwijderingen
  1. 1 1
      statistic/views.py

+ 1 - 1
statistic/views.py

@@ -251,7 +251,7 @@ def ytj(brand_id):
251 251
         '-num'
252 252
     )[:20]
253 253
     clerks = SaleclerkInfo.objects.filter(brand_id=brand_id, status=True)
254
-    clerks = {clerk.clerk_id: {'distributor_id': clerk.distributor_id, 'distributor_name': clerk.distributor_name, 'clerk_name': clerk.clerk_name} for clerk in clerks}
254
+    clerks = {clerk.clerk_id: {'distributor_id': clerk.distributor_id, 'distributor_name': clerk.distributor_name, 'clerk_name': clerk.clerk_name, 'salesman_id': clerk.clerk_id, 'salesman_name': clerk.clerk_name} for clerk in clerks}
255 255
     salesmen = [dict(sm, **clerks.get(sm.get('clerk_id', ''), {})) for sm in salesmen]
256 256
 
257 257
     # [收费者维度] 统计周期内省份销量排行数据,请按顺序返回