Exemplo n.º 1
0
def update_productcategory(request, productcategory_id):
    if request.POST:
        product_ids = request.POST.getlist('product_id')
        ProductCategory.objects.filter(owner=request.user,
                                       id=productcategory_id).update(
                                           name=request.POST.get('name',
                                                                 '').strip(),
                                           pic_url=request.POST.get(
                                               'pic_url', '').strip(),
                                           product_count=len(product_ids))

        CategoryHasProduct.objects.filter(
            category_id=productcategory_id).delete()

        for product_id in product_ids:
            CategoryHasProduct.objects.create(product_id=product_id,
                                              category_id=productcategory_id)

        return HttpResponseRedirect('/mall/editor/productcategories/')
    else:
        productcategory = ProductCategory.objects.get(owner=request.user,
                                                      id=productcategory_id)

        c = RequestContext(
            request, {
                'first_nav_name': FIRST_NAV_NAME,
                'second_navs': export.get_second_navs(request),
                'second_nav_name': SHOP_CATEGORY_NAV,
                'productcategory': productcategory,
            })
        return render_to_response('mall/editor/edit_productcategory.html', c)
Exemplo n.º 2
0
def add_article(request):
    if request.POST:
        article = Article.objects.create(
            owner=request.user,
            title=request.POST.get('title', '').strip(),
            summary=request.POST.get('summary', '').strip(),
            content=request.POST.get('content', '').strip(),
        )
        first_article = Article.objects.filter(
            owner=request.user).order_by('-display_index')[0]
        article.display_index = first_article.display_index + 1
        article.save()

        category_id = int(request.POST.get('category', -1))
        if category_id != -1:
            CategoryHasArticle.objects.create(category_id=category_id,
                                              article=article)

        return HttpResponseRedirect('/cms/editor/articles/')
    else:
        categories = Category.objects.filter(owner=request.user)

        c = RequestContext(
            request, {
                'first_nav_name': FIRST_NAV_NAME,
                'second_navs': export.get_second_navs(request),
                'second_nav_name': ARTICLE_NAV,
                'categories': categories
            })
        return render_to_response('cms/editor/edit_article.html', c)
Exemplo n.º 3
0
	def get(request):
		c = RequestContext(request, {
			'first_nav': FIRST_NAV,
			'second_navs': export.get_second_navs(request),
			'second_nav': SECOND_NAV
		})
		return render_to_response('mall/malls.html', c)
Exemplo n.º 4
0
def update_article(request, article_id):
    if request.POST:
        #更新article
        SpecialArticle.objects.filter(
            owner=request.user, id=article_id).update(
                content=request.POST.get('content', '').strip())

        return HttpResponseRedirect('/cms/editor/special_articles/')
    else:
        article = SpecialArticle.objects.get(owner=request.user, id=article_id)

        c = RequestContext(
            request, {
                'first_nav_name': FIRST_NAV_NAME,
                'second_navs': export.get_second_navs(request),
                'second_nav_name': ARTICLE_NAV,
                'article': article
            })

        if article.name == 'not_from_weixin':
            return render_to_response(
                'cms/editor/special_not_from_mobile_article.html', c)
        else:
            return render_to_response(
                'cms/editor/special_content_article.html', c)
Exemplo n.º 5
0
def get_members(request):
	"""
	get_memers: 会员列表
	"""
	mpuser = get_system_user_binded_mpuser(request.user)
	webapp_id  = request.user_profile.webapp_id
	#处理来自“数据罗盘-会员分析-关注会员链接”过来的查看关注会员的请求
	#add by duhao 2015-07-13
	status = request.GET.get('status' , '1')
	member_tags = MemberTag.get_member_tags(webapp_id)
	#调整排序,将为分组放在最前面
	tags = []
	for tag in member_tags:
		if tag.name == '未分组':
			tags = [tag] + tags
		else:
			tags.append(tag)
	member_tags = tags
	c = RequestContext(request, {
		'first_nav_name': export.MEMBER_FIRST_NAV,
		'second_navs': export.get_second_navs(request),
		'second_nav_name': export.MEMBERS,
		'should_show_authorize_cover' : get_should_show_authorize_cover(request),
		'user_tags': member_tags,
		'grades': MemberGrade.get_all_grades_list(webapp_id),
		'counts': Member.objects.filter(webapp_id=webapp_id,is_for_test=0, status__in= [SUBSCRIBED, CANCEL_SUBSCRIBED]).count(),
		'status': status
	})

	return render_to_response('member/editor/members.html', c)
