CRM客户关系管理系统(十)

第十章、kingadmin+admin+actions功能开发

10.1. django admin的action

 可以自己写个函数执行批量操作

crm/admin.py

 

后台admin action就会多一个change status,可以修改status状态

 

 执行后

 

 

10.2.kingadmin actions功能开发

(1)crm/kingadmin.py

(2)kingamdin/admin_base.py

class BaseKingAdmin(object):

    list_display = []
    list_filter = []
    search_fields = []
    #只读
    readonly_fields = []
    filter_horizontal = []
    list_per_page = 5
    actions = []

 

(3)table_obj_list.html

加个action框+"单选/全选/全部取消"+执行按钮

     <form>
            <div class="row">
                <div class="col-lg-3">
                    <select class="form-control" name="action">
                            <option value="">-------</option>
                        {% for action in admin_class.actions %}
                            <option value="{{ action }}">{{ action }}</option>
                        {% endfor %}
                    </select>
                </div>
                <div class="col-lg-2">
                    <input type="submit" value="执行" class="btn btn-primary" style="padding: 6px">
                </div>
            </div>
        </form>

给所有客户信息添加一个可选框

th用来全选

每个td都要加

 

js代码(可以全选/取消全选)

<script>

function SelectALLObjs(ele) {

    if ($(ele).prop('checked')){
        $('input[row-select]').prop('checked',true)

    }else{
         $('input[row-select]').prop('checked',false)
    }
}

</script> 

 效果:

 

执行action

table_obj_list.html

 

 js代码

function ActionCheck(ele){
    var selected_action = $("select[name='action']").val();
    var selected_objs = $("input[row-select]").filter(":checked");
    console.log($("select[name='action']").val())
    if (!selected_action){
        alert("no action selected!")
        return false
    }
    if (selected_objs.length == 0 ){
        alert("no object selected!")
        return false
    }else {
        //生成一个标签,放到form里

        var selected_ids = [];
        $.each(selected_objs,function () {
            console.log($(this) );
            selected_ids.push($(this).val())
        })
        console.log(selected_ids)
        var input_ele = "<input type='hidden' name='selected_ids' value=" + JSON.stringify(selected_ids) + ">"

        $(ele).append(input_ele);
    }
}

后台kingadmin/views.py

 现在就可以批量执行action操作了。

 

10.3.添加默认的delete action

 (1)kingadmin/admin_base.html

  • 添加一个default_actions = ['delete_selected_objs'],不能直接加载actions里面,因为子类会覆盖父类的actions
  • 利用__init__方法,把defautl_actions里面的值添加到actions里面。
# kingadmin/admin_base.py

import json
from django.shortcuts import render

class BaseKingAdmin(object):

    def __init__(self):
        self.actions.extend(self.default_actions)

    list_display = []
    list_filter = []
    search_fields = []
    #只读
    readonly_fields = []
    filter_horizontal = []
    list_per_page = 5
    default_actions = ['delete_selected_objs']
    actions = []


    def delete_selected_objs(self,request,querysets):

        querysets_ids = json.dumps([i.id for i in querysets])

        return render(request,'kingadmin/table_obj_delete.html',{'admin_class':self,      #self就是admin_class
                                                                 'objs':querysets,
                                                                 'querysets_ids':querysets_ids
                                                                 })

 

(2)table_obj_delete.html

 

 (3)kingadmin/views.py

 在views中要对post进行判断(因为“执行”和“确认删除” 都是post动作,同时存在在def table_obj_list里面)

 

效果:

 

(1) 管理范围:客户信息管理、产品信息管理、销售机会及跟进管理、订单管理、客户回访管理、客户反馈管理、客户报修管理、产品库存管理。 (2) 可扩展管理范围:系统具有极强的灵活性,可自由增减其它管理内容,例如,您可以将退货换货、赠品等也纳入管理范畴,最大程度满足您不同的需要。 (3) 可扩展人员范围:除公司员工外,还可以给您的客户、代理商、销售商等分配账号,让他们也能进入此系统,以便查询产品和订单信息,提交服务请求和反馈意见等,从而做到更好的互动。 (4) 先进的B/S结构:一般用户无需任何安装,通过IE浏览器即可使用。系统既可在单机、局域网上安装使用,也可运行在Internet互联网上,因此无论何时何地都可查询、处理您的业务。 (5) 完善的权限控制:可以为每类人员分配适当的访问权限,数据的查看权、录入权、修改权、删除权均可设定,且细化到每一个字段。 (6) 丰富的统计报表:预设30多种报表,可根据产品、客户、业务员、销售地区、时间等不同角度作统计,帮助您分析决策。报表还可以导出成Excel,便于您作另外的处理。 (7) 可设计报表:一般的管理系统只有固定的几种报表,本系统具有报表设计功能,利用精心设计的报表定制功能,您只需几个简单步骤就可设计出漂亮实用的报表。有3类报表,分类明细表、分类统计表和透视分析表 。 (8) 可设计表单:有些数据需要打印在有格式要求的表单中,以便与传统作业衔接。如:产品订购单、客户服务派工单、重要反馈报告单。系统可设计表单模板,轻松生成各类表单、合同等文档。 (9) 可定制提醒模板:可预设提醒时机、收信人、提醒内容、提醒频度,自动发送提醒邮件或短信。例如:每当录入新订单时发送通知信;到达预定收款日期仍未收款的,每隔一段时间给责任人发送催促信;每逢客户生日发祝福信等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值