拍爱

models.py 5.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. # -*- coding: utf-8 -*-
  2. from django.conf import settings
  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 group.models import GroupPhotoInfo
  8. from pai2.basemodels import PaiaiSrcMixin
  9. class UserMessageInfo(BaseModelMixin):
  10. SYSTEM = 'system'
  11. COMMENT = 'comment'
  12. THUMBUP = 'thumbup'
  13. MESSAGE_TYPE = (
  14. (SYSTEM, u'系统'),
  15. (COMMENT, u'评论'),
  16. (THUMBUP, u'点赞'),
  17. )
  18. MESSAGE_TYPE_INFO = [
  19. {
  20. 'msg_type': SYSTEM,
  21. 'msg_type_desc': u'系统',
  22. 'msg_avatar': settings.SYSTEM_MESSAGE_AVATAR
  23. }, {
  24. 'msg_type': COMMENT,
  25. 'msg_type_desc': u'评论',
  26. 'msg_avatar': settings.COMMENT_MESSAGE_AVATAR
  27. }, {
  28. 'msg_type': THUMBUP,
  29. 'msg_type_desc': u'点赞',
  30. 'msg_avatar': settings.THUMBUP_MESSAGE_AVATAR
  31. }
  32. ]
  33. from_uid = models.CharField(_(u'from_uid'), max_length=32, blank=True, null=True, help_text=u'发送消息用户唯一标识', db_index=True)
  34. from_nickname = models.CharField(_(u'from_nickname'), max_length=255, blank=True, null=True, help_text=u'发送消息用户昵称')
  35. from_avatar = models.CharField(_(u'from_avatar'), max_length=255, blank=True, null=True, help_text=u'发送消息用户头像')
  36. to_uid = models.CharField(_(u'to_uid'), max_length=32, blank=True, null=True, help_text=u'接收消息用户唯一标识', db_index=True)
  37. group_id = models.CharField(_(u'group_id'), max_length=32, blank=True, null=True, help_text=u'群组唯一标识', db_index=True)
  38. photo_id = models.CharField(_(u'photo_id'), max_length=32, blank=True, null=True, help_text=u'飞图唯一标识', db_index=True)
  39. # TODO: IntegerField?
  40. msg_type = models.CharField(_(u'msg_type'), max_length=8, default='system', help_text=u'消息类型', db_index=True)
  41. msg_title = models.CharField(_(u'msg_title'), max_length=255, blank=True, null=True, help_text=u'消息标题')
  42. msg_content = models.TextField(_(u'msg_content'), blank=True, null=True, help_text=u'消息内容')
  43. read = models.BooleanField(_(u'read'), default=False, help_text=u'消息是否已读')
  44. class Meta:
  45. verbose_name = _('usermessageinfo')
  46. verbose_name_plural = _('usermessageinfo')
  47. def __unicode__(self):
  48. return unicode(self.pk)
  49. def msg_info(self, user_id=None):
  50. try:
  51. group_photo = GroupPhotoInfo.objects.get(photo_id=self.photo_id)
  52. except GroupPhotoInfo.DoesNotExist:
  53. group_photo = {}
  54. return {
  55. 'pk': self.pk,
  56. 'from_uid': self.from_uid,
  57. 'from_nickname': self.from_nickname,
  58. 'from_avatar': self.from_avatar,
  59. 'group_id': self.group_id,
  60. 'photo_id': self.photo_id,
  61. 'group_photo_info': group_photo and group_photo.photo_info(user_id),
  62. 'msg_title': self.msg_title,
  63. 'msg_content': self.msg_content,
  64. 'read': self.read,
  65. 'created_at': tc.remove_microsecond(self.created_at),
  66. }
  67. class SystemMessageInfo(BaseModelMixin, PaiaiSrcMixin):
  68. title = models.CharField(_(u'title'), max_length=255, help_text=u'系统消息标题')
  69. content = models.TextField(_(u'content'), blank=True, null=True, help_text=u'系统消息内容')
  70. url = models.CharField(_(u'url'), max_length=255, blank=True, null=True, help_text=u'系统消息链接')
  71. class Meta:
  72. verbose_name = _('systemmessageinfo')
  73. verbose_name_plural = _('systemmessageinfo')
  74. def __unicode__(self):
  75. return unicode(self.pk)
  76. def msg_info(self, user_id=None):
  77. return {
  78. 'pk': self.pk,
  79. 'title': self.title,
  80. 'content': self.content,
  81. 'url': self.url,
  82. 'read': SystemMessageReadInfo.objects.filter(user_id=user_id, msg_id=self.pk, status=True).exists(),
  83. }
  84. class SystemMessageReadInfo(BaseModelMixin):
  85. user_id = models.CharField(_(u'user_id'), max_length=32, blank=True, null=True, help_text=u'用户唯一标识', db_index=True)
  86. msg_id = models.CharField(_(u'msg_id'), max_length=32, blank=True, null=True, help_text=u'系统消息唯一标识', db_index=True)
  87. class Meta:
  88. verbose_name = _('systemmessagereadinfo')
  89. verbose_name_plural = _('systemmessagereadinfo')
  90. unique_together = (('user_id', 'msg_id'),)
  91. def __unicode__(self):
  92. return unicode(self.pk)
  93. class SystemMessageDeleteInfo(BaseModelMixin):
  94. user_id = models.CharField(_(u'user_id'), max_length=32, blank=True, null=True, help_text=u'用户唯一标识', db_index=True)
  95. msg_id = models.CharField(_(u'msg_id'), max_length=32, blank=True, null=True, help_text=u'系统消息唯一标识', db_index=True)
  96. class Meta:
  97. verbose_name = _('systemmessagedeleteinfo')
  98. verbose_name_plural = _('systemmessagedeleteinfo')
  99. unique_together = (('user_id', 'msg_id'),)
  100. def __unicode__(self):
  101. return unicode(self.pk)