@@ -3,8 +3,9 @@ |
||
| 3 | 3 |
from __future__ import division |
| 4 | 4 |
|
| 5 | 5 |
from django_response import response |
| 6 |
+from paginator import pagination |
|
| 6 | 7 |
|
| 7 |
-from registration.models import CourseRegisterInfo |
|
| 8 |
+from registration.models import CourseRegisterInfo, UserCourseRegisterInfo |
|
| 8 | 9 |
|
| 9 | 10 |
|
| 10 | 11 |
def course_register(request): |
@@ -14,6 +15,34 @@ def course_register(request): |
||
| 14 | 15 |
course_name = request.POST.get('course_name', '')
|
| 15 | 16 |
fields = request.POST.get('fields', [])
|
| 16 | 17 |
|
| 17 |
- CourseRegisterInfo.objects.create(user_id=user_id, field_id=field_id, course_id=course_id, course_name=course_name, fields=fields) |
|
| 18 |
+ CourseRegisterInfo.objects.update_or_create(user_id=user_id, field_id=field_id, course_id=course_id, defaults={
|
|
| 19 |
+ 'course_name': course_name, |
|
| 20 |
+ 'fields': fields, |
|
| 21 |
+ }) |
|
| 22 |
+ |
|
| 23 |
+ registers = CourseRegisterInfo.objects.filter(user_id=user_id, course_id=course_id, status=True) |
|
| 24 |
+ registers = [register.data for register in registers] |
|
| 25 |
+ |
|
| 26 |
+ UserCourseRegisterInfo.objects.update_or_create(user_id, course_id, defaults={
|
|
| 27 |
+ 'course_name': course_name, |
|
| 28 |
+ 'fields': registers, |
|
| 29 |
+ }) |
|
| 18 | 30 |
|
| 19 | 31 |
return response() |
| 32 |
+ |
|
| 33 |
+ |
|
| 34 |
+def course_register_list(request): |
|
| 35 |
+ course_id = request.POST.get('course_id', '')
|
|
| 36 |
+ page = request.POST.get('page', 1)
|
|
| 37 |
+ num = request.POST.get('num', 20)
|
|
| 38 |
+ |
|
| 39 |
+ registers = UserCourseRegisterInfo.objects.filter(course_id=course_id, status=True).order_by('-pk')
|
|
| 40 |
+ count = registers.count() |
|
| 41 |
+ registers, left = pagination(registers, page, num) |
|
| 42 |
+ registers = [register.data for register in registers] |
|
| 43 |
+ |
|
| 44 |
+ return response(data={
|
|
| 45 |
+ 'logs': registers, |
|
| 46 |
+ 'count': count, |
|
| 47 |
+ 'left': left, |
|
| 48 |
+ }) |
@@ -56,4 +56,5 @@ urlpatterns += [ |
||
| 56 | 56 |
|
| 57 | 57 |
urlpatterns += [ |
| 58 | 58 |
url(r'^course/register$', course_register_views.course_register, name='course_register'), |
| 59 |
+ url(r'^course/register/list$', course_register_views.course_register_list, name='course_register_list'), |
|
| 59 | 60 |
] |
@@ -6,7 +6,7 @@ from django.contrib.auth.hashers import make_password |
||
| 6 | 6 |
|
| 7 | 7 |
from api.wx_views import get_course_field_limit_scene_qrcode_url |
| 8 | 8 |
from registration.models import (BranchCampusAdministratorInfo, BranchCampusInfo, CourseInfo, CourseRegisterFieldInfo, |
| 9 |
- CourseRegisterFieldPoolInfo, CourseRegisterInfo) |
|
| 9 |
+ CourseRegisterFieldPoolInfo, CourseRegisterInfo, UserCourseRegisterInfo) |
|
| 10 | 10 |
|
| 11 | 11 |
|
| 12 | 12 |
class BranchCampusInfoAdmin(admin.ModelAdmin): |
@@ -47,9 +47,14 @@ class CourseRegisterInfoAdmin(admin.ModelAdmin): |
||
| 47 | 47 |
list_display = ('user_id', 'field_id', 'course_id', 'course_name', 'fields', 'updated_at', 'created_at')
|
| 48 | 48 |
|
| 49 | 49 |
|
| 50 |
+class UserCourseRegisterInfoAdmin(admin.ModelAdmin): |
|
| 51 |
+ list_display = ('user_id', 'course_id', 'course_name', 'fields', 'updated_at', 'created_at')
|
|
| 52 |
+ |
|
| 53 |
+ |
|
| 50 | 54 |
admin.site.register(BranchCampusInfo, BranchCampusInfoAdmin) |
| 51 | 55 |
admin.site.register(BranchCampusAdministratorInfo, BranchCampusAdministratorInfoAdmin) |
| 52 | 56 |
admin.site.register(CourseInfo, CourseInfoAdmin) |
| 57 |
+admin.site.register(CourseRegisterFieldPoolInfo, CourseRegisterFieldPoolInfoAdmin) |
|
| 53 | 58 |
admin.site.register(CourseRegisterFieldInfo, CourseRegisterFieldInfoAdmin) |
| 54 | 59 |
admin.site.register(CourseRegisterInfo, CourseRegisterInfoAdmin) |
| 55 |
-admin.site.register(CourseRegisterFieldPoolInfo, CourseRegisterFieldPoolInfoAdmin) |
|
| 60 |
+admin.site.register(UserCourseRegisterInfo, UserCourseRegisterInfoAdmin) |
@@ -180,16 +180,60 @@ class CourseRegisterFieldInfo(BaseModelMixin): |
||
| 180 | 180 |
class CourseRegisterInfo(BaseModelMixin): |
| 181 | 181 |
user_id = models.CharField(_('user_id'), max_length=32, blank=True, null=True, help_text='用户唯一标识', db_index=True)
|
| 182 | 182 |
|
| 183 |
- field_id = models.CharField(_('field_id'), max_length=32, blank=True, null=True, help_text='字段唯一标识', db_index=True)
|
|
| 184 |
- |
|
| 185 | 183 |
course_id = models.CharField(_('course_id'), max_length=32, blank=True, null=True, help_text='课程唯一标识', db_index=True)
|
| 186 | 184 |
course_name = models.CharField(_('course_name'), max_length=255, blank=True, null=True, help_text='课程名称')
|
| 187 | 185 |
|
| 186 |
+ field_id = models.CharField(_('field_id'), max_length=32, blank=True, null=True, help_text='字段唯一标识', db_index=True)
|
|
| 187 |
+ |
|
| 188 | 188 |
fields = JSONField(_('fields'), default=[], blank=True, null=True, help_text='字段信息')
|
| 189 | 189 |
|
| 190 | 190 |
class Meta: |
| 191 | 191 |
verbose_name = _('课程报名信息')
|
| 192 | 192 |
verbose_name_plural = _('课程报名信息')
|
| 193 | 193 |
|
| 194 |
+ unique_together = ( |
|
| 195 |
+ ('user_id', 'course_id', 'field_id'),
|
|
| 196 |
+ ) |
|
| 197 |
+ |
|
| 198 |
+ def __unicode__(self): |
|
| 199 |
+ return '%d' % self.pk |
|
| 200 |
+ |
|
| 201 |
+ @property |
|
| 202 |
+ def data(self): |
|
| 203 |
+ return {
|
|
| 204 |
+ 'field_id': self.field_id, |
|
| 205 |
+ 'course_id': self.course_id, |
|
| 206 |
+ 'course_name': self.course_name, |
|
| 207 |
+ 'fields': self.fields, |
|
| 208 |
+ } |
|
| 209 |
+ |
|
| 210 |
+ |
|
| 211 |
+class UserCourseRegisterInfo(BaseModelMixin): |
|
| 212 |
+ user_id = models.CharField(_('user_id'), max_length=32, blank=True, null=True, help_text='用户唯一标识', db_index=True)
|
|
| 213 |
+ |
|
| 214 |
+ course_id = models.CharField(_('course_id'), max_length=32, blank=True, null=True, help_text='课程唯一标识', db_index=True)
|
|
| 215 |
+ course_name = models.CharField(_('course_name'), max_length=255, blank=True, null=True, help_text='课程名称')
|
|
| 216 |
+ |
|
| 217 |
+ # {
|
|
| 218 |
+ # 'field_id': '', |
|
| 219 |
+ # 'fields': [] |
|
| 220 |
+ # } |
|
| 221 |
+ fields = JSONField(_('fields'), default=[], blank=True, null=True, help_text='字段信息')
|
|
| 222 |
+ |
|
| 223 |
+ class Meta: |
|
| 224 |
+ verbose_name = _('用户课程报名信息')
|
|
| 225 |
+ verbose_name_plural = _('用户课程报名信息')
|
|
| 226 |
+ |
|
| 227 |
+ unique_together = ( |
|
| 228 |
+ ('user_id', 'course_id'),
|
|
| 229 |
+ ) |
|
| 230 |
+ |
|
| 194 | 231 |
def __unicode__(self): |
| 195 | 232 |
return '%d' % self.pk |
| 233 |
+ |
|
| 234 |
+ @property |
|
| 235 |
+ def data(self): |
|
| 236 |
+ return {
|
|
| 237 |
+ 'user_id': self.user_id, |
|
| 238 |
+ 'fields': self.fields, |
|
| 239 |
+ } |