拍爱

admin.py 2.2KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  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 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.rversion import delete_guest_entrance_control, set_guest_entrance_control
  9. class LatestAppInfoAdmin(admin.ModelAdmin):
  10. 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')
  11. def save_model(self, request, obj, form, change):
  12. obj.save()
  13. # 更新安卓下载页面
  14. write_to_disk(render_to_string('page/download.tmpl.html', {
  15. 'version': obj.latest_adr_version_name,
  16. }), settings.DOWNLOAD_ADR_PAGE_PATH)
  17. # 更新 iOS 下载页面
  18. write_to_disk(render_to_string('page/download.tmpl.html', {
  19. 'version': obj.latest_ios_version_name,
  20. }), settings.DOWNLOAD_IOS_PAGE_PATH)
  21. # 设置最新 APP 信息
  22. set_latest_app()
  23. class SplashInfoAdmin(admin.ModelAdmin):
  24. list_display = ('splash_image', 'spalash_image_airtime', 'spalash_image_deadline', 'status', 'created_at', 'updated_at')
  25. class FeedbackInfoAdmin(admin.ModelAdmin):
  26. list_display = ('user_id', 'feedback', 'status', 'created_at', 'updated_at')
  27. class GuestEntranceControlInfoAdmin(admin.ModelAdmin):
  28. list_display = ('platform', 'min_adr', 'max_adr', 'min_ios', 'max_ios', 'status', 'created_at', 'updated_at')
  29. def save_model(self, request, obj, form, change):
  30. obj.save()
  31. # 设置游客入口控制
  32. set_guest_entrance_control(obj)
  33. def delete_model(self, request, obj):
  34. obj.delete()
  35. # 删除游客入口控制
  36. delete_guest_entrance_control()
  37. admin.site.register(LatestAppInfo, LatestAppInfoAdmin)
  38. admin.site.register(SplashInfo, SplashInfoAdmin)
  39. admin.site.register(FeedbackInfo, FeedbackInfoAdmin)
  40. admin.site.register(GuestEntranceControlInfo, GuestEntranceControlInfoAdmin)