暫無描述

models.py 4.2KB

    # -*- coding: utf-8 -*- from django.conf import settings from django.db import models from django.utils.translation import ugettext_lazy as _ from pai2.basemodels import CreateUpdateMixin class GroupInfo(CreateUpdateMixin): APP_GROUP = 0 SESSION_GROUP = 1 GROUP_FROM = ( (APP_GROUP, u'APP 建群'), (SESSION_GROUP, u'SESSION 建群'), ) group_id = models.CharField(_(u'group_id'), max_length=255, blank=True, null=True, help_text=u'群组唯一标识', db_index=True, unique=True) group_name = models.CharField(_(u'group_name'), max_length=255, blank=True, null=True, help_text=u'群组名称') group_desc = models.TextField(_(u'group_desc'), blank=True, null=True, help_text=u'群组描述') group_from = models.IntegerField(_(u'group_from'), choices=GROUP_FROM, default=APP_GROUP, help_text=u'群组来源') session_id = models.CharField(_(u'session_id'), max_length=255, blank=True, null=True, help_text=u'照片组唯一标识', db_index=True) group_lock = models.BooleanField(_(u'group_lock'), default=False, help_text=u'群组锁定') class Meta: verbose_name = _(u'groupinfo') verbose_name_plural = _(u'groupinfo') def __unicode__(self): return unicode(self.group_id) @property def users(self): all_users = GroupUserInfo.objects.filter(group_id=self.group_id) applying_users = all_users.filter(user_status=GroupUserInfo.APPLYING) passed_users = all_users.filter(user_status=GroupUserInfo.PASSED) return { 'applying_count': applying_users.count(), 'passed_count': passed_users.count(), 'applying': [applying.user_info for applying in applying_users], 'passed': [passed.user_info for passed in passed_users], } class GroupUserInfo(CreateUpdateMixin): APPLYING = 0 PASSED = 1 REFUSED = 2 USER_STATUS = ( (APPLYING, u'申请中'), (PASSED, u'已通过'), (REFUSED, u'已拒绝'), ) group_id = models.CharField(_(u'group_id'), max_length=255, blank=True, null=True, help_text=u'群组唯一标识', db_index=True) user_id = models.CharField(_(u'user_id'), max_length=255, blank=True, null=True, help_text=u'用户唯一标识') nickname = models.CharField(_(u'nickname'), max_length=255, blank=True, null=True, help_text=u'用户群组昵称') admin = models.BooleanField(_(u'admin'), default=False, help_text=u'群组管理员') user_status = models.IntegerField(_(u'user_status'), choices=USER_STATUS, default=APPLYING) passed_at = models.DateTimeField(_(u'passed_at'), blank=True, null=True, help_text=_(u'通过时间')) refused_at = models.DateTimeField(_(u'refused_at'), blank=True, null=True, help_text=_(u'拒绝时间')) class Meta: verbose_name = _(u'groupuserinfo') verbose_name_plural = _(u'groupuserinfo') def __unicode__(self): return unicode(self.pk) @property def user_info(self): return { 'user_id': self.user_id, 'nickname': self.nickname, 'admin': self.admin, } class GroupPhotoInfo(CreateUpdateMixin): group_id = models.CharField(_(u'group_id'), max_length=255, blank=True, null=True, help_text=u'群组唯一标识', db_index=True) user_id = models.CharField(_(u'user_id'), max_length=255, blank=True, null=True, help_text=u'用户唯一标识') nickname = models.CharField(_(u'nickname'), max_length=255, blank=True, null=True, help_text=u'用户群组昵称') photo_path = models.CharField(_(u'photo_path'), max_length=255, blank=True, null=True, help_text=u'照片存放路径') photo_thumbnail_path = models.CharField(_(u'photo_thumbnail_path'), max_length=255, blank=True, null=True, help_text=u'照片缩略图存放路径') class Meta: verbose_name = _(u'groupuserinfo') verbose_name_plural = _(u'groupuserinfo') def __unicode__(self): return unicode(self.pk) @property def photo_url(self): return u'{0}/{1}'.format(settings.IMG_DOMAIN, self.photo_path) if self.photo_path else '' @property def photo_thumbnail_url(self): return u'{0}/{1}'.format(settings.IMG_DOMAIN, self.photo_thumbnail_path) if self.photo_thumbnail_path else ''