暫無描述

activity_admin_views.py 10KB

    # -*- coding: utf-8 -*- from datetime import datetime from django.conf import settings from django.db.models import Q from django_logit import logit from django_response import response from paginator import pagination from TimeConvert import TimeConvert as tc from member.models import MemberActivityInfo, MemberActivitySignupInfo, MemberActivityContributionInfo from kodo.decorators import check_admin from utils.error.errno_utils import MemberActivityStatusCode @check_admin def activity_list(request, administrator): activity_type = request.POST.get('activity_type', '') title = request.POST.get('title', '') start_time = request.POST.get('start_time', '') end_time = request.POST.get('end_time', '') page = request.POST.get('page', 1) num = request.POST.get('num', 20) activity_state = request.POST.get('activity_state', '') activity_section = request.POST.get('activity_section', '') is_series = request.POST.get('is_series', '') logs = MemberActivityInfo.objects.filter(status=True) if is_series: logs = logs.filter(is_series=True) if activity_type: logs = logs.filter(activity_type=activity_type) if activity_section: logs = logs.filter(activity_section=activity_section) if activity_state: logs = logs.filter(activity_state=activity_state) if title: logs = logs.filter(title__icontains=title) if start_time and end_time: start_time = datetime.strptime(start_time, '%Y%m%d') end_time = datetime.strptime(end_time + ' 23:59:59', '%Y%m%d %H:%M:%S') logs = logs.filter(created_at__range=(start_time, end_time)) logs = logs.order_by('-pk') count = logs.count() logs, left = pagination(logs, page, num) logs = [log.admindata for log in logs] return response(200, 'Get Member Activity Record Success', u'获取会员活动成功', data={ 'logs': logs, 'left': left, 'count': count }) @check_admin def activity_detail(request, administrator): activity_id = request.POST.get('activity_id', '') try: log = MemberActivityInfo.objects.get(activity_id=activity_id) except MemberActivityInfo.DoesNotExist: return response(MemberActivityStatusCode.ACTIVITY_NOT_FOUND) return response(200, 'Get Member Activity Record Details Success', u'获取会员活动详情成功', data={ 'log': log.admindetails, }) @check_admin def activity_update(request, administrator): activity_id = request.POST.get('activity_id', '') activity_type = int(request.POST.get('activity_type', 0)) activity_section = int(request.POST.get('activity_section', 3)) title = request.POST.get('title', '') subtitle = request.POST.get('subtitle', '') start_date = tc.to_date(request.POST.get('start_date', '') or settings.DEFAULT_START_DATE) end_date = date = tc.to_date(request.POST.get('end_date', '') or settings.DEFAULT_END_DATE) start_display_date = tc.to_date(request.POST.get('start_display_date', '') or settings.DEFAULT_START_DATE) end_display_date = tc.to_date(request.POST.get('end_display_date', '') or settings.DEFAULT_END_DATE) city = request.POST.get('city', '') location = request.POST.get('location', '') integral = int(request.POST.get('integral', 0)) is_slider = request.POST.get('is_slider', 0) slider_image_path = request.POST.get('slider_image_path', '') cover_path = request.POST.get('cover_path', '') detail_image_path = request.POST.get('detail_image_path', '') limit_image_num = int(request.POST.get('limit_image_num', 3)) is_signup = request.POST.get('is_signup', 0) group_share_max_integral = int(request.POST.get('share_max_integral', 0)) group_share_integral = int(request.POST.get('share_integral', 0)) content_rich_text = request.POST.get('content_rich_text', '') share_h5_link = request.POST.get('share_h5_link', '') activity_state = int(request.POST.get('activity_state', 0)) poster_kv_img_url = request.POST.get('poster_kv_img_url', '') poster_content = request.POST.get('poster_content', '') contribution_content_placeholder = request.POST.get('contribution_content_placeholder', '') fields = request.POST.get('fields', '') is_series = request.POST.get('is_series', False) main_activity_id = request.POST.get('main_activity_id', '') limit_contribute_num = request.POST.get('limit_contribute_num', 1) feed_id = request.POST.get('feed_id', '') try: log = MemberActivityInfo.objects.get(activity_id=activity_id, status=True) except MemberActivityInfo.DoesNotExist: return response(MemberActivityStatusCode.ACTIVITY_NOT_FOUND) if log.main_activity_id != main_activity_id: MemberActivityContributionInfo.objects.filter(activity_id=log.activity_id).update(main_activity_id=main_activity_id) log.activity_type = activity_type log.activity_section = activity_section log.title = title log.subtitle = subtitle log.date = date log.start_date = start_date log.end_date = end_date log.start_display_date = start_display_date log.end_display_date = end_display_date log.city = city log.location = location log.integral = integral log.is_slider = is_slider log.slider_image = slider_image_path log.cover = cover_path log.image = detail_image_path log.limit_image_num = limit_image_num log.is_signup = is_signup log.group_share_integral = group_share_integral log.group_share_max_integral = group_share_max_integral log.content_rich_text = content_rich_text log.share_h5_link = share_h5_link log.activity_state = activity_state log.poster_kv_img_url = poster_kv_img_url log.poster_content = poster_content log.contribution_content_placeholder = contribution_content_placeholder log.fields = fields log.is_series = is_series log.main_activity_id = main_activity_id log.limit_contribute_num = limit_contribute_num log.feed_id = feed_id log.save() return response(200, 'MemberActivityInfo Update Success', u'会员活动更新成功') @check_admin def activity_create(request, administrator): activity_type = int(request.POST.get('activity_type', 0)) activity_section = int(request.POST.get('activity_section', 3)) title = request.POST.get('title', '') subtitle = request.POST.get('subtitle', '') start_date = tc.to_date(request.POST.get('start_date', '') or settings.DEFAULT_START_DATE) end_date = date = tc.to_date(request.POST.get('end_date', '') or settings.DEFAULT_END_DATE) start_display_date = tc.to_date(request.POST.get('start_display_date', '') or settings.DEFAULT_START_DATE) end_display_date = tc.to_date(request.POST.get('end_display_date', '') or settings.DEFAULT_END_DATE) city = request.POST.get('city', '') location = request.POST.get('location', '') integral = int(request.POST.get('integral', 0)) is_slider = request.POST.get('is_slider', 0) slider_image_path = request.POST.get('slider_image_path', '') cover_path = request.POST.get('cover_path', '') detail_image_path = request.POST.get('detail_image_path', '') limit_image_num = int(request.POST.get('limit_image_num', 3)) is_signup = request.POST.get('is_signup', 0) group_share_max_integral = int(request.POST.get('share_max_integral', 0)) group_share_integral = int(request.POST.get('share_integral', 0)) content_rich_text = request.POST.get('content_rich_text', '') share_h5_link = request.POST.get('share_h5_link', '') activity_state = int(request.POST.get('activity_state', 0)) poster_kv_img_url = request.POST.get('poster_kv_img_url', '') poster_content = request.POST.get('poster_content', '') contribution_content_placeholder = request.POST.get('contribution_content_placeholder', '') fields = request.POST.get('fields', '') is_series = request.POST.get('is_series', False) main_activity_id = request.POST.get('main_activity_id', '') limit_contribute_num = request.POST.get('limit_contribute_num', 1) feed_id = request.POST.get('feed_id', '') act = MemberActivityInfo.objects.create( brand_id=administrator.brand_id, activity_type=activity_type, activity_section=activity_section, title=title, subtitle=subtitle, date=date, start_date=start_date, end_date=end_date, start_display_date=start_display_date, end_display_date=end_display_date, city=city, location=location, integral=integral, is_slider=is_slider, slider_image=slider_image_path, cover=cover_path, image=detail_image_path, limit_image_num=limit_image_num, is_signup=is_signup, group_share_max_integral=group_share_max_integral, group_share_integral=group_share_integral, content_rich_text=content_rich_text, share_h5_link=share_h5_link, activity_state=activity_state, poster_kv_img_url=poster_kv_img_url, poster_content=poster_content, contribution_content_placeholder=contribution_content_placeholder, is_upload_qiniu=True, fields=fields, is_series=is_series, main_activity_id=main_activity_id, limit_contribute_num=limit_contribute_num, feed_id=feed_id, ) return response(200, 'MemberActivityInfo Create Success', u'会员活动创建成功', data={ 'activity': act.admindetails }) @check_admin def activity_signup_list(request, administrator): activity_id = request.POST.get('activity_id', '') page = int(request.POST.get('page', 1)) num = int(request.POST.get('num', 20)) query = request.POST.get('query', '') is_signin = request.POST.get('is_signin', False) logs = MemberActivitySignupInfo.objects.filter(activity_id=activity_id, status=True).exclude(fields='[]') if query: logs = logs.filter(fields__icontains=query) if is_signin: logs = logs.filter(is_signin=is_signin) count = logs.count() logs, left = pagination(logs, page, num) logs = [log.admindata for log in logs] return response(200, 'Get Member Activity Signup List Success', u'获取会员活动报名列表成功', data={ 'logs': logs, 'count': count, 'left': left, })