@@ -4,6 +4,7 @@ from django.conf import settings |
||
4 | 4 |
from django.contrib import admin |
5 | 5 |
from django.contrib.auth.hashers import make_password |
6 | 6 |
from django_admin import DeleteModelAdmin, ReadOnlyModelAdmin |
7 |
+from django_models_ext import ProvinceShortModelMixin |
|
7 | 8 |
from pysnippets.strsnippets import strip |
8 | 9 |
|
9 | 10 |
from mch.models import (BrandInfo, ConsumeInfoSubmitLogInfo, DistributorInfo, LatestAppInfo, ModelImageInfo, ModelInfo, |
@@ -64,8 +65,9 @@ class ModelImageInfoAdmin(DeleteModelAdmin, admin.ModelAdmin): |
||
64 | 65 |
|
65 | 66 |
|
66 | 67 |
class DistributorInfoAdmin(DeleteModelAdmin, admin.ModelAdmin): |
67 |
- list_display = ('brand_id', 'brand_name', 'distributor_id', 'distributor_name', 'distributor_descr', 'position', 'status', 'created_at', 'updated_at') |
|
68 |
+ list_display = ('brand_id', 'brand_name', 'distributor_id', 'distributor_name', 'distributor_descr', 'distributor_province_code', 'distributor_province_name', 'position', 'status', 'created_at', 'updated_at') |
|
68 | 69 |
list_filter = ('brand_name', 'status') |
70 |
+ readonly_fields = ('distributor_province_code', ) |
|
69 | 71 |
|
70 | 72 |
def save_model(self, request, obj, form, change): |
71 | 73 |
obj.brand_id = strip(obj.brand_id) |
@@ -74,6 +76,8 @@ class DistributorInfoAdmin(DeleteModelAdmin, admin.ModelAdmin): |
||
74 | 76 |
except BrandInfo.DoesNotExist: |
75 | 77 |
obj.brand_name = '' |
76 | 78 |
|
79 |
+ obj.distributor_province_code = ProvinceShortModelMixin.PROVINCE_NAME_CODE_DICT.get(obj.distributor_province_name, '') |
|
80 |
+ |
|
77 | 81 |
obj.save() |
78 | 82 |
|
79 | 83 |
|
@@ -0,0 +1,25 @@ |
||
1 |
+# -*- coding: utf-8 -*- |
|
2 |
+# Generated by Django 1.11.11 on 2018-05-08 02:58 |
|
3 |
+from __future__ import unicode_literals |
|
4 |
+ |
|
5 |
+from django.db import migrations, models |
|
6 |
+ |
|
7 |
+ |
|
8 |
+class Migration(migrations.Migration): |
|
9 |
+ |
|
10 |
+ dependencies = [ |
|
11 |
+ ('mch', '0013_consumeinfosubmitloginfo_test_user'), |
|
12 |
+ ] |
|
13 |
+ |
|
14 |
+ operations = [ |
|
15 |
+ migrations.AddField( |
|
16 |
+ model_name='distributorinfo', |
|
17 |
+ name='distributor_province_code', |
|
18 |
+ field=models.CharField(blank=True, help_text='\u7ecf\u9500\u5546\u6240\u5728\u7701\u4efd\u7f16\u7801', max_length=6, null=True, verbose_name='distributor_province_code'), |
|
19 |
+ ), |
|
20 |
+ migrations.AddField( |
|
21 |
+ model_name='distributorinfo', |
|
22 |
+ name='distributor_province_name', |
|
23 |
+ field=models.CharField(blank=True, choices=[('\u5317\u4eac', '\u5317\u4eac'), ('\u5929\u6d25', '\u5929\u6d25'), ('\u6cb3\u5317', '\u6cb3\u5317'), ('\u5c71\u897f', '\u5c71\u897f'), ('\u5185\u8499\u53e4', '\u5185\u8499\u53e4'), ('\u8fbd\u5b81', '\u8fbd\u5b81'), ('\u5409\u6797', '\u5409\u6797'), ('\u9ed1\u9f99\u6c5f', '\u9ed1\u9f99\u6c5f'), ('\u4e0a\u6d77', '\u4e0a\u6d77'), ('\u6c5f\u82cf', '\u6c5f\u82cf'), ('\u6d59\u6c5f', '\u6d59\u6c5f'), ('\u5b89\u5fbd', '\u5b89\u5fbd'), ('\u798f\u5efa', '\u798f\u5efa'), ('\u6c5f\u897f', '\u6c5f\u897f'), ('\u5c71\u4e1c', '\u5c71\u4e1c'), ('\u6cb3\u5357', '\u6cb3\u5357'), ('\u6e56\u5317', '\u6e56\u5317'), ('\u6e56\u5357', '\u6e56\u5357'), ('\u5e7f\u4e1c', '\u5e7f\u4e1c'), ('\u5e7f\u897f', '\u5e7f\u897f'), ('\u6d77\u5357', '\u6d77\u5357'), ('\u91cd\u5e86', '\u91cd\u5e86'), ('\u56db\u5ddd', '\u56db\u5ddd'), ('\u8d35\u5dde', '\u8d35\u5dde'), ('\u4e91\u5357', '\u4e91\u5357'), ('\u897f\u85cf', '\u897f\u85cf'), ('\u9655\u897f', '\u9655\u897f'), ('\u7518\u8083', '\u7518\u8083'), ('\u9752\u6d77', '\u9752\u6d77'), ('\u5b81\u590f', '\u5b81\u590f'), ('\u65b0\u7586', '\u65b0\u7586'), ('\u53f0\u6e7e', '\u53f0\u6e7e'), ('\u9999\u6e2f', '\u9999\u6e2f'), ('\u6fb3\u95e8', '\u6fb3\u95e8')], default='\u5317\u4eac', help_text='\u7ecf\u9500\u5546\u6240\u5728\u7701\u4efd\u540d\u79f0', max_length=3, null=True, verbose_name='distributor_province_name'), |
|
24 |
+ ), |
|
25 |
+ ] |
@@ -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 django_models_ext import BaseModelMixin, upload_file_url, upload_path |
|
5 |
+from django_models_ext import BaseModelMixin, ProvinceShortModelMixin, upload_file_url, upload_path |
|
6 | 6 |
from shortuuidfield import ShortUUIDField |
7 | 7 |
|
8 | 8 |
|
@@ -150,6 +150,9 @@ class DistributorInfo(BaseModelMixin): |
||
150 | 150 |
distributor_name = models.CharField(_(u'distributor_name'), max_length=255, blank=True, null=True, help_text=u'经销商名称') |
151 | 151 |
distributor_descr = models.TextField(_(u'distributor_descr'), max_length=255, blank=True, null=True, help_text=u'经销商描述') |
152 | 152 |
|
153 |
+ distributor_province_code = models.CharField(_(u'distributor_province_code'), max_length=6, blank=True, null=True, help_text=u'经销商所在省份编码') |
|
154 |
+ distributor_province_name = models.CharField(_(u'distributor_province_name'), max_length=3, choices=ProvinceShortModelMixin.PROVINCE_NAME_TUPLE, default=ProvinceShortModelMixin.PROVINCE_DEFAULT_NAME, blank=True, null=True, help_text=u'经销商所在省份名称') |
|
155 |
+ |
|
153 | 156 |
position = models.IntegerField(_(u'position'), default=1, help_text=u'排序') |
154 | 157 |
|
155 | 158 |
class Meta: |
@@ -7,40 +7,40 @@ from statistic.models import DistributorSaleStatisticInfo, ModelSaleStatisticInf |
||
7 | 7 |
|
8 | 8 |
|
9 | 9 |
PROVINCE_LIST = { |
10 |
- "110000": "北京市", |
|
11 |
- "120000": "天津市", |
|
12 |
- "130000": "河北省", |
|
13 |
- "140000": "山西省", |
|
14 |
- "150000": "内蒙古自治区", |
|
15 |
- "210000": "辽宁省", |
|
16 |
- "220000": "吉林省", |
|
17 |
- "230000": "黑龙江省", |
|
18 |
- "310000": "上海市", |
|
19 |
- "320000": "江苏省", |
|
20 |
- "330000": "浙江省", |
|
21 |
- "340000": "安徽省", |
|
22 |
- "350000": "福建省", |
|
23 |
- "360000": "江西省", |
|
24 |
- "370000": "山东省", |
|
25 |
- "410000": "河南省", |
|
26 |
- "420000": "湖北省", |
|
27 |
- "430000": "湖南省", |
|
28 |
- "440000": "广东省", |
|
29 |
- "450000": "广西壮族自治区", |
|
30 |
- "460000": "海南省", |
|
31 |
- "500000": "重庆市", |
|
32 |
- "510000": "四川省", |
|
33 |
- "520000": "贵州省", |
|
34 |
- "530000": "云南省", |
|
35 |
- "540000": "西藏自治区", |
|
36 |
- "610000": "陕西省", |
|
37 |
- "620000": "甘肃省", |
|
38 |
- "630000": "青海省", |
|
39 |
- "640000": "宁夏回族自治区", |
|
40 |
- "650000": "新疆维吾尔自治区", |
|
41 |
- "710000": "台湾省", |
|
42 |
- "810000": "香港特别行政区", |
|
43 |
- "820000": "澳门特别行政区" |
|
10 |
+ "110000": "北京", |
|
11 |
+ "120000": "天津", |
|
12 |
+ "130000": "河北", |
|
13 |
+ "140000": "山西", |
|
14 |
+ "150000": "内蒙古", |
|
15 |
+ "210000": "辽宁", |
|
16 |
+ "220000": "吉林", |
|
17 |
+ "230000": "黑龙江", |
|
18 |
+ "310000": "上海", |
|
19 |
+ "320000": "江苏", |
|
20 |
+ "330000": "浙江", |
|
21 |
+ "340000": "安徽", |
|
22 |
+ "350000": "福建", |
|
23 |
+ "360000": "江西", |
|
24 |
+ "370000": "山东", |
|
25 |
+ "410000": "河南", |
|
26 |
+ "420000": "湖北", |
|
27 |
+ "430000": "湖南", |
|
28 |
+ "440000": "广东", |
|
29 |
+ "450000": "广西", |
|
30 |
+ "460000": "海南", |
|
31 |
+ "500000": "重庆", |
|
32 |
+ "510000": "四川", |
|
33 |
+ "520000": "贵州", |
|
34 |
+ "530000": "云南", |
|
35 |
+ "540000": "西藏", |
|
36 |
+ "610000": "陕西", |
|
37 |
+ "620000": "甘肃", |
|
38 |
+ "630000": "青海", |
|
39 |
+ "640000": "宁夏", |
|
40 |
+ "650000": "新疆", |
|
41 |
+ "710000": "台湾", |
|
42 |
+ "810000": "香港", |
|
43 |
+ "820000": "澳门" |
|
44 | 44 |
} |
45 | 45 |
|
46 | 46 |
|
@@ -15,7 +15,7 @@ django-json-render==1.0.0 |
||
15 | 15 |
django-json-response==1.1.5 |
16 | 16 |
django-logit==1.1.2 |
17 | 17 |
django-mobi==0.1.7 |
18 |
-django-models-ext==1.1.1 |
|
18 |
+django-models-ext==1.1.4 |
|
19 | 19 |
django-multidomain==1.1.4 |
20 | 20 |
django-paginator2==1.0.3 |
21 | 21 |
django-redis-connector==1.0.1 |
@@ -24,7 +24,7 @@ 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.3.0 |
|
27 |
+django-we==1.3.8 |
|
28 | 28 |
djangorestframework==3.7.7 |
29 | 29 |
furl==1.0.1 |
30 | 30 |
hiredis==0.2.0 |
@@ -32,7 +32,7 @@ isoweek==1.3.3 |
||
32 | 32 |
jsonfield==2.0.2 |
33 | 33 |
mock==2.0.0 |
34 | 34 |
pysnippets==1.0.5 |
35 |
-pywe-jssdk==1.0.2 |
|
35 |
+pywe-jssdk==1.1.0 |
|
36 | 36 |
pywe-membercard==1.0.0 |
37 | 37 |
pywe-miniapp==1.0.2 |
38 | 38 |
pywe-oauth==1.0.6 |
@@ -0,0 +1,25 @@ |
||
1 |
+# -*- coding: utf-8 -*- |
|
2 |
+# Generated by Django 1.11.11 on 2018-05-08 02:57 |
|
3 |
+from __future__ import unicode_literals |
|
4 |
+ |
|
5 |
+from django.db import migrations, models |
|
6 |
+ |
|
7 |
+ |
|
8 |
+class Migration(migrations.Migration): |
|
9 |
+ |
|
10 |
+ dependencies = [ |
|
11 |
+ ('statistic', '0004_auto_20180426_0952'), |
|
12 |
+ ] |
|
13 |
+ |
|
14 |
+ operations = [ |
|
15 |
+ migrations.AlterField( |
|
16 |
+ model_name='provincesalestatisticinfo', |
|
17 |
+ name='province_code', |
|
18 |
+ field=models.CharField(db_index=True, help_text='\u7701\u4efd\u7f16\u7801', max_length=6, verbose_name='province_code'), |
|
19 |
+ ), |
|
20 |
+ migrations.AlterField( |
|
21 |
+ model_name='provincesalestatisticinfo', |
|
22 |
+ name='province_name', |
|
23 |
+ field=models.CharField(blank=True, help_text='\u7701\u4efd\u540d\u79f0', max_length=3, null=True, verbose_name='province_name'), |
|
24 |
+ ), |
|
25 |
+ ] |
@@ -93,8 +93,8 @@ class DistributorSaleStatisticInfo(BaseModelMixin): |
||
93 | 93 |
|
94 | 94 |
|
95 | 95 |
class ProvinceSaleStatisticInfo(BaseModelMixin): |
96 |
- province_code = models.CharField(_(u'province_code'), max_length=32, help_text=u'省份编码', db_index=True) |
|
97 |
- province_name = models.CharField(_(u'province_name'), max_length=32, blank=True, null=True, help_text=u'省份名称') |
|
96 |
+ province_code = models.CharField(_(u'province_code'), max_length=6, help_text=u'省份编码', db_index=True) |
|
97 |
+ province_name = models.CharField(_(u'province_name'), max_length=3, blank=True, null=True, help_text=u'省份名称') |
|
98 | 98 |
ymd = models.IntegerField(_(u'ymd'), default=0, help_text=u'年月日', db_index=True) # 例:20171208, tc.local_string(format='%Y%m%d'), 0 为全部 |
99 | 99 |
num = models.IntegerField(_(u'num'), default=0, help_text=u'数量') |
100 | 100 |
|