@@ -11,7 +11,7 @@ class GroupInfoAdmin(admin.ModelAdmin):  | 
            ||
| 11 | 11 | 
                 | 
            
| 12 | 12 | 
                 | 
            
| 13 | 13 | 
                class GroupUserInfoAdmin(admin.ModelAdmin):  | 
            
| 14 | 
                -    list_display = ('group_id', 'user_id', 'nickname', 'admin', 'user_status', 'passed_at', 'refused_at', 'status', 'created_at', 'updated_at')
               | 
            |
| 14 | 
                +    list_display = ('group_id', 'user_id', 'current_id', 'nickname', 'admin', 'user_status', 'passed_at', 'refused_at', 'status', 'created_at', 'updated_at')
               | 
            |
| 15 | 15 | 
                     list_filter = ('user_status', 'status')
               | 
            
| 16 | 16 | 
                 | 
            
| 17 | 17 | 
                 | 
            
                @@ -0,0 +1,19 @@  | 
            ||
| 1 | 
                +# -*- coding: utf-8 -*-  | 
            |
| 2 | 
                +from __future__ import unicode_literals  | 
            |
| 3 | 
                +  | 
            |
| 4 | 
                +from django.db import models, migrations  | 
            |
| 5 | 
                +  | 
            |
| 6 | 
                +  | 
            |
| 7 | 
                +class Migration(migrations.Migration):  | 
            |
| 8 | 
                +  | 
            |
| 9 | 
                + dependencies = [  | 
            |
| 10 | 
                +        ('group', '0004_auto_20151216_2337'),
               | 
            |
| 11 | 
                + ]  | 
            |
| 12 | 
                +  | 
            |
| 13 | 
                + operations = [  | 
            |
| 14 | 
                + migrations.AddField(  | 
            |
| 15 | 
                + model_name='groupuserinfo',  | 
            |
| 16 | 
                + name='current_id',  | 
            |
| 17 | 
                + field=models.IntegerField(default=-1, help_text='\u5f53\u524d\u7fa4\u7ec4\u7167\u7247ID', verbose_name='current_id'),  | 
            |
| 18 | 
                + ),  | 
            |
| 19 | 
                + ]  | 
            
                @@ -81,6 +81,7 @@ class GroupUserInfo(CreateUpdateMixin):  | 
            ||
| 81 | 81 | 
                 | 
            
| 82 | 82 | 
                group_id = models.CharField(_(u'group_id'), max_length=255, blank=True, null=True, help_text=u'群组唯一标识', db_index=True)  | 
            
| 83 | 83 | 
                user_id = models.CharField(_(u'user_id'), max_length=255, blank=True, null=True, help_text=u'用户唯一标识')  | 
            
| 84 | 
                + current_id = models.IntegerField(_(u'current_id'), default=-1, help_text=u'当前群组照片ID')  | 
            |
| 84 | 85 | 
                nickname = models.CharField(_(u'nickname'), max_length=255, blank=True, null=True, help_text=u'用户群组昵称')  | 
            
| 85 | 86 | 
                admin = models.BooleanField(_(u'admin'), default=False, help_text=u'群组管理员')  | 
            
| 86 | 87 | 
                user_status = models.IntegerField(_(u'user_status'), choices=USER_STATUS, default=APPLYING)  | 
            
                @@ -14,7 +14,7 @@ class GroupInfoSerializer(serializers.HyperlinkedModelSerializer):  | 
            ||
| 14 | 14 | 
                class GroupUserInfoSerializer(serializers.HyperlinkedModelSerializer):  | 
            
| 15 | 15 | 
                class Meta:  | 
            
| 16 | 16 | 
                model = GroupUserInfo  | 
            
| 17 | 
                -        fields = ('group_id', 'user_id', 'nickname', 'admin', 'user_status', 'passed_at', 'refused_at', 'status', 'created_at', 'updated_at')
               | 
            |
| 17 | 
                +        fields = ('group_id', 'user_id', 'current_id', 'nickname', 'admin', 'user_status', 'passed_at', 'refused_at', 'status', 'created_at', 'updated_at')
               | 
            |
| 18 | 18 | 
                 | 
            
| 19 | 19 | 
                 | 
            
| 20 | 20 | 
                class GroupPhotoInfoSerializer(serializers.HyperlinkedModelSerializer):  | 
            
                @@ -163,9 +163,12 @@ def group_join_api(request):  | 
            ||
| 163 | 163 | 
                'message': u'重复加群申请',  | 
            
| 164 | 164 | 
                })  | 
            
| 165 | 165 | 
                 | 
            
| 166 | 
                + group_photo = GroupPhotoInfo.objects.filter(group_id=group_id).last()  | 
            |
| 167 | 
                +  | 
            |
| 166 | 168 | 
                GroupUserInfo.objects.create(  | 
            
| 167 | 169 | 
                group_id=group_id,  | 
            
| 168 | 170 | 
                user_id=user_id,  | 
            
| 171 | 
                + current_id=group_photo and group_photo.id or -1,  | 
            |
| 169 | 172 | 
                nickname=nickname or user.username,  | 
            
| 170 | 173 | 
                admin=False,  | 
            
| 171 | 174 | 
                user_status=GroupUserInfo.PASSED,  | 
            
                @@ -398,6 +401,14 @@ def flyimg_upload_api(request):  | 
            ||
| 398 | 401 | 
                'message': u'群组不存在',  | 
            
| 399 | 402 | 
                })  | 
            
| 400 | 403 | 
                 | 
            
| 404 | 
                + try:  | 
            |
| 405 | 
                + group_user = GroupUserInfo.objects.get(group_id=group_id, user_id=user_id, user_status=GroupUserInfo.PASSED)  | 
            |
| 406 | 
                + except GroupUserInfo.DoesNotExist:  | 
            |
| 407 | 
                +        return JsonResponse({
               | 
            |
| 408 | 
                + 'status': 4029,  | 
            |
| 409 | 
                + 'message': u'该用户不在群组',  | 
            |
| 410 | 
                + })  | 
            |
| 411 | 
                +  | 
            |
| 401 | 412 | 
                if photo:  | 
            
| 402 | 413 | 
                _, extension = os.path.splitext(photo.name)  | 
            
| 403 | 414 | 
                 | 
            
                @@ -423,7 +434,7 @@ def flyimg_upload_api(request):  | 
            ||
| 423 | 434 | 
                 | 
            
| 424 | 435 | 
                group_photos = GroupPhotoInfo.objects.filter(  | 
            
| 425 | 436 | 
                group_id=group_id,  | 
            
| 426 | 
                - pk__gt=current_id,  | 
            |
| 437 | 
                + pk__gt=max(current_id, group_user.current_id),  | 
            |
| 427 | 438 | 
                )  | 
            
| 428 | 439 | 
                latest_photo = group_photos.last()  | 
            
| 429 | 440 | 
                 | 
            
                @@ -104,7 +104,7 @@ DATABASES = {
               | 
            ||
| 104 | 104 | 
                # Internationalization  | 
            
| 105 | 105 | 
                # https://docs.djangoproject.com/en/1.8/topics/i18n/  | 
            
| 106 | 106 | 
                 | 
            
| 107 | 
                -LANGUAGE_CODE = 'zh_CN'  | 
            |
| 107 | 
                +LANGUAGE_CODE = 'zh-Hans'  | 
            |
| 108 | 108 | 
                 | 
            
| 109 | 109 | 
                TIME_ZONE = 'Asia/Shanghai'  | 
            
| 110 | 110 | 
                 |