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