| @@ -68,12 +68,14 @@ class UserInfo(CreateUpdateMixin): | ||
| 68 | 68 | ACTIVATED = 1 | 
| 69 | 69 | DISABLED = 2 | 
| 70 | 70 | DELETED = 3 | 
| 71 | + ASSIGN = 10 | |
| 71 | 72 |  | 
| 72 | 73 | USER_STATUS = ( | 
| 73 | 74 | (UNVERIFIED, u'未验证'), | 
| 74 | 75 | (ACTIVATED, u'已激活'), | 
| 75 | 76 | (DISABLED, u'已禁用'), | 
| 76 | 77 | (DELETED, u'已删除'), | 
| 78 | + (ASSIGN, u'已分配'), | |
| 77 | 79 | ) | 
| 78 | 80 |  | 
| 79 | 81 | MALE = 0 | 
| @@ -15,6 +15,7 @@ from utils.thumbnail_utils import make_thumb | ||
| 15 | 15 | from utils.ip_utils import ip_addr | 
| 16 | 16 |  | 
| 17 | 17 | from curtail_uuid import CurtailUUID | 
| 18 | + | |
| 18 | 19 | from TimeConvert import TimeConvert as tc | 
| 19 | 20 |  | 
| 20 | 21 | import os | 
| @@ -174,6 +175,7 @@ def group_join_api(request): | ||
| 174 | 175 | nickname=nickname or user.username, | 
| 175 | 176 | admin=False, | 
| 176 | 177 | user_status=GroupUserInfo.PASSED, | 
| 178 | + passed_at=tc.utc_datetime(), | |
| 177 | 179 | ) | 
| 178 | 180 |  | 
| 179 | 181 |      return JsonResponse({ | 
| @@ -8,14 +8,18 @@ from django.shortcuts import render, redirect | ||
| 8 | 8 |  | 
| 9 | 9 | from rest_framework import viewsets | 
| 10 | 10 |  | 
| 11 | -from account.models import LensmanInfo | |
| 11 | +from account.models import LensmanInfo, UserInfo | |
| 12 | +from group.models import GroupInfo, GroupUserInfo, GroupPhotoInfo | |
| 12 | 13 | from photo.models import UUIDInfo, PhotosInfo | 
| 13 | 14 | from photo.serializers import PhotosInfoSerializer | 
| 14 | 15 |  | 
| 16 | +from utils.ip_utils import ip_addr | |
| 15 | 17 | from utils.watermark_utils import watermark_wrap | 
| 16 | 18 |  | 
| 17 | 19 | from curtail_uuid import CurtailUUID | 
| 18 | 20 |  | 
| 21 | +from TimeConvert import TimeConvert as tc | |
| 22 | + | |
| 19 | 23 | import os | 
| 20 | 24 | import shortuuid | 
| 21 | 25 |  | 
| @@ -117,6 +121,53 @@ def upload_photo(request): | ||
| 117 | 121 |  | 
| 118 | 122 |  | 
| 119 | 123 | def session_detail_api(request, session): | 
| 124 | +    user_id = request.POST.get('user_id', '') | |
| 125 | + | |
| 126 | + try: | |
| 127 | + user = UserInfo.objects.get(user_id=user_id) | |
| 128 | + user_id = user.user_id | |
| 129 | + except UserInfo.DoesNotExist: | |
| 130 | + user_id = CurtailUUID.uuid(UserInfo, 'user_id') | |
| 131 | + user = UserInfo.objects.create( | |
| 132 | + user_id=user_id, | |
| 133 | + user_status=UserInfo.ASSIGN, | |
| 134 | + signup_ip=ip_addr(request), | |
| 135 | + ) | |
| 136 | + | |
| 137 | + try: | |
| 138 | + group = GroupInfo.objects.get(session_id=session) | |
| 139 | + group_id = group.group_id | |
| 140 | + group_photo = GroupPhotoInfo.objects.filter(group_id=group_id).last() | |
| 141 | + if not GroupUserInfo.objects.filter( | |
| 142 | + group_id=group_id, | |
| 143 | + user_id=user_id | |
| 144 | + ).exists(): | |
| 145 | + GroupUserInfo.objects.create( | |
| 146 | + group_id=group_id, | |
| 147 | + user_id=user_id, | |
| 148 | + current_id=group_photo and group_photo.id or -1, | |
| 149 | + nickname=user.username, | |
| 150 | + admin=False, | |
| 151 | + user_status=GroupUserInfo.PASSED, | |
| 152 | + passed_at=tc.utc_datetime(), | |
| 153 | + ) | |
| 154 | + except GroupInfo.DoesNotExist: | |
| 155 | + group_id = CurtailUUID.uuid(GroupInfo, 'group_id') | |
| 156 | + group = GroupInfo.objects.create( | |
| 157 | + group_id=group_id, | |
| 158 | + admin_id=user_id, | |
| 159 | + group_from=GroupInfo.SESSION_GROUP, | |
| 160 | + session_id=session, | |
| 161 | + ) | |
| 162 | + GroupUserInfo.objects.create( | |
| 163 | + group_id=group_id, | |
| 164 | + user_id=user_id, | |
| 165 | + nickname=user.username, | |
| 166 | + admin=True, | |
| 167 | + user_status=GroupUserInfo.PASSED, | |
| 168 | + passed_at=tc.utc_datetime(), | |
| 169 | + ) | |
| 170 | + | |
| 120 | 171 | photos = PhotosInfo.objects.filter(session_id=session) | 
| 121 | 172 |      return JsonResponse({ | 
| 122 | 173 | 'status': 200, | 
| @@ -124,6 +175,10 @@ def session_detail_api(request, session): | ||
| 124 | 175 |          'data': { | 
| 125 | 176 | 'count': photos.count(), | 
| 126 | 177 | 'photos': [p.detail for p in photos], | 
| 178 | + 'group_id': group_id, | |
| 179 | + 'group': group.data, | |
| 180 | + 'user_id': user_id, | |
| 181 | + 'users': group.users(user_id), | |
| 127 | 182 | } | 
| 128 | 183 | }) | 
| 129 | 184 |  | 
| @@ -1,4 +1,4 @@ | ||
| 1 | -CodeConvert==2.0.3 | |
| 1 | +CodeConvert==2.0.4 | |
| 2 | 2 | Django==1.8.4 | 
| 3 | 3 | MySQL-python==1.2.5 | 
| 4 | 4 | TimeConvert==1.1.6 |