@@ -768,192 +768,6 @@ def record_warehouse(request, administrator): |
||
768 | 768 |
|
769 | 769 |
|
770 | 770 |
@check_admin |
771 |
-def member_activity_list(request, administrator): |
|
772 |
- activity_type = request.POST.get('activity_type', '') |
|
773 |
- title = request.POST.get('title', '') |
|
774 |
- start_time = request.POST.get('start_time', '') |
|
775 |
- end_time = request.POST.get('end_time', '') |
|
776 |
- page = request.POST.get('page', 1) |
|
777 |
- num = request.POST.get('num', 20) |
|
778 |
- activity_state = request.POST.get('activity_state', '') |
|
779 |
- activity_section = request.POST.get('activity_section', '') |
|
780 |
- |
|
781 |
- logs = MemberActivityInfo.objects.filter(status=True) |
|
782 |
- |
|
783 |
- if activity_type: |
|
784 |
- logs = logs.filter(activity_type=activity_type) |
|
785 |
- |
|
786 |
- if activity_section: |
|
787 |
- logs = logs.filter(activity_section=activity_section) |
|
788 |
- |
|
789 |
- if activity_state: |
|
790 |
- logs = logs.filter(activity_state=activity_state) |
|
791 |
- |
|
792 |
- if title: |
|
793 |
- logs = logs.filter(title__icontains=title) |
|
794 |
- |
|
795 |
- if start_time and end_time: |
|
796 |
- start_time = datetime.strptime(start_time, '%Y%m%d') |
|
797 |
- end_time = datetime.strptime(end_time + ' 23:59:59', '%Y%m%d %H:%M:%S') |
|
798 |
- logs = logs.filter(created_at__range=(start_time, end_time)) |
|
799 |
- |
|
800 |
- logs = logs.order_by('-pk') |
|
801 |
- |
|
802 |
- count = logs.count() |
|
803 |
- logs, left = pagination(logs, page, num) |
|
804 |
- logs = [log.admindata for log in logs] |
|
805 |
- |
|
806 |
- return response(200, 'Get Member Activity Record Success', u'获取会员活动成功', data={ |
|
807 |
- 'logs': logs, |
|
808 |
- 'left': left, |
|
809 |
- 'count': count |
|
810 |
- }) |
|
811 |
- |
|
812 |
- |
|
813 |
-@check_admin |
|
814 |
-def member_activity_detail(request, administrator): |
|
815 |
- activity_id = request.POST.get('activity_id', '') |
|
816 |
- |
|
817 |
- try: |
|
818 |
- log = MemberActivityInfo.objects.get(activity_id=activity_id) |
|
819 |
- except MemberActivityInfo.DoesNotExist: |
|
820 |
- return response(MemberActivityStatusCode.ACTIVITY_NOT_FOUND) |
|
821 |
- |
|
822 |
- return response(200, 'Get Member Activity Record Details Success', u'获取会员活动详情成功', data={ |
|
823 |
- 'log': log.admindetails, |
|
824 |
- }) |
|
825 |
- |
|
826 |
- |
|
827 |
-@check_admin |
|
828 |
-def member_activity_update(request, administrator): |
|
829 |
- activity_id = request.POST.get('activity_id', '') |
|
830 |
- activity_type = int(request.POST.get('activity_type', 0)) |
|
831 |
- activity_section = int(request.POST.get('activity_section', 3)) |
|
832 |
- title = request.POST.get('title', '') |
|
833 |
- subtitle = request.POST.get('subtitle', '') |
|
834 |
- start_date = tc.to_date(request.POST.get('start_date', '') or settings.DEFAULT_START_DATE) |
|
835 |
- end_date = date = tc.to_date(request.POST.get('end_date', '') or settings.DEFAULT_END_DATE) |
|
836 |
- start_display_date = tc.to_date(request.POST.get('start_display_date', '') or settings.DEFAULT_START_DATE) |
|
837 |
- end_display_date = tc.to_date(request.POST.get('end_display_date', '') or settings.DEFAULT_END_DATE) |
|
838 |
- city = request.POST.get('city', '') |
|
839 |
- location = request.POST.get('location', '') |
|
840 |
- integral = int(request.POST.get('integral', 0)) |
|
841 |
- is_slider = request.POST.get('is_slider', 0) |
|
842 |
- slider_image_path = request.POST.get('slider_image_path', '') |
|
843 |
- cover_path = request.POST.get('cover_path', '') |
|
844 |
- detail_image_path = request.POST.get('detail_image_path', '') |
|
845 |
- limit_image_num = int(request.POST.get('limit_image_num', 3)) |
|
846 |
- is_signup = request.POST.get('is_signup', 0) |
|
847 |
- group_share_max_integral = int(request.POST.get('share_max_integral', 0)) |
|
848 |
- group_share_integral = int(request.POST.get('share_integral', 0)) |
|
849 |
- content_rich_text = request.POST.get('content_rich_text', '') |
|
850 |
- share_h5_link = request.POST.get('share_h5_link', '') |
|
851 |
- activity_state = int(request.POST.get('activity_state', 0)) |
|
852 |
- poster_kv_img_url = request.POST.get('poster_kv_img_url', '') |
|
853 |
- poster_content = request.POST.get('poster_content', '') |
|
854 |
- contribution_content_placeholder = request.POST.get('contribution_content_placeholder', '') |
|
855 |
- |
|
856 |
- try: |
|
857 |
- log = MemberActivityInfo.objects.get(activity_id=activity_id, status=True) |
|
858 |
- except MemberActivityInfo.DoesNotExist: |
|
859 |
- return response(MemberActivityStatusCode.ACTIVITY_NOT_FOUND) |
|
860 |
- |
|
861 |
- log.activity_type = activity_type |
|
862 |
- log.activity_section = activity_section |
|
863 |
- log.title = title |
|
864 |
- log.subtitle = subtitle |
|
865 |
- log.date = date |
|
866 |
- log.start_date = start_date |
|
867 |
- log.end_date = end_date |
|
868 |
- log.start_display_date = start_display_date |
|
869 |
- log.end_display_date = end_display_date |
|
870 |
- log.city = city |
|
871 |
- log.location = location |
|
872 |
- log.integral = integral |
|
873 |
- log.is_slider = is_slider |
|
874 |
- log.slider_image = slider_image_path |
|
875 |
- log.cover = cover_path |
|
876 |
- log.image = detail_image_path |
|
877 |
- log.limit_image_num = limit_image_num |
|
878 |
- log.is_signup = is_signup |
|
879 |
- log.group_share_integral = group_share_integral |
|
880 |
- log.group_share_max_integral = group_share_max_integral |
|
881 |
- log.content_rich_text = content_rich_text |
|
882 |
- log.share_h5_link = share_h5_link |
|
883 |
- log.activity_state = activity_state |
|
884 |
- log.poster_kv_img_url = poster_kv_img_url |
|
885 |
- log.poster_content = poster_content |
|
886 |
- log.contribution_content_placeholder = contribution_content_placeholder |
|
887 |
- log.save() |
|
888 |
- |
|
889 |
- return response(200, 'MemberActivityInfo Update Success', u'会员活动更新成功') |
|
890 |
- |
|
891 |
- |
|
892 |
-@check_admin |
|
893 |
-def member_activity_create(request, administrator): |
|
894 |
- activity_type = int(request.POST.get('activity_type', 0)) |
|
895 |
- activity_section = int(request.POST.get('activity_section', 3)) |
|
896 |
- title = request.POST.get('title', '') |
|
897 |
- subtitle = request.POST.get('subtitle', '') |
|
898 |
- start_date = tc.to_date(request.POST.get('start_date', '') or settings.DEFAULT_START_DATE) |
|
899 |
- end_date = date = tc.to_date(request.POST.get('end_date', '') or settings.DEFAULT_END_DATE) |
|
900 |
- start_display_date = tc.to_date(request.POST.get('start_display_date', '') or settings.DEFAULT_START_DATE) |
|
901 |
- end_display_date = tc.to_date(request.POST.get('end_display_date', '') or settings.DEFAULT_END_DATE) |
|
902 |
- city = request.POST.get('city', '') |
|
903 |
- location = request.POST.get('location', '') |
|
904 |
- integral = int(request.POST.get('integral', 0)) |
|
905 |
- is_slider = request.POST.get('is_slider', 0) |
|
906 |
- slider_image_path = request.POST.get('slider_image_path', '') |
|
907 |
- cover_path = request.POST.get('cover_path', '') |
|
908 |
- detail_image_path = request.POST.get('detail_image_path', '') |
|
909 |
- limit_image_num = int(request.POST.get('limit_image_num', 3)) |
|
910 |
- is_signup = request.POST.get('is_signup', 0) |
|
911 |
- group_share_max_integral = int(request.POST.get('share_max_integral', 0)) |
|
912 |
- group_share_integral = int(request.POST.get('share_integral', 0)) |
|
913 |
- content_rich_text = request.POST.get('content_rich_text', '') |
|
914 |
- share_h5_link = request.POST.get('share_h5_link', '') |
|
915 |
- activity_state = int(request.POST.get('activity_state', 0)) |
|
916 |
- poster_kv_img_url = request.POST.get('poster_kv_img_url', '') |
|
917 |
- poster_content = request.POST.get('poster_content', '') |
|
918 |
- contribution_content_placeholder = request.POST.get('contribution_content_placeholder', '') |
|
919 |
- |
|
920 |
- act = MemberActivityInfo.objects.create( |
|
921 |
- brand_id=administrator.brand_id, |
|
922 |
- activity_type=activity_type, |
|
923 |
- activity_section=activity_section, |
|
924 |
- title=title, |
|
925 |
- subtitle=subtitle, |
|
926 |
- date=date, |
|
927 |
- start_date=start_date, |
|
928 |
- end_date=end_date, |
|
929 |
- start_display_date=start_display_date, |
|
930 |
- end_display_date=end_display_date, |
|
931 |
- city=city, |
|
932 |
- location=location, |
|
933 |
- integral=integral, |
|
934 |
- is_slider=is_slider, |
|
935 |
- slider_image=slider_image_path, |
|
936 |
- cover=cover_path, |
|
937 |
- image=detail_image_path, |
|
938 |
- limit_image_num=limit_image_num, |
|
939 |
- is_signup=is_signup, |
|
940 |
- group_share_max_integral=group_share_max_integral, |
|
941 |
- group_share_integral=group_share_integral, |
|
942 |
- content_rich_text=content_rich_text, |
|
943 |
- share_h5_link=share_h5_link, |
|
944 |
- activity_state=activity_state, |
|
945 |
- poster_kv_img_url=poster_kv_img_url, |
|
946 |
- poster_content=poster_content, |
|
947 |
- contribution_content_placeholder=contribution_content_placeholder, |
|
948 |
- is_upload_qiniu=True, |
|
949 |
- ) |
|
950 |
- |
|
951 |
- return response(200, 'MemberActivityInfo Create Success', u'会员活动创建成功', data={ |
|
952 |
- 'activity': act.admindetails |
|
953 |
- }) |
|
954 |
- |
|
955 |
- |
|
956 |
-@check_admin |
|
957 | 771 |
def member_activity_share_list(request, administrator): |
958 | 772 |
activity_id = request.POST.get('activity_id', '') |
959 | 773 |
page = int(request.POST.get('page', 1)) |
@@ -169,10 +169,6 @@ urlpatterns += [ |
||
169 | 169 |
url(r'^admin/member/goods/order/update$', admin_views.member_goods_order_update, name='member_goods_order_update'), |
170 | 170 |
url(r'^admin/member/goods/order/batch/update$', admin_views.member_goods_order_batch_update, name='member_goods_order_batch_update'), |
171 | 171 |
|
172 |
- url(r'^admin/member/activity/list$', admin_views.member_activity_list, name='member_activity_list'), |
|
173 |
- url(r'^admin/member/activity/details$', admin_views.member_activity_detail, name='member_activity_detail'), |
|
174 |
- url(r'^admin/member/activity/update$', admin_views.member_activity_update, name='member_activity_update'), |
|
175 |
- url(r'^admin/member/activity/create$', admin_views.member_activity_create, name='member_activity_create'), |
|
176 | 172 |
url(r'^admin/member/activity/share/list$', admin_views.member_activity_share_list, name='member_activity_share_list'), |
177 | 173 |
url(r'^admin/member/activity/register/list$', admin_views.member_activity_register_list, name='member_activity_register_list'), |
178 | 174 |
|
@@ -0,0 +1,216 @@ |
||
1 |
+# -*- coding: utf-8 -*- |
|
2 |
+ |
|
3 |
+from django.conf import settings |
|
4 |
+from django_logit import logit |
|
5 |
+from django_response import response |
|
6 |
+from paginator import pagination |
|
7 |
+ |
|
8 |
+from member.models import MemberActivityInfo |
|
9 |
+from kodo.decorators import check_admin |
|
10 |
+from utils.error.errno_utils import MemberActivityStatusCode |
|
11 |
+ |
|
12 |
+ |
|
13 |
+@check_admin |
|
14 |
+def activity_list(request, administrator): |
|
15 |
+ activity_type = request.POST.get('activity_type', '') |
|
16 |
+ title = request.POST.get('title', '') |
|
17 |
+ start_time = request.POST.get('start_time', '') |
|
18 |
+ end_time = request.POST.get('end_time', '') |
|
19 |
+ page = request.POST.get('page', 1) |
|
20 |
+ num = request.POST.get('num', 20) |
|
21 |
+ activity_state = request.POST.get('activity_state', '') |
|
22 |
+ activity_section = request.POST.get('activity_section', '') |
|
23 |
+ is_series = request.POST.get('is_series', '') |
|
24 |
+ |
|
25 |
+ logs = MemberActivityInfo.objects.filter(status=True) |
|
26 |
+ |
|
27 |
+ if is_series: |
|
28 |
+ logs = logs.filter(is_series=True) |
|
29 |
+ |
|
30 |
+ if activity_type: |
|
31 |
+ logs = logs.filter(activity_type=activity_type) |
|
32 |
+ |
|
33 |
+ if activity_section: |
|
34 |
+ logs = logs.filter(activity_section=activity_section) |
|
35 |
+ |
|
36 |
+ if activity_state: |
|
37 |
+ logs = logs.filter(activity_state=activity_state) |
|
38 |
+ |
|
39 |
+ if title: |
|
40 |
+ logs = logs.filter(title__icontains=title) |
|
41 |
+ |
|
42 |
+ if start_time and end_time: |
|
43 |
+ start_time = datetime.strptime(start_time, '%Y%m%d') |
|
44 |
+ end_time = datetime.strptime(end_time + ' 23:59:59', '%Y%m%d %H:%M:%S') |
|
45 |
+ logs = logs.filter(created_at__range=(start_time, end_time)) |
|
46 |
+ |
|
47 |
+ logs = logs.order_by('-pk') |
|
48 |
+ |
|
49 |
+ count = logs.count() |
|
50 |
+ logs, left = pagination(logs, page, num) |
|
51 |
+ logs = [log.admindata for log in logs] |
|
52 |
+ |
|
53 |
+ return response(200, 'Get Member Activity Record Success', u'获取会员活动成功', data={ |
|
54 |
+ 'logs': logs, |
|
55 |
+ 'left': left, |
|
56 |
+ 'count': count |
|
57 |
+ }) |
|
58 |
+ |
|
59 |
+ |
|
60 |
+@check_admin |
|
61 |
+def activity_detail(request, administrator): |
|
62 |
+ activity_id = request.POST.get('activity_id', '') |
|
63 |
+ |
|
64 |
+ try: |
|
65 |
+ log = MemberActivityInfo.objects.get(activity_id=activity_id) |
|
66 |
+ except MemberActivityInfo.DoesNotExist: |
|
67 |
+ return response(MemberActivityStatusCode.ACTIVITY_NOT_FOUND) |
|
68 |
+ |
|
69 |
+ return response(200, 'Get Member Activity Record Details Success', u'获取会员活动详情成功', data={ |
|
70 |
+ 'log': log.admindetails, |
|
71 |
+ }) |
|
72 |
+ |
|
73 |
+ |
|
74 |
+@check_admin |
|
75 |
+def activity_update(request, administrator): |
|
76 |
+ activity_id = request.POST.get('activity_id', '') |
|
77 |
+ activity_type = int(request.POST.get('activity_type', 0)) |
|
78 |
+ activity_section = int(request.POST.get('activity_section', 3)) |
|
79 |
+ title = request.POST.get('title', '') |
|
80 |
+ subtitle = request.POST.get('subtitle', '') |
|
81 |
+ start_date = tc.to_date(request.POST.get('start_date', '') or settings.DEFAULT_START_DATE) |
|
82 |
+ end_date = date = tc.to_date(request.POST.get('end_date', '') or settings.DEFAULT_END_DATE) |
|
83 |
+ start_display_date = tc.to_date(request.POST.get('start_display_date', '') or settings.DEFAULT_START_DATE) |
|
84 |
+ end_display_date = tc.to_date(request.POST.get('end_display_date', '') or settings.DEFAULT_END_DATE) |
|
85 |
+ city = request.POST.get('city', '') |
|
86 |
+ location = request.POST.get('location', '') |
|
87 |
+ integral = int(request.POST.get('integral', 0)) |
|
88 |
+ is_slider = request.POST.get('is_slider', 0) |
|
89 |
+ slider_image_path = request.POST.get('slider_image_path', '') |
|
90 |
+ cover_path = request.POST.get('cover_path', '') |
|
91 |
+ detail_image_path = request.POST.get('detail_image_path', '') |
|
92 |
+ limit_image_num = int(request.POST.get('limit_image_num', 3)) |
|
93 |
+ is_signup = request.POST.get('is_signup', 0) |
|
94 |
+ group_share_max_integral = int(request.POST.get('share_max_integral', 0)) |
|
95 |
+ group_share_integral = int(request.POST.get('share_integral', 0)) |
|
96 |
+ content_rich_text = request.POST.get('content_rich_text', '') |
|
97 |
+ share_h5_link = request.POST.get('share_h5_link', '') |
|
98 |
+ activity_state = int(request.POST.get('activity_state', 0)) |
|
99 |
+ poster_kv_img_url = request.POST.get('poster_kv_img_url', '') |
|
100 |
+ poster_content = request.POST.get('poster_content', '') |
|
101 |
+ contribution_content_placeholder = request.POST.get('contribution_content_placeholder', '') |
|
102 |
+ fields = request.POST.get('fields', '') |
|
103 |
+ is_series = request.POST.get('is_series', False) |
|
104 |
+ main_activity_id = request.POST.get('main_activity_id', '') |
|
105 |
+ limit_contribute_num = request.POST.get('limit_contribute_num', 1) |
|
106 |
+ |
|
107 |
+ try: |
|
108 |
+ log = MemberActivityInfo.objects.get(activity_id=activity_id, status=True) |
|
109 |
+ except MemberActivityInfo.DoesNotExist: |
|
110 |
+ return response(MemberActivityStatusCode.ACTIVITY_NOT_FOUND) |
|
111 |
+ |
|
112 |
+ log.activity_type = activity_type |
|
113 |
+ log.activity_section = activity_section |
|
114 |
+ log.title = title |
|
115 |
+ log.subtitle = subtitle |
|
116 |
+ log.date = date |
|
117 |
+ log.start_date = start_date |
|
118 |
+ log.end_date = end_date |
|
119 |
+ log.start_display_date = start_display_date |
|
120 |
+ log.end_display_date = end_display_date |
|
121 |
+ log.city = city |
|
122 |
+ log.location = location |
|
123 |
+ log.integral = integral |
|
124 |
+ log.is_slider = is_slider |
|
125 |
+ log.slider_image = slider_image_path |
|
126 |
+ log.cover = cover_path |
|
127 |
+ log.image = detail_image_path |
|
128 |
+ log.limit_image_num = limit_image_num |
|
129 |
+ log.is_signup = is_signup |
|
130 |
+ log.group_share_integral = group_share_integral |
|
131 |
+ log.group_share_max_integral = group_share_max_integral |
|
132 |
+ log.content_rich_text = content_rich_text |
|
133 |
+ log.share_h5_link = share_h5_link |
|
134 |
+ log.activity_state = activity_state |
|
135 |
+ log.poster_kv_img_url = poster_kv_img_url |
|
136 |
+ log.poster_content = poster_content |
|
137 |
+ log.contribution_content_placeholder = contribution_content_placeholder |
|
138 |
+ log.fields = fields |
|
139 |
+ log.is_series = is_series |
|
140 |
+ log.main_activity_id = main_activity_id |
|
141 |
+ log.limit_contribute_num = limit_contribute_num |
|
142 |
+ log.save() |
|
143 |
+ |
|
144 |
+ return response(200, 'MemberActivityInfo Update Success', u'会员活动更新成功') |
|
145 |
+ |
|
146 |
+ |
|
147 |
+@check_admin |
|
148 |
+def activity_create(request, administrator): |
|
149 |
+ activity_type = int(request.POST.get('activity_type', 0)) |
|
150 |
+ activity_section = int(request.POST.get('activity_section', 3)) |
|
151 |
+ title = request.POST.get('title', '') |
|
152 |
+ subtitle = request.POST.get('subtitle', '') |
|
153 |
+ start_date = tc.to_date(request.POST.get('start_date', '') or settings.DEFAULT_START_DATE) |
|
154 |
+ end_date = date = tc.to_date(request.POST.get('end_date', '') or settings.DEFAULT_END_DATE) |
|
155 |
+ start_display_date = tc.to_date(request.POST.get('start_display_date', '') or settings.DEFAULT_START_DATE) |
|
156 |
+ end_display_date = tc.to_date(request.POST.get('end_display_date', '') or settings.DEFAULT_END_DATE) |
|
157 |
+ city = request.POST.get('city', '') |
|
158 |
+ location = request.POST.get('location', '') |
|
159 |
+ integral = int(request.POST.get('integral', 0)) |
|
160 |
+ is_slider = request.POST.get('is_slider', 0) |
|
161 |
+ slider_image_path = request.POST.get('slider_image_path', '') |
|
162 |
+ cover_path = request.POST.get('cover_path', '') |
|
163 |
+ detail_image_path = request.POST.get('detail_image_path', '') |
|
164 |
+ limit_image_num = int(request.POST.get('limit_image_num', 3)) |
|
165 |
+ is_signup = request.POST.get('is_signup', 0) |
|
166 |
+ group_share_max_integral = int(request.POST.get('share_max_integral', 0)) |
|
167 |
+ group_share_integral = int(request.POST.get('share_integral', 0)) |
|
168 |
+ content_rich_text = request.POST.get('content_rich_text', '') |
|
169 |
+ share_h5_link = request.POST.get('share_h5_link', '') |
|
170 |
+ activity_state = int(request.POST.get('activity_state', 0)) |
|
171 |
+ poster_kv_img_url = request.POST.get('poster_kv_img_url', '') |
|
172 |
+ poster_content = request.POST.get('poster_content', '') |
|
173 |
+ contribution_content_placeholder = request.POST.get('contribution_content_placeholder', '') |
|
174 |
+ fields = request.POST.get('fields', '') |
|
175 |
+ is_series = request.POST.get('is_series', False) |
|
176 |
+ main_activity_id = request.POST.get('main_activity_id', '') |
|
177 |
+ limit_contribute_num = request.POST.get('limit_contribute_num', 1) |
|
178 |
+ |
|
179 |
+ act = MemberActivityInfo.objects.create( |
|
180 |
+ brand_id=administrator.brand_id, |
|
181 |
+ activity_type=activity_type, |
|
182 |
+ activity_section=activity_section, |
|
183 |
+ title=title, |
|
184 |
+ subtitle=subtitle, |
|
185 |
+ date=date, |
|
186 |
+ start_date=start_date, |
|
187 |
+ end_date=end_date, |
|
188 |
+ start_display_date=start_display_date, |
|
189 |
+ end_display_date=end_display_date, |
|
190 |
+ city=city, |
|
191 |
+ location=location, |
|
192 |
+ integral=integral, |
|
193 |
+ is_slider=is_slider, |
|
194 |
+ slider_image=slider_image_path, |
|
195 |
+ cover=cover_path, |
|
196 |
+ image=detail_image_path, |
|
197 |
+ limit_image_num=limit_image_num, |
|
198 |
+ is_signup=is_signup, |
|
199 |
+ group_share_max_integral=group_share_max_integral, |
|
200 |
+ group_share_integral=group_share_integral, |
|
201 |
+ content_rich_text=content_rich_text, |
|
202 |
+ share_h5_link=share_h5_link, |
|
203 |
+ activity_state=activity_state, |
|
204 |
+ poster_kv_img_url=poster_kv_img_url, |
|
205 |
+ poster_content=poster_content, |
|
206 |
+ contribution_content_placeholder=contribution_content_placeholder, |
|
207 |
+ is_upload_qiniu=True, |
|
208 |
+ fields=fields, |
|
209 |
+ is_series=is_series, |
|
210 |
+ main_activity_id=main_activity_id, |
|
211 |
+ limit_contribute_num=limit_contribute_num, |
|
212 |
+ ) |
|
213 |
+ |
|
214 |
+ return response(200, 'MemberActivityInfo Create Success', u'会员活动创建成功', data={ |
|
215 |
+ 'activity': act.admindetails |
|
216 |
+ }) |
@@ -0,0 +1,13 @@ |
||
1 |
+# -*- coding: utf-8 -*- |
|
2 |
+ |
|
3 |
+from django.conf.urls import url |
|
4 |
+ |
|
5 |
+from member import activity_admin_views |
|
6 |
+ |
|
7 |
+# activity |
|
8 |
+urlpatterns = [ |
|
9 |
+ url(r'^member/activity/list$', activity_admin_views.activity_list, name='admin_member_activity_list'), # 获取会员活动列表 |
|
10 |
+ url(r'^member/activity/details$', activity_admin_views.activity_detail, name='admin_member_activity_detail'), # 获取会员活动详情 |
|
11 |
+ url(r'^member/activity/create$', activity_admin_views.activity_create, name='admin_member_activity_create'), # 获取会员活动详情 |
|
12 |
+ url(r'^member/activity/update$', activity_admin_views.activity_update, name='admin_member_activity_update'), # 获取会员活动详情 |
|
13 |
+] |
@@ -0,0 +1,36 @@ |
||
1 |
+# -*- coding: utf-8 -*- |
|
2 |
+ |
|
3 |
+# Generated by Django 3.2.6 on 2023-05-06 08:43 |
|
4 |
+ |
|
5 |
+from django.db import migrations, models |
|
6 |
+import jsonfield.fields |
|
7 |
+ |
|
8 |
+ |
|
9 |
+class Migration(migrations.Migration): |
|
10 |
+ |
|
11 |
+ dependencies = [ |
|
12 |
+ ('member', '0056_memberactivityinfo_activity_section'), |
|
13 |
+ ] |
|
14 |
+ |
|
15 |
+ operations = [ |
|
16 |
+ migrations.AddField( |
|
17 |
+ model_name='memberactivityinfo', |
|
18 |
+ name='fields', |
|
19 |
+ field=jsonfield.fields.JSONField(blank=True, help_text='报名字段', null=True, verbose_name='fields'), |
|
20 |
+ ), |
|
21 |
+ migrations.AddField( |
|
22 |
+ model_name='memberactivityinfo', |
|
23 |
+ name='is_series', |
|
24 |
+ field=models.BooleanField(default=False, help_text='是否为系列活动', verbose_name='is_series'), |
|
25 |
+ ), |
|
26 |
+ migrations.AddField( |
|
27 |
+ model_name='memberactivityinfo', |
|
28 |
+ name='limit_contribute_num', |
|
29 |
+ field=models.IntegerField(default=0, help_text='限制投稿次数', verbose_name='limit_contribute_num'), |
|
30 |
+ ), |
|
31 |
+ migrations.AddField( |
|
32 |
+ model_name='memberactivityinfo', |
|
33 |
+ name='main_activity_id', |
|
34 |
+ field=models.CharField(blank=True, default='', help_text='系列活动主活动唯一标识', max_length=32, verbose_name='main_activity_id'), |
|
35 |
+ ), |
|
36 |
+ ] |
@@ -0,0 +1,26 @@ |
||
1 |
+# -*- coding: utf-8 -*- |
|
2 |
+ |
|
3 |
+# Generated by Django 3.2.6 on 2023-05-06 08:50 |
|
4 |
+ |
|
5 |
+from django.db import migrations, models |
|
6 |
+import jsonfield.fields |
|
7 |
+ |
|
8 |
+ |
|
9 |
+class Migration(migrations.Migration): |
|
10 |
+ |
|
11 |
+ dependencies = [ |
|
12 |
+ ('member', '0057_auto_20230506_1643'), |
|
13 |
+ ] |
|
14 |
+ |
|
15 |
+ operations = [ |
|
16 |
+ migrations.AlterField( |
|
17 |
+ model_name='memberactivityinfo', |
|
18 |
+ name='fields', |
|
19 |
+ field=jsonfield.fields.JSONField(blank=True, default='[]', help_text='报名字段', null=True, verbose_name='fields'), |
|
20 |
+ ), |
|
21 |
+ migrations.AlterField( |
|
22 |
+ model_name='memberactivityinfo', |
|
23 |
+ name='limit_contribute_num', |
|
24 |
+ field=models.IntegerField(default=1, help_text='限制投稿次数', verbose_name='limit_contribute_num'), |
|
25 |
+ ), |
|
26 |
+ ] |
@@ -430,6 +430,12 @@ class MemberActivityInfo(BaseModelMixin, BrandInfoMixin): |
||
430 | 430 |
|
431 | 431 |
is_upload_qiniu = models.BooleanField(_(u'is_upload_qiniu'), default=False, help_text=u'是否已上传七牛') |
432 | 432 |
|
433 |
+ fields = JSONField(_(u'fields'), blank=True, null=True, default='[]', help_text=u'报名字段') |
|
434 |
+ is_series = models.BooleanField(_(u'is_series'), default=False, help_text=u'是否为系列活动') |
|
435 |
+ main_activity_id = models.CharField(_(u'main_activity_id'), max_length=32, blank=True, default='', help_text=u'系列活动主活动唯一标识') |
|
436 |
+ |
|
437 |
+ limit_contribute_num = models.IntegerField(_(u'limit_contribute_num'), default=1, help_text=u'限制投稿次数') |
|
438 |
+ |
|
433 | 439 |
class Meta: |
434 | 440 |
verbose_name = _(u'会员活动信息') |
435 | 441 |
verbose_name_plural = _(u'会员活动信息') |
@@ -548,6 +554,10 @@ class MemberActivityInfo(BaseModelMixin, BrandInfoMixin): |
||
548 | 554 |
'poster_kv_img_url': self.post_kv_image_url, |
549 | 555 |
'poster_content': self.poster_content, |
550 | 556 |
'contribution_content_placeholder': self.contribution_content_placeholder, |
557 |
+ 'fields': json.loads(self.fields) if self.fields else '', |
|
558 |
+ 'main_activity_id': self.main_activity_id, |
|
559 |
+ 'limit_contribute_num': self.limit_contribute_num, |
|
560 |
+ 'is_series': self.is_series, |
|
551 | 561 |
} |
552 | 562 |
|
553 | 563 |
def details(self, user_id): |
@@ -587,6 +597,10 @@ class MemberActivityInfo(BaseModelMixin, BrandInfoMixin): |
||
587 | 597 |
'poster_kv_img_url': self.final_poster_kv_img_url, |
588 | 598 |
'poster_content': self.poster_content, |
589 | 599 |
'contribution_content_placeholder': self.contribution_content_placeholder, |
600 |
+ 'fields': json.loads(self.fields) if self.fields else '', |
|
601 |
+ 'main_activity_id': self.main_activity_id, |
|
602 |
+ 'limit_contribute_num': self.limit_contribute_num, |
|
603 |
+ 'is_series': self.is_series, |
|
590 | 604 |
} |
591 | 605 |
|
592 | 606 |
@property |
@@ -628,6 +642,10 @@ class MemberActivityInfo(BaseModelMixin, BrandInfoMixin): |
||
628 | 642 |
'poster_content': self.poster_content, |
629 | 643 |
'contribution_content_placeholder': self.contribution_content_placeholder, |
630 | 644 |
'welfares': self.welfares, |
645 |
+ 'fields': json.loads(self.fields) if self.fields else '', |
|
646 |
+ 'main_activity_id': self.main_activity_id, |
|
647 |
+ 'limit_contribute_num': self.limit_contribute_num, |
|
648 |
+ 'is_series': self.is_series, |
|
631 | 649 |
} |
632 | 650 |
|
633 | 651 |
@property |
@@ -674,6 +692,10 @@ class MemberActivityInfo(BaseModelMixin, BrandInfoMixin): |
||
674 | 692 |
'poster_content': self.poster_content, |
675 | 693 |
'contribution_content_placeholder': self.contribution_content_placeholder, |
676 | 694 |
'welfares': self.welfares, |
695 |
+ 'fields': json.loads(self.fields) if self.fields else '', |
|
696 |
+ 'main_activity_id': self.main_activity_id, |
|
697 |
+ 'limit_contribute_num': self.limit_contribute_num, |
|
698 |
+ 'is_series': self.is_series, |
|
677 | 699 |
} |
678 | 700 |
|
679 | 701 |
|
@@ -8,5 +8,5 @@ from member import activity_mp_views |
||
8 | 8 |
urlpatterns = [ |
9 | 9 |
url(r'^member/activity/home$', activity_mp_views.activity_home, name='mp_member_activity_home'), # 获取会员活动首页 |
10 | 10 |
url(r'^member/activity/list$', activity_mp_views.activity_list, name='mp_member_activity_list'), # 获取会员分区活动列表 |
11 |
- url(r'^member/activity/detail$', activity_mp_views.activity_detail, name='mp_member_activity_detail'), # 获取会员分区活动列表 |
|
11 |
+ url(r'^member/activity/detail$', activity_mp_views.activity_detail, name='mp_member_activity_detail'), # 获取会员分区活动详情 |
|
12 | 12 |
] |
@@ -5,4 +5,5 @@ from django.conf.urls import include, url |
||
5 | 5 |
|
6 | 6 |
urlpatterns = [ |
7 | 7 |
url(r'^mp/', include(('member.mp_urls', 'member'), namespace='mp_member')), |
8 |
+ url(r'^admin/', include(('member.admin_urls', 'member'), namespace='admin_member')), |
|
8 | 9 |
] |