拍爱

models.py 6.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180
  1. # -*- coding: utf-8 -*-
  2. import os
  3. from django.db import models
  4. from django.utils.translation import ugettext_lazy as _
  5. from models_ext import BaseModelMixin
  6. from TimeConvert import TimeConvert as tc
  7. from pai2.basemodels import PaiaiSrcMixin, PlatformMixin, VersionMixin
  8. from utils.url_utils import upload_file_url
  9. def upload_path(instance, old_filename):
  10. return 'file/{ym}/{stamp}{ext}'.format(
  11. ym=tc.local_string(format='%Y%m'),
  12. stamp=tc.local_timestamp(ms=True),
  13. ext=os.path.splitext(old_filename)[1].lower(),
  14. )
  15. class LatestAppInfo(BaseModelMixin, PaiaiSrcMixin):
  16. latest_adr_version_code = models.IntegerField(_(u'latest_adr_version_code'), default=0, help_text=u'最新安卓版本号')
  17. latest_adr_version_name = models.CharField(_(u'latest_adr_version_name'), max_length=255, blank=True, null=True, help_text=u'最新安卓版本名')
  18. latest_adr_app = models.FileField(_(u'latest_adr_app'), upload_to=upload_path, blank=True, null=True, help_text=u'最新版安卓 APP')
  19. latest_adr_url = models.URLField(_(u'latest_adr_url'), max_length=255, blank=True, null=True, help_text=u'最新版 APP 链接')
  20. latest_ios_version_code = models.IntegerField(_(u'latest_ios_version_code'), default=0, help_text=u'最新 iOS 版本号')
  21. latest_ios_version_name = models.CharField(_(u'latest_ios_version_name'), max_length=255, blank=True, null=True, help_text=u'最新 iOS 版本名')
  22. latest_ios_url = models.URLField(_(u'latest_ios_url'), max_length=255, blank=True, null=True, help_text=u'最新版 iOS 链接')
  23. class Meta:
  24. verbose_name = _('latestappinfo')
  25. verbose_name_plural = _('latestappinfo')
  26. def __unicode__(self):
  27. return u'{0.pk}'.format(self)
  28. @property
  29. def final_latest_adr_url(self):
  30. return self.latest_adr_url or upload_file_url(self.latest_adr_app)
  31. @property
  32. def data(self):
  33. return {
  34. 'latest_adr_version_code': self.latest_adr_version_code,
  35. 'latest_adr_version_name': self.latest_adr_version_name,
  36. 'latest_adr_url': self.final_latest_adr_url,
  37. 'latest_ios_version_code': self.latest_ios_version_code,
  38. 'latest_ios_version_name': self.latest_ios_version_name,
  39. 'latest_ios_url': self.latest_ios_url,
  40. }
  41. class PatchInfo(BaseModelMixin, PlatformMixin, PaiaiSrcMixin):
  42. version = models.CharField(_(u'version'), max_length=255, blank=True, null=True, help_text=u'版本(1.0.0)')
  43. patch = models.FileField(_(u'patch'), upload_to=upload_path, blank=True, null=True, help_text=u'补丁')
  44. class Meta:
  45. verbose_name = _('patchinfo')
  46. verbose_name_plural = _('patchinfo')
  47. def __unicode__(self):
  48. return u'{0.pk}'.format(self)
  49. @property
  50. def patch_url(self):
  51. return upload_file_url(self.patch)
  52. @property
  53. def data(self):
  54. return {
  55. 'patch_url': self.patch_url,
  56. }
  57. class APPSettingsInfo(BaseModelMixin, PlatformMixin, PaiaiSrcMixin):
  58. channel = models.CharField(_(u'channel'), max_length=255, blank=True, null=True, help_text=u'渠道')
  59. version = models.CharField(_(u'version'), max_length=255, blank=True, null=True, help_text=u'版本(1.0.0)')
  60. online = models.BooleanField(_(u'online'), default=True, help_text=u'是否上线')
  61. class Meta:
  62. verbose_name = _('appsettingsinfo')
  63. verbose_name_plural = _('appsettingsinfo')
  64. def __unicode__(self):
  65. return u'{0.pk}'.format(self)
  66. @property
  67. def data(self):
  68. return {
  69. 'online': self.online,
  70. }
  71. class SplashInfo(BaseModelMixin, PaiaiSrcMixin):
  72. splash_image = models.ImageField(_(u'splash_image'), upload_to=upload_path, blank=True, null=True, help_text=u'启动页面图片')
  73. spalash_image_airtime = models.DateTimeField(_(u'spalash_image_airtime'), blank=True, null=True, help_text=u'启动页面图片开始日期')
  74. spalash_image_deadline = models.DateTimeField(_(u'spalash_image_deadline'), blank=True, null=True, help_text=u'启动页面图片截止日期')
  75. class Meta:
  76. verbose_name = _('splashinfo')
  77. verbose_name_plural = _('splashinfo')
  78. def __unicode__(self):
  79. return u'{0.pk}'.format(self)
  80. @property
  81. def splash_image_url(self):
  82. return upload_file_url(self.splash_image)
  83. @property
  84. def data(self):
  85. return {
  86. 'splash_image_url': self.splash_image_url,
  87. 'spalash_image_airtime': self.spalash_image_airtime,
  88. 'spalash_image_deadline': self.spalash_image_deadline,
  89. }
  90. class FeedbackInfo(BaseModelMixin, PaiaiSrcMixin):
  91. user_id = models.CharField(_(u'user_id'), max_length=255, blank=True, null=True, help_text=u'用户唯一标识')
  92. feedback = models.TextField(_(u'feedback'), blank=True, null=True, help_text=u'用户反馈')
  93. class Meta:
  94. verbose_name = _('feedbackinfo')
  95. verbose_name_plural = _('feedbackinfo')
  96. def __unicode__(self):
  97. return u'{0.pk}'.format(self)
  98. class GuestEntranceControlInfo(BaseModelMixin, PlatformMixin, VersionMixin, PaiaiSrcMixin):
  99. class Meta:
  100. verbose_name = _('guestentrancecontrolinfo')
  101. verbose_name_plural = _('guestentrancecontrolinfo')
  102. def __unicode__(self):
  103. return u'{0.pk}'.format(self)
  104. @property
  105. def data(self):
  106. return {
  107. 'platform': self.platform,
  108. 'min_adr': self.min_adr,
  109. 'min_ios': self.min_ios,
  110. 'max_adr': self.max_adr,
  111. 'max_ios': self.max_ios,
  112. }
  113. class BoxProgramVersionInfo(BaseModelMixin):
  114. srv_version_code = models.IntegerField(_(u'srv_version_code'), default=0, help_text=u'Box Server 版本号')
  115. srv_version_name = models.CharField(_(u'srv_version_name'), max_length=255, blank=True, null=True, help_text=u'Box Server 版本名')
  116. srv_sha1 = models.CharField(_(u'srv_sha1'), max_length=255, blank=True, null=True, help_text=u'Box Server Commit SHA1')
  117. proc_version_code = models.IntegerField(_(u'proc_version_code'), default=0, help_text=u'Box Proc 版本号')
  118. proc_version_name = models.CharField(_(u'proc_version_name'), max_length=255, blank=True, null=True, help_text=u'Box Proc 版本名')
  119. proc_sha1 = models.CharField(_(u'proc_sha1'), max_length=255, blank=True, null=True, help_text=u'Box Proc Commit SHA1')
  120. class Meta:
  121. verbose_name = _('boxprogramversioninfo')
  122. verbose_name_plural = _('boxprogramversioninfo')
  123. def __unicode__(self):
  124. return u'{0.pk}'.format(self)
  125. @property
  126. def data(self):
  127. return {
  128. 'srv_version_code': self.srv_version_code,
  129. 'srv_version_name': self.srv_version_name,
  130. 'srv_sha1': self.srv_sha1,
  131. 'proc_version_code': self.proc_version_code,
  132. 'proc_version_name': self.proc_version_name,
  133. 'proc_sha1': self.proc_sha1,
  134. }