Exemplo n.º 6
0
def show_dashboard(request):
    #add by likunlun  营销工具返回第一个工具
    try:
        navs = get_second_navs(request)[0]['navs']
        first_nav = navs[0]
        first_nav_url = first_nav['url']

        return HttpResponseRedirect(first_nav_url)
    except:
        c = RequestContext(
            request, {
                'first_nav_name': FIRST_NAV_NAME,
                'second_navs': get_second_navs(request),
                'second_nav_name': 'dashboard',
            })
        return render_to_response('market_tools/dashboard.html', c)
Exemplo n.º 7
0
def add_productcategory(request):
    if request.POST:
        productcategory = ProductCategory.objects.create(
            owner=request.user,
            name=request.POST.get('name', '').strip(),
            pic_url=request.POST.get('pic_url', '').strip())
        productcategory.display_index = 0 - productcategory.id

        product_ids = request.POST.getlist('product_id')
        productcategory.product_count = len(product_ids)

        productcategory.save()

        for product_id in product_ids:
            CategoryHasProduct.objects.create(product_id=product_id,
                                              category=productcategory)

        return HttpResponseRedirect('/mall/editor/productcategories/')
    else:
        c = RequestContext(
            request, {
                'first_nav_name': FIRST_NAV_NAME,
                'second_navs': export.get_second_navs(request),
                'second_nav_name': SHOP_CATEGORY_NAV,
            })
        return render_to_response('mall/editor/edit_productcategory.html', c)
Exemplo n.º 8
0
    def get(request):
        member_id = request.GET.get('mid', -1)
        card_data = []
        cards = mall_models.MemberHasCard.objects.filter(
            member_id=member_id, is_deleted=False).order_by('-id')
        for card in cards:
            card_data.append({
                'id': card.id,
                'card_number': card.card_number,
                'bank_name': card.bank_name
            })

        mall_data = []
        malls = mall_models.Mall.objects.filter(
            owner=request.user, is_deleted=False).order_by('-id')
        for mall in malls:
            mall_data.append({'id': mall.id, 'name': mall.name})

        c = RequestContext(
            request, {
                'first_nav': FIRST_NAV,
                'second_navs': export.get_second_navs(request),
                'second_nav': SECOND_NAV,
                'malls': mall_data,
                'cards': card_data,
                'member_id': member_id
            })
        return render_to_response('mall/buy.html', c)
Exemplo n.º 9
0
def list_panel(request):
    c = RequestContext(
        request, {
            'first_nav_name': FIRST_NAV_NAME,
            'second_navs': export.get_second_navs(request),
            'second_nav_name': SHOP_SETTINGS_NAV,
        })
    return render_to_response('mall/editor/mall_panel.html', c)
