拍爱

admin.py 6.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180
  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, BoxProgramVersionInfo, FeedbackInfo, GuestEntranceControlInfo,
  7. LatestAppInfo, PatchInfo, 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.roperation.rbox_program_version import set_box_program_version
  12. from utils.redis.rpatch import del_app_patch_info, set_app_patch_info
  13. from utils.redis.rsettings import del_app_settings_info, set_app_settings_info
  14. class LatestAppInfoAdmin(admin.ModelAdmin):
  15. 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')
  16. list_filter = ('src', 'status')
  17. actions = None
  18. def save_model(self, request, obj, form, change):
  19. obj.latest_adr_version_name = strip(obj.latest_adr_version_name)
  20. obj.latest_adr_app = strip(obj.latest_adr_app)
  21. obj.latest_adr_url = strip(obj.latest_adr_url)
  22. obj.latest_ios_version_name = strip(obj.latest_ios_version_name)
  23. obj.latest_ios_url = strip(obj.latest_ios_url)
  24. obj.save()
  25. if obj.src == LatestAppInfo.PAIAI_USER:
  26. # 更新安卓下载页面
  27. write_to_disk(render_to_string('page/download.tmpl.html', {
  28. 'src': obj.src,
  29. 'version': obj.latest_adr_version_name,
  30. }), settings.PAI2_USER_DOWNLOAD_ADR_PAGE_PATH)
  31. # 更新 iOS 下载页面
  32. write_to_disk(render_to_string('page/download.tmpl.html', {
  33. 'src': obj.src,
  34. 'version': obj.latest_ios_version_name,
  35. }), settings.PAI2_USER_DOWNLOAD_IOS_PAGE_PATH)
  36. elif obj.src == LatestAppInfo.PAIAI_LENSMAN:
  37. # 更新安卓下载页面
  38. write_to_disk(render_to_string('page/download.tmpl.html', {
  39. 'src': obj.src,
  40. 'version': obj.latest_adr_version_name,
  41. }), settings.PAI2_LENSMAN_DOWNLOAD_ADR_PAGE_PATH)
  42. # 更新 iOS 下载页面
  43. write_to_disk(render_to_string('page/download.tmpl.html', {
  44. 'src': obj.src,
  45. 'version': obj.latest_ios_version_name,
  46. }), settings.PAI2_LENSMAN_DOWNLOAD_IOS_PAGE_PATH)
  47. elif obj.src == LatestAppInfo.PAIAI_TOURGUIDE:
  48. # 更新安卓下载页面
  49. write_to_disk(render_to_string('page/download.tmpl.html', {
  50. 'src': obj.src,
  51. 'version': obj.latest_adr_version_name,
  52. }), settings.PAI2_TOURGUIDE_DOWNLOAD_ADR_PAGE_PATH)
  53. # 更新 iOS 下载页面
  54. write_to_disk(render_to_string('page/download.tmpl.html', {
  55. 'src': obj.src,
  56. 'version': obj.latest_ios_version_name,
  57. }), settings.PAI2_TOURGUIDE_DOWNLOAD_IOS_PAGE_PATH)
  58. # 设置最新 APP 信息
  59. set_latest_app(obj.src)
  60. def delete_model(self, request, obj):
  61. obj.delete()
  62. # 设置最新 APP 信息
  63. set_latest_app(obj.src)
  64. class PatchInfoAdmin(admin.ModelAdmin):
  65. list_display = ('platform', 'version', 'patch', 'src', 'status', 'created_at', 'updated_at')
  66. list_filter = ('platform', 'src', 'status')
  67. actions = None
  68. def save_model(self, request, obj, form, change):
  69. obj.version = strip(obj.version)
  70. obj.save()
  71. # 设置 APP 补丁信息
  72. set_app_patch_info(obj)
  73. def delete_model(self, request, obj):
  74. obj.delete()
  75. # 删除 APP 补丁信息
  76. del_app_patch_info(obj)
  77. class APPSettingsInfoAdmin(admin.ModelAdmin):
  78. list_display = ('platform', 'channel', 'version', 'online', 'status', 'created_at', 'updated_at')
  79. list_filter = ('platform', 'online', 'status')
  80. actions = None
  81. def save_model(self, request, obj, form, change):
  82. obj.channel = strip(obj.channel)
  83. obj.version = strip(obj.version)
  84. obj.save()
  85. # 设置 APP 设置信息
  86. set_app_settings_info(obj)
  87. def delete_model(self, request, obj):
  88. obj.delete()
  89. # 删除 APP 设置信息
  90. del_app_settings_info(obj)
  91. class SplashInfoAdmin(admin.ModelAdmin):
  92. list_display = ('splash_image', 'spalash_image_airtime', 'spalash_image_deadline', 'src', 'status', 'created_at', 'updated_at')
  93. list_filter = ('src', 'status')
  94. class FeedbackInfoAdmin(admin.ModelAdmin):
  95. list_display = ('user_id', 'feedback', 'src', 'status', 'created_at', 'updated_at')
  96. list_filter = ('src', 'status')
  97. class GuestEntranceControlInfoAdmin(admin.ModelAdmin):
  98. list_display = ('platform', 'min_adr', 'max_adr', 'min_ios', 'max_ios', 'src', 'status', 'created_at', 'updated_at')
  99. list_filter = ('src', 'status')
  100. actions = None
  101. def save_model(self, request, obj, form, change):
  102. obj.min_adr = strip(obj.min_adr)
  103. obj.max_adr = strip(obj.max_adr)
  104. obj.min_ios = strip(obj.min_ios)
  105. obj.max_ios = strip(obj.max_ios)
  106. obj.save()
  107. # 设置游客入口控制
  108. set_guest_entrance_control(obj)
  109. def delete_model(self, request, obj):
  110. obj.delete()
  111. # 删除游客入口控制
  112. delete_guest_entrance_control()
  113. class BoxProgramVersionInfoAdmin(admin.ModelAdmin):
  114. list_display = ('srv_version_code', 'srv_version_name', 'srv_sha1', 'proc_version_code', 'proc_version_name', 'proc_sha1', 'status', 'created_at', 'updated_at')
  115. list_filter = ('status', )
  116. actions = None
  117. def save_model(self, request, obj, form, change):
  118. obj.srv_version_name = strip(obj.srv_version_name)
  119. obj.srv_sha1 = strip(obj.srv_sha1)
  120. obj.proc_version_name = strip(obj.proc_version_name)
  121. obj.proc_sha1 = strip(obj.proc_sha1)
  122. obj.save()
  123. # 设置 BOX 程序版本信息
  124. set_box_program_version()
  125. def delete_model(self, request, obj):
  126. obj.delete()
  127. # 设置 BOX 程序版本信息
  128. set_box_program_version()
  129. admin.site.register(LatestAppInfo, LatestAppInfoAdmin)
  130. admin.site.register(PatchInfo, PatchInfoAdmin)
  131. admin.site.register(APPSettingsInfo, APPSettingsInfoAdmin)
  132. admin.site.register(SplashInfo, SplashInfoAdmin)
  133. admin.site.register(FeedbackInfo, FeedbackInfoAdmin)
  134. admin.site.register(GuestEntranceControlInfo, GuestEntranceControlInfoAdmin)
  135. admin.site.register(BoxProgramVersionInfo, BoxProgramVersionInfoAdmin)