| @@ -12,8 +12,8 @@ from utils.redis.rshot import update_member_shot_data | ||
| 12 | 12 |  | 
| 13 | 13 |  | 
| 14 | 14 | class GoodsInfoAdmin(admin.ModelAdmin): | 
| 15 | -    list_display = ('good_id', 'good_type', 'title', 'value', 'left_num', 'coupon_id', 'image', 'is_slider', 'slider_image', 'integral', 'fee', 'minlevel', 'only_for_member', 'only_once', 'position', 'status', 'created_at', 'updated_at') | |
| 16 | -    list_filter = ('good_type', 'is_slider', 'only_for_member', 'only_once', 'status') | |
| 15 | +    list_display = ('good_id', 'good_type', 'title', 'value', 'left_num', 'coupon_id', 'image', 'is_slider', 'slider_image', 'integral', 'fee', 'minlevel', 'only_for_member', 'only_once', 'position', 'is_upload_qiniu', 'status', 'created_at', 'updated_at') | |
| 16 | +    list_filter = ('good_type', 'is_slider', 'only_for_member', 'only_once', 'is_upload_qiniu', 'status') | |
| 17 | 17 |  | 
| 18 | 18 |  | 
| 19 | 19 | class GoodsOrderInfoAdmin(admin.ModelAdmin): | 
| @@ -76,8 +76,8 @@ class ShotTypeInfoAdmin(DeleteModelAdmin, admin.ModelAdmin): | ||
| 76 | 76 |  | 
| 77 | 77 |  | 
| 78 | 78 | class MemberActivityInfoAdmin(admin.ModelAdmin): | 
| 79 | -    list_display = ('activity_id', 'title', 'subtitle', 'date', 'city', 'location', 'lat', 'lon', 'image', 'is_slider', 'slider_image', 'position', 'status', 'created_at', 'updated_at') | |
| 80 | -    list_filter = ('is_slider', 'status') | |
| 79 | +    list_display = ('activity_id', 'title', 'subtitle', 'date', 'city', 'location', 'lat', 'lon', 'image', 'is_slider', 'slider_image', 'position', 'is_upload_qiniu', 'status', 'created_at', 'updated_at') | |
| 80 | +    list_filter = ('is_slider', 'is_upload_qiniu', 'status') | |
| 81 | 81 |  | 
| 82 | 82 |  | 
| 83 | 83 | class MemberActivitySignupInfoAdmin(admin.ModelAdmin): | 
| @@ -0,0 +1,25 @@ | ||
| 1 | +# -*- coding: utf-8 -*- | |
| 2 | +# Generated by Django 1.11.29 on 2021-11-24 10:50 | |
| 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 | +        ('member', '0030_rightinfo_is_continue_send_coupon'), | |
| 12 | + ] | |
| 13 | + | |
| 14 | + operations = [ | |
| 15 | + migrations.AddField( | |
| 16 | + model_name='goodsinfo', | |
| 17 | + name='is_upload_qiniu', | |
| 18 | + field=models.BooleanField(default=False, help_text='\u662f\u5426\u5df2\u4e0a\u4f20\u4e03\u725b', verbose_name='is_upload_qiniu'), | |
| 19 | + ), | |
| 20 | + migrations.AddField( | |
| 21 | + model_name='memberactivityinfo', | |
| 22 | + name='is_upload_qiniu', | |
| 23 | + field=models.BooleanField(default=False, help_text='\u662f\u5426\u5df2\u4e0a\u4f20\u4e03\u725b', verbose_name='is_upload_qiniu'), | |
| 24 | + ), | |
| 25 | + ] | 
| @@ -12,6 +12,7 @@ from TimeConvert import TimeConvert as tc | ||
| 12 | 12 | from coupon.models import CouponInfo | 
| 13 | 13 | from mch.models import ModelInfo | 
| 14 | 14 | from simditor.fields import RichTextField | 
| 15 | +from utils.qiniucdn import qiniu_file_url | |
| 15 | 16 |  | 
| 16 | 17 |  | 
| 17 | 18 | class GoodsInfo(BaseModelMixin): | 
| @@ -51,6 +52,8 @@ class GoodsInfo(BaseModelMixin): | ||
| 51 | 52 |  | 
| 52 | 53 | position = models.IntegerField(_(u'position'), default=1, help_text=u'排序', db_index=True) | 
| 53 | 54 |  | 
| 55 | + is_upload_qiniu = models.BooleanField(_(u'is_upload_qiniu'), default=False, help_text=_(u'是否已上传七牛')) | |
| 56 | + | |
| 54 | 57 | class Meta: | 
| 55 | 58 | verbose_name = _(u'会员商品信息') | 
| 56 | 59 | verbose_name_plural = _(u'会员商品信息') | 
| @@ -64,7 +67,7 @@ class GoodsInfo(BaseModelMixin): | ||
| 64 | 67 |  | 
| 65 | 68 | @property | 
| 66 | 69 | def image_url(self): | 
| 67 | - return upload_file_url(self.image) | |
| 70 | + return qiniu_file_url(self.image.name, bucket='tamron') if self.is_upload_qiniu else upload_file_url(self.image) | |
| 68 | 71 |  | 
| 69 | 72 | @property | 
| 70 | 73 | def slider_image_path(self): | 
| @@ -72,7 +75,7 @@ class GoodsInfo(BaseModelMixin): | ||
| 72 | 75 |  | 
| 73 | 76 | @property | 
| 74 | 77 | def slider_image_url(self): | 
| 75 | - return upload_file_url(self.slider_image) | |
| 78 | + return qiniu_file_url(self.slider_image.name, bucket='tamron') if self.is_upload_qiniu else upload_file_url(self.slider_image) | |
| 76 | 79 |  | 
| 77 | 80 | def has_member_exchange(self, user_id=None): | 
| 78 | 81 | if not self.only_for_member: | 
| @@ -380,6 +383,8 @@ class MemberActivityInfo(BaseModelMixin): | ||
| 380 | 383 |  | 
| 381 | 384 | position = models.IntegerField(_(u'position'), default=1, help_text=u'排序', db_index=True) | 
| 382 | 385 |  | 
| 386 | + is_upload_qiniu = models.BooleanField(_(u'is_upload_qiniu'), default=False, help_text=_(u'是否已上传七牛')) | |
| 387 | + | |
| 383 | 388 | class Meta: | 
| 384 | 389 | verbose_name = _(u'会员活动信息') | 
| 385 | 390 | verbose_name_plural = _(u'会员活动信息') | 
| @@ -393,7 +398,7 @@ class MemberActivityInfo(BaseModelMixin): | ||
| 393 | 398 |  | 
| 394 | 399 | @property | 
| 395 | 400 | def image_url(self): | 
| 396 | - return upload_file_url(self.image) | |
| 401 | + return qiniu_file_url(self.image.name, bucket='tamron') if self.is_upload_qiniu else upload_file_url(self.image) | |
| 397 | 402 |  | 
| 398 | 403 | @property | 
| 399 | 404 | def cover_path(self): | 
| @@ -401,7 +406,7 @@ class MemberActivityInfo(BaseModelMixin): | ||
| 401 | 406 |  | 
| 402 | 407 | @property | 
| 403 | 408 | def cover_url(self): | 
| 404 | - return upload_file_url(self.cover) | |
| 409 | + return qiniu_file_url(self.cover.name, bucket='tamron') if self.is_upload_qiniu else upload_file_url(self.cover) | |
| 405 | 410 |  | 
| 406 | 411 | @property | 
| 407 | 412 | def slider_image_path(self): | 
| @@ -409,7 +414,7 @@ class MemberActivityInfo(BaseModelMixin): | ||
| 409 | 414 |  | 
| 410 | 415 | @property | 
| 411 | 416 | def slider_image_url(self): | 
| 412 | - return upload_file_url(self.slider_image) | |
| 417 | + return qiniu_file_url(self.slider_image.name, bucket='tamron') if self.is_upload_qiniu else upload_file_url(self.slider_image) | |
| 413 | 418 |  | 
| 414 | 419 | @property | 
| 415 | 420 | def final_state(self): |