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里面)

效果:


CRM客户关系管理系统(十)的更多相关文章
- Django CRM客户关系管理系统
CRM需求分析 随着信息化时代带来的科技创新,CRM客户关系管理系统带来的效益在已经成为很多企业提高竞争优势的一分部,CRM客户关系管理系统将企业管理和客户关系管理集成到统一的平台,其系统功能主要体现 ...
- CRM 客户关系管理系统
CRM(Customer Relationship Manager)客户关系管理系统 企业为提高核心竞争力,利用相应的信息技术以及互联网技术协调企业与顾客间在销售.营销和服务上的交互,从而提升其管理方 ...
- CRM客户关系管理系统 北京易信软科信息技术有限公司
北京易信软科信息技术有限公司 推出大型erp系统,库存管理系统,客户关系管理系统,车辆登记管理系统,员工管理系统,采购管理系统,销售管理系统,为您的企业提供最优质的产品服务 北京易信软科您可信赖的北京 ...
- CRM客户关系管理系统-需求概设和详设
大概设计 大概设计就是对需求进行一个整体性分析,把需要实现的功能都列出来,对于客户关系管理系统,我们需要从角色出发,从而确定有哪些需求,最好是画个思维导图 首先我们是为培训学校这么一个场景来开发的,所 ...
- Django项目:CRM(客户关系管理系统)--70--60PerfectCRM实现CRM学生上课记录
#urls.py """PerfectCRM URL Configuration The `urlpatterns` list routes URLs to views. ...
- Django项目:CRM(客户关系管理系统)--69--59PerfectCRM实现king_admin行内编辑
#base_admin.py # ————————24PerfectCRM实现King_admin自定义操作数据———————— from django.shortcuts import render ...
- Django项目:CRM(客户关系管理系统)--65--55PerfectCRM实现CRM客户报名状态颜色变化
# kingadmin.py # ————————04PerfectCRM实现King_admin注册功能———————— from crm import models #print("ki ...
- Django项目:CRM(客户关系管理系统)--64--54PerfectCRM实现CRM客户报名链接
# kingadmin.py # ————————04PerfectCRM实现King_admin注册功能———————— from crm import models #print("ki ...
- Django项目:CRM(客户关系管理系统)--58--48PerfectCRM实现CRM客户报名流程学生合同
# sales_urls.py # ————————47PerfectCRM实现CRM客户报名流程———————— from django.conf.urls import url from bpm. ...
- CRM客户关系管理系统有哪些优缺点?
CRM系统不仅仅是一种技术,也是面向企业的客户管理系统.客户关系管理软件可以帮助销售员快速地找到客户信息,帮助销售员跟踪客户直到完成订单.为提高企业销售效率,CRM被越来越多的企业所采用. 那么,作为 ...
随机推荐
- Android初级教程:对文件和字符串进行MD5加密工具类
转载请注明出处:http://blog.csdn.net/qq_32059827/article/details/52200008 点击打开链接 之前写过一篇博文,是针对字符串进行md5加密的.今 ...
- 从二进制数据流中构造GDAL可以读取的图像数据(C#)
在上一篇博客中,讲了一下使用GDAL从文件流中构造一个GDAL可以识别的数据来进行处理.原以为这个接口在C#中没有,仔细看了下GDAL库中源码,发现C#版本也有类似的函数,下面是GDAL库中的一个C# ...
- Servlet处理流程分析-Servlet学习之旅(二)
tomcat的处理处理客户端流程分析 tomcat即是servlet容器也具有web服务器的功能,即也具有html页面的功能. 1.首先客户端会将html请求发给tomcat内置的web服务器 2.w ...
- 5.QT中关于HTTPClient相关的操作,Json数据传输
新建项目T12HttpClient T12HttpClient.pro SOURCES += \ main.cpp QT += network CONFIG += C++11 main.cpp ...
- git提交代码到github
前言:转载请注明出处:http://blog.csdn.net/hejjunlin/article/details/52117504 git提交代码到github 命令汇总: git init git ...
- RecyclerView下拉刷新上拉加载(一)
listview下拉刷新上拉加载扩展(一) http://blog.csdn.net/baiyuliang2013/article/details/50252561 listview下拉刷新上拉加载扩 ...
- 08 ListView 优化
ListVie的优化 1 固定ListView长宽高 如下图在清单文件中: <ListView android:id="@+id/lv" android:layout_wid ...
- Mybatis简单入门
MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以使用简单的XML或注解用 ...
- 安卓ListView的性能优化
在安卓APP中LIstView这个控件可以说基本上是个APP就会用到,但是关于ListView除了需要了解其最基本的用法外,作为一个要做出高性能APP的程序员还需了解一些关于LIstView控件性能优 ...
- FFmpeg深入分析(一)
最近在做一个关于监控的项目,要在iphone 客户端实现播放监控的实时视频以及录像视频.使用到了FFmpeg,看到这篇文章,写的非常不错.转自:http://blog.chinaunix.net/ui ...