拍爱

admin.py 3.7KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  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. 'version': obj.latest_adr_version_name,
  26. }), settings.DOWNLOAD_ADR_PAGE_PATH)
  27. # 更新 iOS 下载页面
  28. write_to_disk(render_to_string('page/download.tmpl.html', {
  29. 'version': obj.latest_ios_version_name,
  30. }), settings.DOWNLOAD_IOS_PAGE_PATH)
  31. # 设置最新 APP 信息
  32. set_latest_app(obj.src)
  33. class APPSettingsInfoAdmin(admin.ModelAdmin):
  34. list_display = ('platform', 'channel', 'version', 'online', 'status', 'created_at', 'updated_at')
  35. list_filter = ('platform', 'online', 'status')
  36. def save_model(self, request, obj, form, change):
  37. obj.channel = tstrip(obj.channel)
  38. obj.version = tstrip(obj.version)
  39. obj.save()
  40. # 设置 APP 设置信息
  41. set_app_settings_info(obj)
  42. def delete_model(self, request, obj):
  43. obj.delete()
  44. # 删除 APP 设置信息
  45. del_app_settings_info(obj)
  46. class SplashInfoAdmin(admin.ModelAdmin):
  47. list_display = ('splash_image', 'spalash_image_airtime', 'spalash_image_deadline', 'src', 'status', 'created_at', 'updated_at')
  48. list_filter = ('src', 'status')
  49. class FeedbackInfoAdmin(admin.ModelAdmin):
  50. list_display = ('user_id', 'feedback', 'src', 'status', 'created_at', 'updated_at')
  51. list_filter = ('src', 'status')
  52. class GuestEntranceControlInfoAdmin(admin.ModelAdmin):
  53. list_display = ('platform', 'min_adr', 'max_adr', 'min_ios', 'max_ios', 'status', 'created_at', 'updated_at')
  54. def save_model(self, request, obj, form, change):
  55. obj.min_adr = tstrip(obj.min_adr)
  56. obj.max_adr = tstrip(obj.max_adr)
  57. obj.min_ios = tstrip(obj.min_ios)
  58. obj.max_ios = tstrip(obj.max_ios)
  59. obj.save()
  60. # 设置游客入口控制
  61. set_guest_entrance_control(obj)
  62. def delete_model(self, request, obj):
  63. obj.delete()
  64. # 删除游客入口控制
  65. delete_guest_entrance_control()
  66. admin.site.register(LatestAppInfo, LatestAppInfoAdmin)
  67. admin.site.register(APPSettingsInfo, APPSettingsInfoAdmin)
  68. admin.site.register(SplashInfo, SplashInfoAdmin)
  69. admin.site.register(FeedbackInfo, FeedbackInfoAdmin)
  70. admin.site.register(GuestEntranceControlInfo, GuestEntranceControlInfoAdmin)