Exemplo n.º 10
0
def integral_settings(request):
    integral_settings = IntegralStrategySttings.objects.filter(
        webapp_id=request.user.get_profile().webapp_id)
    if request.method == 'GET':
        if integral_settings.count() > 0:
            integral_setting = integral_settings[0]
        else:
            integral_setting = None
        c = RequestContext(
            request, {
                'first_nav_name': FIRST_NAV_NAME,
                'second_navs': export.get_second_navs(request),
                'second_nav_name': SHOP_SETTINGS_NAV,
                'integral_setting': integral_setting,
            })
        return render_to_response('mall/editor/integral_settings.html', c)
    else:
        if integral_settings.count() > 0:
            integral_settings.update(
                be_member_increase_count=int(
                    request.POST.get('be_member_increase_count', 0)),
                integral_each_yuan=int(
                    request.POST.get('integral_each_yuan', 0)),
                click_shared_url_increase_count_after_buy=int(
                    request.POST.get(
                        'click_shared_url_increase_count_after_buy', 0)),
                click_shared_url_increase_count_before_buy=int(
                    request.POST.get(
                        'click_shared_url_increase_count_before_buy', 0)),
                buy_via_shared_url_increase_count_for_buyer=int(
                    request.POST.get(
                        'buy_via_shared_url_increase_count_for_buyer', 0)),
                buy_via_shared_url_increase_count_for_author=int(
                    request.POST.get(
                        'buy_via_shared_url_increase_count_for_author', 0)),
            )
        else:
            integral_setting = IntegralStrategySttings.objects.create(
                webapp_id=request.user.get_profile().webapp_id,
                be_member_increase_count=int(
                    request.POST.get('be_member_increase_count', 0)),
                integral_each_yuan=int(
                    request.POST.get('integral_each_yuan', 0)),
                click_shared_url_increase_count_after_buy=int(
                    request.POST.get(
                        'click_shared_url_increase_count_after_buy', 0)),
                click_shared_url_increase_count_before_buy=int(
                    request.POST.get(
                        'click_shared_url_increase_count_before_buy', 0)),
                buy_via_shared_url_increase_count_for_buyer=int(
                    request.POST.get(
                        'buy_via_shared_url_increase_count_for_buyer', 0)),
                buy_via_shared_url_increase_count_for_author=int(
                    request.POST.get(
                        'buy_via_shared_url_increase_count_for_author', 0)),
            )

        return HttpResponseRedirect('/mall/editor/postagesettingses/')
Exemplo n.º 11
0
 def get(request):
     mall_id = request.GET.get('mid', '')
     c = RequestContext(
         request, {
             'first_nav': FIRST_NAV,
             'second_navs': export.get_second_navs(request),
             'second_nav': SECOND_NAV,
             'mall_id': mall_id
         })
     return render_to_response('mall/products.html', c)
Exemplo n.º 12
0
 def get(request):
     webapp_id = request.user_profile.webapp_id
     default_tag_id = MemberTag.get_default_tag(webapp_id).id
     member_tags = MemberTag.get_member_tags(webapp_id)
     #调整排序,将为分组放在最前面
     tags = []
     for tag in member_tags:
         if tag.name == '未分组':
             tags = [tag] + tags
         else:
             tags.append(tag)
     member_tags = tags
     is_can_send = False
     from weixin.user.models import WeixinMpUser
     try:
         mp_user = WeixinMpUser.objects.get(
             owner_id=request.user_profile.user_id)
         if mp_user and mp_user.is_certified:
             is_can_send = True
     except:
         pass
     ids = [
         str(tag.id)
         for tag in MemberTag.objects.filter(webapp_id=webapp_id)
     ]
     if ids:
         ids = '_'.join(ids)
     else:
         ids = ''
     for member_tag in member_tags:
         member_tag.count = MemberHasTag.get_tag_has_member_count(
             member_tag)
     c = RequestContext(
         request,
         {
             'first_nav_name':
             export.MEMBER_FIRST_NAV,
             'second_navs':
             export.get_second_navs(request),
             'second_nav_name':
             export.MEMBER_TAG,
             'member_tags':
             member_tags,
             'should_show_authorize_cover':
             get_should_show_authorize_cover(request),
             'success_count':
             UserSentMassMsgLog.success_count(webapp_id),
             'is_can_send':
             is_can_send,
             'ids':
             ids
             #'pageinfo': json.dumps(paginator.to_dict(pageinfo))
         })
     return render_to_response('member/editor/member_tags.html', c)
