拍爱

admin.py 4.9KB

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