拍爱

admin.py 5.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. # -*- coding: utf-8 -*-
  2. from django.conf import settings
  3. from django.contrib import admin
  4. from django.template.loader import render_to_string
  5. from pysnippets.strsnippets import strip
  6. from operation.models import (APPSettingsInfo, FeedbackInfo, GuestEntranceControlInfo, LatestAppInfo, PatchInfo,
  7. SplashInfo)
  8. from utils.disk_utils import write_to_disk
  9. from utils.redis.rapp import set_latest_app
  10. from utils.redis.rguest import delete_guest_entrance_control, set_guest_entrance_control
  11. from utils.redis.rpatch import del_app_patch_info, set_app_patch_info
  12. from utils.redis.rsettings import del_app_settings_info, set_app_settings_info
  13. class LatestAppInfoAdmin(admin.ModelAdmin):
  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', 'src', 'status', 'created_at', 'updated_at')
  15. list_filter = ('src', 'status')
  16. def save_model(self, request, obj, form, change):
  17. obj.latest_adr_version_code = strip(obj.latest_adr_version_code)
  18. obj.latest_adr_version_name = strip(obj.latest_adr_version_name)
  19. obj.latest_adr_app = strip(obj.latest_adr_app)
  20. obj.latest_ios_version_code = strip(obj.latest_ios_version_code)
  21. obj.latest_ios_version_name = strip(obj.latest_ios_version_name)
  22. obj.latest_ios_url = strip(obj.latest_ios_url)
  23. obj.save()
  24. if obj.src == LatestAppInfo.PAIAI_USER:
  25. # 更新安卓下载页面
  26. write_to_disk(render_to_string('page/download.tmpl.html', {
  27. 'src': obj.src,
  28. 'version': obj.latest_adr_version_name,
  29. }), settings.PAI2_USER_DOWNLOAD_ADR_PAGE_PATH)
  30. # 更新 iOS 下载页面
  31. write_to_disk(render_to_string('page/download.tmpl.html', {
  32. 'src': obj.src,
  33. 'version': obj.latest_ios_version_name,
  34. }), settings.PAI2_USER_DOWNLOAD_IOS_PAGE_PATH)
  35. elif obj.src == LatestAppInfo.PAIAI_LENSMAN:
  36. # 更新安卓下载页面
  37. write_to_disk(render_to_string('page/download.tmpl.html', {
  38. 'src': obj.src,
  39. 'version': obj.latest_adr_version_name,
  40. }), settings.PAI2_LENSMAN_DOWNLOAD_ADR_PAGE_PATH)
  41. # 更新 iOS 下载页面
  42. write_to_disk(render_to_string('page/download.tmpl.html', {
  43. 'src': obj.src,
  44. 'version': obj.latest_ios_version_name,
  45. }), settings.PAI2_LENSMAN_DOWNLOAD_IOS_PAGE_PATH)
  46. elif obj.src == LatestAppInfo.PAIAI_TOURGUIDE:
  47. # 更新安卓下载页面
  48. write_to_disk(render_to_string('page/download.tmpl.html', {
  49. 'src': obj.src,
  50. 'version': obj.latest_adr_version_name,
  51. }), settings.PAI2_TOURGUIDE_DOWNLOAD_ADR_PAGE_PATH)
  52. # 更新 iOS 下载页面
  53. write_to_disk(render_to_string('page/download.tmpl.html', {
  54. 'src': obj.src,
  55. 'version': obj.latest_ios_version_name,
  56. }), settings.PAI2_TOURGUIDE_DOWNLOAD_IOS_PAGE_PATH)
  57. # 设置最新 APP 信息
  58. set_latest_app(obj.src)
  59. class PatchInfoAdmin(admin.ModelAdmin):
  60. list_display = ('platform', 'version', 'patch', 'src', 'status', 'created_at', 'updated_at')
  61. list_filter = ('platform', 'src', 'status')
  62. actions = None
  63. def save_model(self, request, obj, form, change):
  64. obj.version = strip(obj.version)
  65. obj.save()
  66. # 设置 APP 补丁信息
  67. set_app_patch_info(obj)
  68. def delete_model(self, request, obj):
  69. obj.delete()
  70. # 删除 APP 补丁信息
  71. del_app_patch_info(obj)
  72. class APPSettingsInfoAdmin(admin.ModelAdmin):
  73. list_display = ('platform', 'channel', 'version', 'online', 'status', 'created_at', 'updated_at')
  74. list_filter = ('platform', 'online', 'status')
  75. actions = None
  76. def save_model(self, request, obj, form, change):
  77. obj.channel = strip(obj.channel)
  78. obj.version = strip(obj.version)
  79. obj.save()
  80. # 设置 APP 设置信息
  81. set_app_settings_info(obj)
  82. def delete_model(self, request, obj):
  83. obj.delete()
  84. # 删除 APP 设置信息
  85. del_app_settings_info(obj)
  86. class SplashInfoAdmin(admin.ModelAdmin):
  87. list_display = ('splash_image', 'spalash_image_airtime', 'spalash_image_deadline', 'src', 'status', 'created_at', 'updated_at')
  88. list_filter = ('src', 'status')
  89. class FeedbackInfoAdmin(admin.ModelAdmin):
  90. list_display = ('user_id', 'feedback', 'src', 'status', 'created_at', 'updated_at')
  91. list_filter = ('src', 'status')
  92. class GuestEntranceControlInfoAdmin(admin.ModelAdmin):
  93. list_display = ('platform', 'min_adr', 'max_adr', 'min_ios', 'max_ios', 'status', 'created_at', 'updated_at')
  94. actions = None
  95. def save_model(self, request, obj, form, change):
  96. obj.min_adr = strip(obj.min_adr)
  97. obj.max_adr = strip(obj.max_adr)
  98. obj.min_ios = strip(obj.min_ios)
  99. obj.max_ios = strip(obj.max_ios)
  100. obj.save()
  101. # 设置游客入口控制
  102. set_guest_entrance_control(obj)
  103. def delete_model(self, request, obj):
  104. obj.delete()
  105. # 删除游客入口控制
  106. delete_guest_entrance_control()
  107. admin.site.register(LatestAppInfo, LatestAppInfoAdmin)
  108. admin.site.register(PatchInfo, PatchInfoAdmin)
  109. admin.site.register(APPSettingsInfo, APPSettingsInfoAdmin)
  110. admin.site.register(SplashInfo, SplashInfoAdmin)
  111. admin.site.register(FeedbackInfo, FeedbackInfoAdmin)
  112. admin.site.register(GuestEntranceControlInfo, GuestEntranceControlInfoAdmin)