Exemplo n.º 13
0
def list_productcategories(request):
    productcategories = ProductCategory.objects.filter(
        owner=request.user).order_by('display_index')

    c = RequestContext(
        request, {
            'first_nav_name': FIRST_NAV_NAME,
            'second_navs': export.get_second_navs(request),
            'second_nav_name': SHOP_CATEGORY_NAV,
            'productcategories': productcategories,
        })
    return render_to_response('mall/editor/productcategories.html', c)
Exemplo n.º 14
0
def list_articles(request):
    articles = SpecialArticle.objects.filter(owner=request.user)

    c = RequestContext(
        request, {
            'articles': articles,
            'first_nav_name': FIRST_NAV_NAME,
            'second_navs': export.get_second_navs(request),
            'second_nav_name': ARTICLE_NAV
        })

    return render_to_response('cms/editor/special_articles.html', c)
Exemplo n.º 15
0
def list_categories(request):
    categories = Category.objects.filter(
        owner=request.user).order_by('display_index')

    c = RequestContext(
        request, {
            'first_nav_name': FIRST_NAV_NAME,
            'second_navs': export.get_second_navs(request),
            'second_nav_name': CMS_CATEGORY_NAV,
            'categories': categories,
        })
    return render_to_response('cms/editor/categories.html', c)
Exemplo n.º 16
0
def list_orders(request):
    webapp_id = request.user_profile.webapp_id
    orders = Order.objects.filter(webapp_id=webapp_id)

    c = RequestContext(
        request, {
            'first_nav_name': FIRST_NAV_NAME,
            'second_navs': export.get_second_navs(request),
            'second_nav_name': SHOP_ORDERS_NAV,
            'orders': orders,
        })
    return render_to_response('mall/editor/orders.html', c)
Exemplo n.º 17
0
def list_grades(request):
	webapp_id = request.user_profile.webapp_id
	MemberGrade.get_default_grade(webapp_id)

	member_grades = MemberGrade.get_all_grades_list(webapp_id)

	c = RequestContext(request, {
		'first_nav_name': FIRST_NAV_NAME,
		'second_navs': export.get_second_navs(request),
		'second_nav_name': WEAPP_USER_CENTER_OTHER_OPTIONS_NAV_NAME,
		'member_grades': member_grades,
		'should_show_authorize_cover' : get_should_show_authorize_cover(request)
	})
	return render_to_response('user_center/editor/grades.html', c)
Exemplo n.º 18
0
def show_coupon(request, coupon_pool_id):
    webapp_id = request.user.get_profile().webapp_id
    coupon_pool = CouponPool.objects.get(id=coupon_pool_id)
    coupons = Coupon.objects.filter(coupon_pool_id=coupon_pool.id)
    c = RequestContext(
        request, {
            'first_nav_name': FIRST_NAV_NAME,
            'second_navs': export.get_second_navs(request),
            'second_nav_name': SHOP_SETTINGS_NAV,
            'webapp_id': webapp_id,
            'coupon_pool': coupon_pool,
            'coupons': coupons
        })
    return render_to_response('mall/editor/editor_coupon.html', c)
Exemplo n.º 19
0
    def get(request):
        """
		响应GET
		"""
        has_data = app_models.Sign.objects.count()

        c = RequestContext(
            request, {
                'first_nav_name': FIRST_NAV,
                'second_navs': export.get_second_navs(request),
                'second_nav_name': "signs",
                'has_data': has_data
            })

        return render_to_response('sign/templates/editor/signs.html', c)
Exemplo n.º 20
0
def add_tag(request):
	if request.POST:
		name = request.POST.get('name','')
		webapp_id = webapp_id = request.user_profile.webapp_id
		if name and webapp_id:
			MemberTag.objects.create(name=name,webapp_id=webapp_id)

		return HttpResponseRedirect('/webapp/user_center/tags/')
	else:
		c = RequestContext(request, {
			'first_nav_name': FIRST_NAV_NAME,
			'second_navs': export.get_second_navs(request),
			'second_nav_name': MEMBER_TAGS,
			#'pageinfo': json.dumps(paginator.to_dict(pageinfo))
		})
		return render_to_response('user_center/editor/edit_tag.html', c)
