update session_detail_api

Brightcells 9 gadi atpakaļ
vecāks
revīzija
d3798a39f1
4 mainītis faili ar 61 papildinājumiem un 2 dzēšanām
  1. 2 0
      account/models.py
  2. 2 0
      group/views.py
  3. 56 1
      photo/views.py
  4. 1 1
      requirements.txt

+ 2 - 0
account/models.py

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

+ 2 - 0
group/views.py

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

+ 56 - 1
photo/views.py

@@ -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 - 1
requirements.txt

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