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