Exemplo n.º 21
0
def list_memers(request):
	mpuser = get_system_user_binded_mpuser(request.user)
	webapp_id  = request.user_profile.webapp_id
	
	
	c = RequestContext(request, {
		'first_nav_name': FIRST_NAV_NAME,
		'second_navs': export.get_second_navs(request),
		'second_nav_name': WEAPP_USER_CENTER_NAV_NAME,
		'should_show_authorize_cover' : get_should_show_authorize_cover(request),
		'user_tags': MemberTag.get_member_tags(webapp_id),
		'grades': MemberGrade.get_all_grades_list(webapp_id),
		'counts': Member.objects.filter(webapp_id=webapp_id,is_for_test=0).count()
	})

	return render_to_response('user_center/editor/user_center.html', c)
Exemplo n.º 22
0
def add_product(request):
    if request.POST:
        product = Product.objects.create(
            owner=request.user,
            name=request.POST.get('name', '').strip(),
            physical_unit=request.POST.get('physical_unit', ''),
            price=request.POST.get('price', ''),
            introduction=request.POST.get('introduction', '').strip(),
            weight=request.POST.get('weight', '0.0').strip(),
            thumbnails_url=request.POST.get('thumbnails_url', '').strip(),
            pic_url=request.POST.get('pic_url', '').strip(),
            detail=request.POST.get('detail', '').strip(),
            remark=request.POST.get('remark', ''),
            putaway_type=int(request.POST.get('putaway_type', 0)),
            putaway_start_time=request.POST.get('startTime', ''),
            putaway_end_time=request.POST.get('endTime', ''),
            stock_type=request.POST.get('stock_type',
                                        PRODUCT_STOCK_TYPE_UNLIMIT),
            stocks=request.POST.get('stocks', '0').strip(),
        )
        product.display_index = product.id
        product.save()

        product_category_id = int(request.POST.get('product_category', -1))
        if product_category_id != -1:
            CategoryHasProduct.objects.create(category_id=product_category_id,
                                              product=product)
            ProductCategory.objects.filter(id=product_category_id).update(
                product_count=F('product_count') + 1)
            '''
			category = ProductCategory.objects.get(id=product_category_id)
			category.product_count = category.product_count + 1
			category.save()
			'''

        return HttpResponseRedirect('/mall/editor/products/')
    else:
        categories = ProductCategory.objects.filter(owner=request.user)

        c = RequestContext(
            request, {
                'first_nav_name': FIRST_NAV_NAME,
                'second_navs': export.get_second_navs(request),
                'second_nav_name': SHOP_PRODUCT_NAV,
                'categories': categories
            })
        return render_to_response('mall/editor/edit_product.html', c)
Exemplo n.º 23
0
    def get(request):
        """
		响应GET
		"""
        has_data = app_models.SignParticipance.objects(
            belong_to=request.GET['id']).count()

        c = RequestContext(
            request, {
                'first_nav_name': FIRST_NAV,
                'second_navs': export.get_second_navs(request),
                'second_nav_name': "signs",
                'has_data': has_data,
                'activity_id': request.GET['id']
            })

        return render_to_response(
            'sign/templates/editor/sign_participances.html', c)
