slides

Kimi.Huang 5 年 前
コミット
f50c94ee3a
共有5 個のファイルを変更した97 個の追加2 個の削除を含む
  1. 21 0
      api/slide_views.py
  2. 5 1
      api/urls.py
  3. 7 1
      mch/admin.py
  4. 33 0
      mch/migrations/0042_slideinfo.py
  5. 31 0
      mch/models.py

+ 21 - 0
api/slide_views.py

@@ -0,0 +1,21 @@
1
+# -*- coding: utf-8 -*-
2
+
3
+from __future__ import division
4
+
5
+from django.conf import settings
6
+from django_logit import logit
7
+from django_response import response
8
+
9
+from mch.models import SlideInfo
10
+
11
+
12
+@logit
13
+def slides(request):
14
+    brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID)
15
+
16
+    slides = SlideInfo.objects.filter(brand_id=brand_id)
17
+    slides = [s.data for s in slides]
18
+
19
+    return response(data={
20
+        'slides': slides,
21
+    })

+ 5 - 1
api/urls.py

@@ -5,7 +5,7 @@ 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, model_views, operator_views
8
+from api import admin_views, clerk_views, distributor_views, encrypt_views, mch_views, model_views, operator_views, slide_views
9 9
 from box import views as box_views
10 10
 from geo import views as geo_views
11 11
 from group import (groupuser_views, lensman_views, tourguidegroup_views, tourguidegroupadmin_views,
@@ -290,3 +290,7 @@ urlpatterns += [
290 290
     url(r'^admin/queryusedsn$', admin_views.queryusedsn, name='queryusedsn'),
291 291
     url(r'^admin/usecoupon$', admin_views.usecoupon, name='usecoupon'),
292 292
 ]
293
+
294
+urlpatterns += [
295
+    url(r'^slides$', slide_views.slides, name='slides'),
296
+]

+ 7 - 1
mch/admin.py

@@ -9,7 +9,7 @@ from django_models_ext import ProvinceShortModelMixin
9 9
 from pysnippets.strsnippets import strip
10 10
 
11 11
 from mch.models import (ActivityInfo, AdministratorInfo, BrandInfo, ConsumeInfoSubmitLogInfo, ConsumeImpressionInfo, DistributorInfo,
12
-                        LatestAppInfo, LatestAppScreenInfo, ModelInfo, OperatorInfo, SaleclerkInfo)
12
+                        LatestAppInfo, LatestAppScreenInfo, ModelInfo, OperatorInfo, SaleclerkInfo, SlideInfo)
13 13
 
14 14
 
15 15
 class AdministratorInfoAdmin(admin.ModelAdmin):
@@ -196,6 +196,11 @@ class ActivityInfoAdmin(admin.ModelAdmin):
196 196
     list_filter = ('coupon_expire_type', 'status')
197 197
 
198 198
 
199
+class SlideInfoAdmin(admin.ModelAdmin):
200
+    list_display = ('brand_id', 'image', 'url', 'position', 'status', 'created_at', 'updated_at')
201
+    list_filter = ('brand_id', 'status')
202
+
203
+
199 204
 admin.site.register(AdministratorInfo, AdministratorInfoAdmin)
200 205
 admin.site.register(OperatorInfo, OperatorInfoAdmin)
201 206
 admin.site.register(BrandInfo, BrandInfoAdmin)
@@ -209,3 +214,4 @@ admin.site.register(LatestAppScreenInfo, LatestAppScreenInfoAdmin)
209 214
 admin.site.register(ConsumeImpressionInfo, ConsumeImpressionInfoAdmin)
210 215
 admin.site.register(ConsumeInfoSubmitLogInfo, ConsumeInfoSubmitLogInfoAdmin)
211 216
 admin.site.register(ActivityInfo, ActivityInfoAdmin)
217
+admin.site.register(SlideInfo, SlideInfoAdmin)

+ 33 - 0
mch/migrations/0042_slideinfo.py

@@ -0,0 +1,33 @@
1
+# -*- coding: utf-8 -*-
2
+# Generated by Django 1.11.22 on 2019-08-12 08:14
3
+from __future__ import unicode_literals
4
+
5
+from django.db import migrations, models
6
+import django_models_ext.fileext
7
+
8
+
9
+class Migration(migrations.Migration):
10
+
11
+    dependencies = [
12
+        ('mch', '0041_auto_20190812_1429'),
13
+    ]
14
+
15
+    operations = [
16
+        migrations.CreateModel(
17
+            name='SlideInfo',
18
+            fields=[
19
+                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
20
+                ('status', models.BooleanField(db_index=True, default=True, help_text='Status', verbose_name='status')),
21
+                ('created_at', models.DateTimeField(auto_now_add=True, help_text='Create Time', verbose_name='created_at')),
22
+                ('updated_at', models.DateTimeField(auto_now=True, help_text='Update Time', verbose_name='updated_at')),
23
+                ('brand_id', models.CharField(blank=True, db_index=True, help_text='\u54c1\u724c\u552f\u4e00\u6807\u8bc6', max_length=32, null=True, verbose_name='brand_id')),
24
+                ('image', models.ImageField(blank=True, help_text='\u56fe\u7247', null=True, upload_to=django_models_ext.fileext.upload_path, verbose_name='image')),
25
+                ('url', models.CharField(blank=True, help_text='\u94fe\u63a5', max_length=255, null=True, verbose_name='url')),
26
+                ('position', models.IntegerField(default=1, help_text='\u6392\u5e8f', verbose_name='position')),
27
+            ],
28
+            options={
29
+                'verbose_name': '\u8f6e\u64ad\u56fe\u4fe1\u606f',
30
+                'verbose_name_plural': '\u8f6e\u64ad\u56fe\u4fe1\u606f',
31
+            },
32
+        ),
33
+    ]

+ 31 - 0
mch/models.py

@@ -745,3 +745,34 @@ class ActivityInfo(BaseModelMixin):
745 745
 
746 746
     def coupon_info2(self, created_at=None):
747 747
         return self.coupon_info(created_at=created_at),
748
+
749
+
750
+class SlideInfo(BaseModelMixin):
751
+    brand_id = models.CharField(_(u'brand_id'), max_length=32, blank=True, null=True, help_text=u'品牌唯一标识', db_index=True)
752
+
753
+    image = models.ImageField(_(u'image'), upload_to=upload_path, blank=True, null=True, help_text=u'图片')
754
+    url = models.CharField(_(u'url'), max_length=255, blank=True, null=True, help_text=u'链接')
755
+
756
+    position = models.IntegerField(_(u'position'), default=1, help_text=u'排序')
757
+
758
+    class Meta:
759
+        verbose_name = _(u'轮播图信息')
760
+        verbose_name_plural = _(u'轮播图信息')
761
+
762
+    def __unicode__(self):
763
+        return unicode(self.pk)
764
+
765
+    @property
766
+    def image_path(self):
767
+        return upload_file_path(self.image)
768
+
769
+    @property
770
+    def image_url(self):
771
+        return upload_file_url(self.image)
772
+
773
+    @property
774
+    def data(self):
775
+        return {
776
+            'image_url': self.image_url,
777
+            'url': self.url,
778
+        }