@@ -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 |
|