Exemplo n.º 24
0
def member_qrocde(request):
	mpuser = get_system_user_binded_mpuser(request.user)

	if (mpuser is None) or (not mpuser.is_certified) or (not mpuser.is_service):
		should_show_authorize_cover = True
	else:
		should_show_authorize_cover = False

	coupon_rules = get_coupon_rules(request.user)
	member_qrcode_settings = MemberQrcodeSettings.objects.filter(owner=request.user)
	member_qrcode_setting = member_qrcode_settings[0] if member_qrcode_settings.count() > 0 else None
	if member_qrcode_setting:
		award_contents = MemberQrcodeAwardContent.objects.filter(member_qrcode_settings=member_qrcode_setting)
		if award_contents.count() > 0:
			award_content = award_contents[0] if member_qrcode_setting.award_member_type == 1 else None
		else:
			award_content = None
	else:
		award_contents = None
		award_content = None
	member_grades = MemberGrade.get_all_grades_list(request)

	if member_grades and award_contents:

		for member_grade in member_grades:
			content = award_contents.filter(member_level=member_grade.id)[0] if award_contents.filter(member_level=member_grade.id).count() > 0 else None
			if content:
				member_grade.award_type = content.award_type
				member_grade.award_content = content.award_content

	c = RequestContext(request, {
		'first_nav_name': export.MEMBER_FIRST_NAV,
		'second_navs': export.get_second_navs(request),
		'second_nav_name': export.MEMBER_QRCODE,
		'member_grades': member_grades,
		'member_qrcode_settings': member_qrcode_setting,
		'coupon_rules': coupon_rules,
		'award_content': award_content,
		'member_grades': member_grades,
		'should_show_authorize_cover': should_show_authorize_cover,
		'is_hide_weixin_option_menu': True
	})

	return render_to_response('member/editor/member_qrcode.html', c)
Exemplo n.º 25
0
def update_category(request, category_id):
    if request.POST:
        Category.objects.filter(owner=request.user, id=category_id).update(
            name=request.POST.get('name', '').strip()
            #pic_url = request.POST.get('pic_url', '').strip(),
        )

        return HttpResponseRedirect('/cms/editor/categories/')
    else:
        category = Category.objects.get(owner=request.user, id=category_id)

        c = RequestContext(
            request, {
                'first_nav_name': FIRST_NAV_NAME,
                'second_navs': export.get_second_navs(request),
                'second_nav_name': CMS_CATEGORY_NAV,
                'category': category,
            })
        return render_to_response('cms/editor/edit_category.html', c)
Exemplo n.º 26
0
def add_category(request):
    if request.POST:
        category = Category.objects.create(
            owner=request.user,
            name=request.POST.get('name', '').strip()
            #pic_url = request.POST.get('pic_url', '').strip()
        )
        #category.display_index = 0-category.id
        #category.save()

        return HttpResponseRedirect('/cms/editor/categories/')
    else:
        c = RequestContext(
            request, {
                'first_nav_name': FIRST_NAV_NAME,
                'second_navs': export.get_second_navs(request),
                'second_nav_name': CMS_CATEGORY_NAV,
            })
        return render_to_response('cms/editor/edit_category.html', c)
Exemplo n.º 27
0
def create_coupon(request):
    if request.method == 'GET':
        c = RequestContext(
            request, {
                'first_nav_name': FIRST_NAV_NAME,
                'second_navs': export.get_second_navs(request),
                'second_nav_name': SHOP_SETTINGS_NAV,
            })
        return render_to_response('mall/editor/editor_coupon.html', c)
    else:
        today = get_today()
        expired_date = request.POST.get('expired_time', '')
        count = int(request.POST.get('sum', 0))
        name = request.POST.get('name')
        money = float(request.POST.get('money', 0))
        source = request.POST.get('source', COUPON_SOURCE_WEIXIN)

        coupon_pool = CouponPool.objects.create(name=name,
                                                source=source,
                                                sum=count,
                                                money=money,
                                                expired_time=expired_date,
                                                provided_time=today,
                                                residue_sum=count,
                                                owner=request.user)

        if COUPON_SOURCE_MAN == source:
            for index in xrange(count):
                coupon_id = __create_random_order_coupon_id(
                    source, request.user)
                coupon = Coupon.objects.create(coupon_id=coupon_id,
                                               provided_time=today,
                                               expired_time=expired_date,
                                               money=money,
                                               coupon_pool_id=coupon_pool.id,
                                               order_id='',
                                               owner=request.user,
                                               source=source)

            return HttpResponseRedirect('/mall/editor/show/%d/' %
                                        coupon_pool.id)
        else:
            return HttpResponseRedirect('/mall/editor/mall_settings/')
