@@ -63,4 +63,4 @@ media/ |
||
63 | 63 |
collect_static/ |
64 | 64 |
|
65 | 65 |
# Special File |
66 |
-download.html |
|
66 |
+*download.html |
@@ -11,15 +11,20 @@ from utils.redis.rversion import delete_guest_entrance_control, set_guest_entran |
||
11 | 11 |
|
12 | 12 |
|
13 | 13 |
class LatestAppInfoAdmin(admin.ModelAdmin): |
14 |
- list_display = ('latest_version', 'latest_app', 'latest_url', 'status', 'created_at', 'updated_at') |
|
14 |
+ 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', 'status', 'created_at', 'updated_at') |
|
15 | 15 |
|
16 | 16 |
def save_model(self, request, obj, form, change): |
17 | 17 |
obj.save() |
18 | 18 |
|
19 |
- # 更新下载页面 |
|
19 |
+ # 更新安卓下载页面 |
|
20 | 20 |
write_to_disk(render_to_string('page/download.tmpl.html', { |
21 |
- 'version': obj.latest_version, |
|
22 |
- }), settings.DOWNLOAD_PAGE_PATH) |
|
21 |
+ 'version': obj.latest_adr_version_name, |
|
22 |
+ }), settings.DOWNLOAD_ADR_PAGE_PATH) |
|
23 |
+ |
|
24 |
+ # 更新 iOS 下载页面 |
|
25 |
+ write_to_disk(render_to_string('page/download.tmpl.html', { |
|
26 |
+ 'version': obj.latest_ios_version_name, |
|
27 |
+ }), settings.DOWNLOAD_IOS_PAGE_PATH) |
|
23 | 28 |
|
24 | 29 |
# 设置最新 APP 信息 |
25 | 30 |
set_latest_app() |
@@ -0,0 +1,62 @@ |
||
1 |
+# -*- coding: utf-8 -*- |
|
2 |
+from __future__ import unicode_literals |
|
3 |
+ |
|
4 |
+from django.db import models, migrations |
|
5 |
+import operation.models |
|
6 |
+ |
|
7 |
+ |
|
8 |
+class Migration(migrations.Migration): |
|
9 |
+ |
|
10 |
+ dependencies = [ |
|
11 |
+ ('operation', '0004_guestentrancecontrolinfo'), |
|
12 |
+ ] |
|
13 |
+ |
|
14 |
+ operations = [ |
|
15 |
+ migrations.RemoveField( |
|
16 |
+ model_name='latestappinfo', |
|
17 |
+ name='latest_app', |
|
18 |
+ ), |
|
19 |
+ migrations.RemoveField( |
|
20 |
+ model_name='latestappinfo', |
|
21 |
+ name='latest_url', |
|
22 |
+ ), |
|
23 |
+ migrations.RemoveField( |
|
24 |
+ model_name='latestappinfo', |
|
25 |
+ name='latest_version', |
|
26 |
+ ), |
|
27 |
+ migrations.AddField( |
|
28 |
+ model_name='latestappinfo', |
|
29 |
+ name='latest_adr_app', |
|
30 |
+ field=models.FileField(help_text='\u6700\u65b0\u7248\u5b89\u5353 APP', upload_to=operation.models.upload_path, null=True, verbose_name='latest_adr_app', blank=True), |
|
31 |
+ ), |
|
32 |
+ migrations.AddField( |
|
33 |
+ model_name='latestappinfo', |
|
34 |
+ name='latest_adr_url', |
|
35 |
+ field=models.URLField(help_text='\u6700\u65b0\u7248 APP \u94fe\u63a5', max_length=255, null=True, verbose_name='latest_adr_url', blank=True), |
|
36 |
+ ), |
|
37 |
+ migrations.AddField( |
|
38 |
+ model_name='latestappinfo', |
|
39 |
+ name='latest_adr_version_code', |
|
40 |
+ field=models.IntegerField(default=0, help_text='\u6700\u65b0\u5b89\u5353\u7248\u672c\u53f7', verbose_name='latest_adr_version_code'), |
|
41 |
+ ), |
|
42 |
+ migrations.AddField( |
|
43 |
+ model_name='latestappinfo', |
|
44 |
+ name='latest_adr_version_name', |
|
45 |
+ field=models.CharField(help_text='\u6700\u65b0\u5b89\u5353\u7248\u672c\u540d', max_length=255, null=True, verbose_name='latest_adr_version_name', blank=True), |
|
46 |
+ ), |
|
47 |
+ migrations.AddField( |
|
48 |
+ model_name='latestappinfo', |
|
49 |
+ name='latest_ios_url', |
|
50 |
+ field=models.URLField(help_text='\u6700\u65b0\u7248 iOS \u94fe\u63a5', max_length=255, null=True, verbose_name='latest_ios_url', blank=True), |
|
51 |
+ ), |
|
52 |
+ migrations.AddField( |
|
53 |
+ model_name='latestappinfo', |
|
54 |
+ name='latest_ios_version_code', |
|
55 |
+ field=models.IntegerField(default=0, help_text='\u6700\u65b0 iOS \u7248\u672c\u53f7', verbose_name='latest_ios_version_code'), |
|
56 |
+ ), |
|
57 |
+ migrations.AddField( |
|
58 |
+ model_name='latestappinfo', |
|
59 |
+ name='latest_ios_version_name', |
|
60 |
+ field=models.CharField(help_text='\u6700\u65b0 iOS \u7248\u672c\u540d', max_length=255, null=True, verbose_name='latest_ios_version_name', blank=True), |
|
61 |
+ ), |
|
62 |
+ ] |
@@ -23,9 +23,14 @@ def upload_path(instance, old_filename): |
||
23 | 23 |
|
24 | 24 |
|
25 | 25 |
class LatestAppInfo(CreateUpdateMixin): |
26 |
- latest_version = models.CharField(_(u'latest_version'), max_length=255, help_text=u'最新版本') |
|
27 |
- latest_app = models.FileField(_(u'latest_app'), upload_to=upload_path, blank=True, null=True, help_text=u'最新版 APP') |
|
28 |
- latest_url = models.URLField(_(u'latest_url'), max_length=255, blank=True, null=True, help_text=u'最新版 APP 链接') |
|
26 |
+ latest_adr_version_code = models.IntegerField(_(u'latest_adr_version_code'), default=0, help_text=u'最新安卓版本号') |
|
27 |
+ latest_adr_version_name = models.CharField(_(u'latest_adr_version_name'), max_length=255, blank=True, null=True, help_text=u'最新安卓版本名') |
|
28 |
+ latest_adr_app = models.FileField(_(u'latest_adr_app'), upload_to=upload_path, blank=True, null=True, help_text=u'最新版安卓 APP') |
|
29 |
+ latest_adr_url = models.URLField(_(u'latest_adr_url'), max_length=255, blank=True, null=True, help_text=u'最新版 APP 链接') |
|
30 |
+ |
|
31 |
+ latest_ios_version_code = models.IntegerField(_(u'latest_ios_version_code'), default=0, help_text=u'最新 iOS 版本号') |
|
32 |
+ latest_ios_version_name = models.CharField(_(u'latest_ios_version_name'), max_length=255, blank=True, null=True, help_text=u'最新 iOS 版本名') |
|
33 |
+ latest_ios_url = models.URLField(_(u'latest_ios_url'), max_length=255, blank=True, null=True, help_text=u'最新版 iOS 链接') |
|
29 | 34 |
|
30 | 35 |
class Meta: |
31 | 36 |
verbose_name = _('latestappinfo') |
@@ -35,14 +40,18 @@ class LatestAppInfo(CreateUpdateMixin): |
||
35 | 40 |
return u'{0.pk}'.format(self) |
36 | 41 |
|
37 | 42 |
@property |
38 |
- def final_latest_url(self): |
|
39 |
- return self.latest_url or u'{}{}'.format(settings.DOMAIN, self.latest_app and self.latest_app.url) |
|
43 |
+ def final_latest_adr_url(self): |
|
44 |
+ return self.latest_adr_url or u'{}{}'.format(settings.DOMAIN, self.latest_adr_app and self.latest_adr_app.url) |
|
40 | 45 |
|
41 | 46 |
@property |
42 | 47 |
def data(self): |
43 | 48 |
return { |
44 |
- 'latest_version': self.latest_version, |
|
45 |
- 'latest_url': self.final_latest_url, |
|
49 |
+ 'latest_adr_version_code': self.latest_adr_version_code, |
|
50 |
+ 'latest_adr_version_name': self.latest_adr_version_name, |
|
51 |
+ 'latest_adr_url': self.final_latest_adr_url, |
|
52 |
+ 'latest_ios_version_code': self.latest_ios_version_code, |
|
53 |
+ 'latest_ios_version_name': self.latest_ios_version_name, |
|
54 |
+ 'latest_ios_url': self.latest_ios_url, |
|
46 | 55 |
} |
47 | 56 |
|
48 | 57 |
|
@@ -5,7 +5,7 @@ from django.http import JsonResponse |
||
5 | 5 |
from django.shortcuts import redirect |
6 | 6 |
|
7 | 7 |
from account.models import UserInfo |
8 |
-from operation.models import FeedbackInfo, LatestAppInfo, SplashInfo |
|
8 |
+from operation.models import FeedbackInfo, SplashInfo |
|
9 | 9 |
from utils.error.errno_utils import UserStatusCode |
10 | 10 |
from utils.error.response_utils import response |
11 | 11 |
from utils.redis.rapp import get_latest_app |
@@ -17,11 +17,26 @@ def upgrade_api(request): |
||
17 | 17 |
:param request: |
18 | 18 |
:return: |
19 | 19 |
""" |
20 |
+ latest_app = get_latest_app() |
|
21 |
+ |
|
22 |
+ if request.iOS: |
|
23 |
+ appinfo = { |
|
24 |
+ 'latest_version_code': latest_app.get('latest_ios_version_code', ''), |
|
25 |
+ 'latest_version_name': latest_app.get('latest_ios_version_name', ''), |
|
26 |
+ 'latest_url': latest_app.get('latest_ios_url', ''), |
|
27 |
+ } |
|
28 |
+ else: |
|
29 |
+ appinfo = { |
|
30 |
+ 'latest_version_code': latest_app.get('latest_adr_version_code', ''), |
|
31 |
+ 'latest_version_name': latest_app.get('latest_adr_version_name', ''), |
|
32 |
+ 'latest_url': latest_app.get('latest_adr_url', ''), |
|
33 |
+ } |
|
34 |
+ |
|
20 | 35 |
return JsonResponse({ |
21 | 36 |
'status': 200, |
22 | 37 |
'message': u'获取最新版信息成功', |
23 | 38 |
'data': { |
24 |
- 'appinfo': get_latest_app(), |
|
39 |
+ 'appinfo': appinfo, |
|
25 | 40 |
}, |
26 | 41 |
}) |
27 | 42 |
|
@@ -79,4 +94,4 @@ def download_api(request): |
||
79 | 94 |
return redirect(settings.DOWNLOAD_WX_URL) |
80 | 95 |
if request.iOS: |
81 | 96 |
return redirect(settings.DOWNLOAD_IOS_URL) |
82 |
- return redirect(get_latest_app().get('latest_url', '')) |
|
97 |
+ return redirect(get_latest_app().get('latest_adr_url', '')) |
@@ -269,7 +269,8 @@ PAI2_HOME_MAX_ROWS = 400 # 首页照片最大数量, PAI2_HOME_PER_PAGE * PAI2_ |
||
269 | 269 |
|
270 | 270 |
# 下载页设置 |
271 | 271 |
DOWNLOAD_TMPL_PATH = os.path.join(BASE_DIR, 'page/templates/page/download.tmpl.html').replace('\\', '/') |
272 |
-DOWNLOAD_PAGE_PATH = os.path.join(BASE_DIR, 'page/templates/page/download.html').replace('\\', '/') |
|
272 |
+DOWNLOAD_ADR_PAGE_PATH = os.path.join(BASE_DIR, 'page/templates/page/adr_download.html').replace('\\', '/') |
|
273 |
+DOWNLOAD_IOS_PAGE_PATH = os.path.join(BASE_DIR, 'page/templates/page/ios_download.html').replace('\\', '/') |
|
273 | 274 |
|
274 | 275 |
# 下载设置 |
275 | 276 |
DOWNLOAD_WX_URL = '' |