@@ -6,7 +6,16 @@ from django_response import response |
||
| 6 | 6 |
from paginator import pagination |
| 7 | 7 |
|
| 8 | 8 |
from api.wx_views import get_course_field_limit_scene_qrcode_url |
| 9 |
-from registration.models import CourseRegisterFieldInfo |
|
| 9 |
+from registration.models import CourseRegisterFieldInfo, CourseRegisterFieldPoolInfo |
|
| 10 |
+ |
|
| 11 |
+ |
|
| 12 |
+def get_course_field_default(request): |
|
| 13 |
+ fields = CourseRegisterFieldPoolInfo.objects.filter(status=True) |
|
| 14 |
+ fields = [f.data for f in fields] |
|
| 15 |
+ |
|
| 16 |
+ return response(data={
|
|
| 17 |
+ 'fields': fields, |
|
| 18 |
+ }) |
|
| 10 | 19 |
|
| 11 | 20 |
|
| 12 | 21 |
def add_course_field(request): |
@@ -38,6 +38,8 @@ urlpatterns += [ |
||
| 38 | 38 |
] |
| 39 | 39 |
|
| 40 | 40 |
urlpatterns += [ |
| 41 |
+ url(r'^course/field/default$', course_field_views.get_course_field_default, name='get_course_field_default'), |
|
| 42 |
+ |
|
| 41 | 43 |
url(r'^course/field/add$', course_field_views.add_course_field, name='add_course_field'), |
| 42 | 44 |
url(r'^course/field/update$', course_field_views.update_course_field, name='update_course_field'), |
| 43 | 45 |
url(r'^course/field/get$', course_field_views.get_course_field, name='get_course_field'), |
@@ -92,6 +92,42 @@ class CourseInfo(BaseModelMixin): |
||
| 92 | 92 |
} |
| 93 | 93 |
|
| 94 | 94 |
|
| 95 |
+class CourseRegisterFieldPoolInfo(BaseModelMixin): |
|
| 96 |
+ INPUT = 'input' |
|
| 97 |
+ SELECT = 'select' |
|
| 98 |
+ FILE = 'file' |
|
| 99 |
+ |
|
| 100 |
+ FIELD_TYPE_TUPLE = ( |
|
| 101 |
+ (INPUT, 'input'), |
|
| 102 |
+ (SELECT, 'select'), |
|
| 103 |
+ (FILE, 'file'), |
|
| 104 |
+ ) |
|
| 105 |
+ |
|
| 106 |
+ # {
|
|
| 107 |
+ # "type": "input", # input, select, file |
|
| 108 |
+ # "name": "", |
|
| 109 |
+ # "options": ["男", "女"], # type=select |
|
| 110 |
+ # } |
|
| 111 |
+ field_type = models.CharField(_('field_type'), max_length=8, choices=FIELD_TYPE_TUPLE, default=INPUT, help_text='字段类型')
|
|
| 112 |
+ field_name = models.CharField(_('field_name'), max_length=32, blank=True, null=True, help_text='字段名称')
|
|
| 113 |
+ field_options = JSONField(_('field_options'), default=[], blank=True, null=True, help_text='字段选择')
|
|
| 114 |
+ |
|
| 115 |
+ class Meta: |
|
| 116 |
+ verbose_name = _('课程报名字段池信息')
|
|
| 117 |
+ verbose_name_plural = _('课程报名字段池信息')
|
|
| 118 |
+ |
|
| 119 |
+ def __unicode__(self): |
|
| 120 |
+ return '%d' % self.pk |
|
| 121 |
+ |
|
| 122 |
+ @property |
|
| 123 |
+ def data(self): |
|
| 124 |
+ return {
|
|
| 125 |
+ 'type': self.field_type, |
|
| 126 |
+ 'name': self.field_name, |
|
| 127 |
+ 'options': self.field_options, |
|
| 128 |
+ } |
|
| 129 |
+ |
|
| 130 |
+ |
|
| 95 | 131 |
class CourseRegisterFieldInfo(BaseModelMixin): |
| 96 | 132 |
field_id = ShortUUIDField(_('field_id'), max_length=32, blank=True, null=True, help_text='字段唯一标识', db_index=True, unique=True)
|
| 97 | 133 |
|