Exemplo n.º 28
0
    def get(request):
        webapp_id = request.user_profile.webapp_id
        member_grades = MemberGrade.get_all_grades_list(webapp_id)

        for grade in member_grades:
            grade.shop_discount /= 10.0

        is_all_conditions = IntegralStrategySttings.objects.get(
            webapp_id=webapp_id).is_all_conditions

        c = RequestContext(
            request, {
                'first_nav_name': export.MEMBER_FIRST_NAV,
                'second_navs': export.get_second_navs(request),
                'second_nav_name': export.MEMBER_GRADE,
                'member_grades': member_grades,
                'is_all_conditions': is_all_conditions,
            })
        return render_to_response('member/editor/member_grades.html', c)
Exemplo n.º 29
0
def show_member_integral_log(request, member_id):
	member_logs = MemberIntegralLog.objects.filter(member_id=member_id).order_by('-created_at')
	for member_log in member_logs:
		if member_log.member:
			try:
				member = Member.objects.get(token=member_log.follower_member_token)
			except:
				member = None
			member_log.follower_member = member
			
	c = RequestContext(request, {
		'first_nav_name': FIRST_NAV_NAME,
		'second_navs': export.get_second_navs(request),
		'second_nav_name': WEAPP_USER_CENTER_NAV_NAME,

		'member_logs': member_logs,
		'member_id': member_id
	})
	return render_to_response('user_center/editor/user_integral_log.html', c)
Exemplo n.º 30
0
def list_grades(request):
	webapp_id = request.user_profile.webapp_id
	default_grade = MemberGrade.get_default_grade(webapp_id)

	member_grades = MemberGrade.get_all_grades_list(webapp_id)
	if request.method == "GET":
		c = RequestContext(request, {
			'first_nav_name': export.MEMBER_FIRST_NAV,
			'second_navs': export.get_second_navs(request),
			'second_nav_name': export.MEMBER_GRADE,
			'member_grades': member_grades,
			'shop_discounts': [1]*100,
			'should_show_authorize_cover' : get_should_show_authorize_cover(request)
		})
		return render_to_response('member/editor/member_grades.html', c)
	else:
		member_grade_ids = [grade.id for grade in member_grades]

		post_ids = []
		for key, value in request.POST.dict().items():
			if key.startswith('grade_id_'):
				post_ids.append(int(key.split('_')[2]))
		post_ids.sort()
		for id in post_ids:
			grade_name = request.POST.get('grade_id_%s' % id , 'get none value')
			grade_integral_term = request.POST.get('grade_integral_term_%s' % id , 0)
			grade_money_term = request.POST.get('grade_money_term_%s' % id , 0)
			grade_paytimes_term = request.POST.get('grade_paytimes_term_%s' % id , 0)
			shop_discount = request.POST.get('shop_discount_%s' % id , 100)
			if id == default_grade.id:
				MemberGrade.objects.filter(id=id).update(shop_discount=shop_discount, name=grade_name)
			elif id in member_grade_ids:
				MemberGrade.objects.filter(id=id).update(pay_money=grade_money_term, pay_times=grade_paytimes_term, integral=grade_integral_term, name=grade_name, shop_discount=shop_discount,)
			else:
				MemberGrade.objects.create(pay_money=grade_money_term, pay_times=grade_paytimes_term, integral=grade_integral_term, name=grade_name, webapp_id=webapp_id, upgrade_lower_bound=0, shop_discount=shop_discount,)

		delete_ids = list(set(member_grade_ids).difference(set(post_ids)))
		MemberGrade.objects.filter(id__in=delete_ids).delete()
		if delete_ids:
			from mall.module_api import update_promotion_status_by_member_grade
			update_promotion_status_by_member_grade(delete_ids)
		return HttpResponseRedirect('/member/member_grades/get/')