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