拍爱

models.py 6.7KB

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