gridtaskset
This commit is contained in:
parent
79361a5a8e
commit
d28b8c8ce7
|
|
@ -0,0 +1,44 @@
|
||||||
|
# Generated by Django 2.2.8 on 2020-09-05 17:56
|
||||||
|
|
||||||
|
import django.contrib.postgres.fields.jsonb
|
||||||
|
from django.db import migrations, models
|
||||||
|
import django.db.models.deletion
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('safesite', '0345_auto_20200830_2243'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
# migrations.RemoveField(
|
||||||
|
# model_name='companyinfo',
|
||||||
|
# name='liaison_fax',
|
||||||
|
# ),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='riskacttask',
|
||||||
|
name='tasknote',
|
||||||
|
field=models.TextField(blank=True, null=True, verbose_name='任务备注'),
|
||||||
|
),
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='GridTaskSet',
|
||||||
|
fields=[
|
||||||
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||||
|
('task_schedule', django.contrib.postgres.fields.jsonb.JSONField(blank=True, null=True, verbose_name='定时配置')),
|
||||||
|
('note', models.TextField(null=True, verbose_name='检查备注')),
|
||||||
|
('start_run', models.DateTimeField(blank=True, null=True, verbose_name='开始执行时间')),
|
||||||
|
('last_run', models.DateTimeField(blank=True, null=True, verbose_name='最后执行时间')),
|
||||||
|
('is_paused', models.BooleanField(default=True, verbose_name='是否暂停派发')),
|
||||||
|
('count', models.IntegerField(default=0, verbose_name='任务派发次数')),
|
||||||
|
('gridlevel', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='safesite.Dickey', verbose_name='网格化层级')),
|
||||||
|
('riskact', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='gridtaskset_riskact', to='safesite.RiskAct')),
|
||||||
|
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='safesite.User', verbose_name='执行人')),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='riskacttask',
|
||||||
|
name='taskset',
|
||||||
|
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='safesite.GridTaskSet', verbose_name='由哪个设置派发'),
|
||||||
|
),
|
||||||
|
]
|
||||||
|
|
@ -0,0 +1,35 @@
|
||||||
|
# Generated by Django 2.2.8 on 2020-09-05 18:36
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('safesite', '0346_auto_20200905_1756'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
# migrations.RemoveField(
|
||||||
|
# model_name='companyinfo',
|
||||||
|
# name='liaison_fax',
|
||||||
|
# ),
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name='gridtaskset',
|
||||||
|
name='last_run',
|
||||||
|
),
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name='gridtaskset',
|
||||||
|
name='start_run',
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='gridtaskset',
|
||||||
|
name='last_send',
|
||||||
|
field=models.DateTimeField(blank=True, null=True, verbose_name='最后派发时间'),
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='gridtaskset',
|
||||||
|
name='start_send',
|
||||||
|
field=models.DateTimeField(blank=True, null=True, verbose_name='开始派发时间'),
|
||||||
|
),
|
||||||
|
]
|
||||||
|
|
@ -1042,7 +1042,21 @@ class EdulessonWatch(models.Model): # 在线视频观看情况表
|
||||||
submittime = models.DateTimeField(default=timezone.now)
|
submittime = models.DateTimeField(default=timezone.now)
|
||||||
|
|
||||||
|
|
||||||
class RiskActTask(models.Model): # 风险点排查清单(任务)
|
class GridTaskSet(models.Model):
|
||||||
|
"""
|
||||||
|
网格化管理任务制定
|
||||||
|
"""
|
||||||
|
riskact = models.ForeignKey(RiskAct, on_delete=models.CASCADE, related_name='gridtaskset_riskact')
|
||||||
|
gridlevel = models.ForeignKey(Dickey, on_delete=models.CASCADE, verbose_name='网格化层级')
|
||||||
|
user = models.ForeignKey(User,on_delete=models.CASCADE,verbose_name='执行人')
|
||||||
|
task_schedule = JSONField('定时配置',null=True, blank=True)
|
||||||
|
note = models.TextField('检查备注', null=True)
|
||||||
|
start_send = models.DateTimeField('开始派发时间', null=True, blank=True)
|
||||||
|
last_send = models.DateTimeField('最后派发时间', null=True, blank=True)
|
||||||
|
is_paused = models.BooleanField(default=True, verbose_name='是否暂停派发')
|
||||||
|
count = models.IntegerField('任务派发次数', default=0)
|
||||||
|
|
||||||
|
class RiskActTask(models.Model): # 风险点排查执行记录
|
||||||
id = models.AutoField(primary_key=True)
|
id = models.AutoField(primary_key=True)
|
||||||
riskact = models.ForeignKey(
|
riskact = models.ForeignKey(
|
||||||
RiskAct, on_delete=models.CASCADE, null=True, blank=True)
|
RiskAct, on_delete=models.CASCADE, null=True, blank=True)
|
||||||
|
|
@ -1053,38 +1067,11 @@ class RiskActTask(models.Model): # 风险点排查清单(任务)
|
||||||
taskexpire = models.DateTimeField(null=True, blank=True)
|
taskexpire = models.DateTimeField(null=True, blank=True)
|
||||||
usable = models.IntegerField(default=1) # 1是可用,2是变更计划,0是不可用
|
usable = models.IntegerField(default=1) # 1是可用,2是变更计划,0是不可用
|
||||||
type = models.IntegerField(default=1) # 1是计划内,2是计划外
|
type = models.IntegerField(default=1) # 1是计划内,2是计划外
|
||||||
note = models.TextField(null=True, blank=True) # 备注
|
note = models.TextField(null=True, blank=True) # 检查备注
|
||||||
state = models.IntegerField(default=1) # 1是正常
|
state = models.IntegerField(default=1) # 1是正常
|
||||||
istask = models.IntegerField(default=0) # 是否是任务
|
istask = models.IntegerField(default=0) # 是否是任务
|
||||||
|
tasknote = models.TextField('任务备注', null=True, blank=True)
|
||||||
class GridTaskSet(models.Model):
|
taskset = models.ForeignKey(GridTaskSet, null=True, blank=True, verbose_name='由哪个设置派发', on_delete=models.SET_NULL)
|
||||||
"""
|
|
||||||
网格化管理任务制定
|
|
||||||
"""
|
|
||||||
tasktype_choices = (
|
|
||||||
(1, '8h'),
|
|
||||||
(2, '24h'),
|
|
||||||
(3, '7day'),
|
|
||||||
(4, '1month'),
|
|
||||||
(5, '1year')
|
|
||||||
)
|
|
||||||
riskact = models.ForeignKey(RiskAct, on_delete=models.CASCADE, related_name='gridtaskset_riskact')
|
|
||||||
gridlevel = models.ForeignKey(Dickey, on_delete=models.CASCADE, verbose_name='网格化层级')
|
|
||||||
user = models.ForeignKey(User,on_delete=models.CASCADE,verbose_name='执行人')
|
|
||||||
tasktype = models.IntegerField(default=1, choices=tasktype_choices)
|
|
||||||
note = models.TextField('检查备注', null=True)
|
|
||||||
is_paused = models.BooleanField(default=True, verbose_name='是否暂停派发')
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class GridCheckRecord(models.Model):
|
|
||||||
"""
|
|
||||||
网格化排查记录
|
|
||||||
"""
|
|
||||||
riskact = models.ForeignKey(RiskAct, on_delete=models.CASCADE, related_name='gridcheckrecord_riskact')
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class Risktask(models.Model): # 风险排查任务清单
|
class Risktask(models.Model): # 风险排查任务清单
|
||||||
id = models.AutoField(primary_key=True)
|
id = models.AutoField(primary_key=True)
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
<div class="easyui-layout" style="width:100%;height:100%;">
|
<div class="easyui-layout" style="width:100%;height:100%;">
|
||||||
<div data-options="region:'west',split:true,border:false,collapsible:false" style="width:50%;height:100%;" title="风险点">
|
<div data-options="region:'west',split:true,border:false,collapsible:false" style="width:40%;height:100%;" title="风险点">
|
||||||
<div id="riskactbar" style="padding:5px;height:auto">
|
<div id="riskactbar" style="padding:5px;height:auto">
|
||||||
<div>
|
<div>
|
||||||
{% load myfilter %}
|
{% load myfilter %}
|
||||||
|
|
@ -25,22 +25,22 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-options="region:'center',title:'网格化任务制定',split:true,border:false,collapsible:false" style="width:50%;height:100%;">
|
<div data-options="region:'center',title:'网格化任务制定',split:true,border:false,collapsible:false" style="width:50%;height:100%;">
|
||||||
|
|
||||||
<div id="riskbar" style="padding:5px;height:auto">
|
<div id="gridtasksetbar" style="padding:5px;height:auto">
|
||||||
{% if request|has_permission:'b_risk_add' %}
|
{% if request|has_permission:'b_gridtaskset_add' %}
|
||||||
<a onclick="addrisk()" class="easyui-linkbutton"
|
<a onclick="addgridtaskset()" class="easyui-linkbutton"
|
||||||
data-options="iconCls:'fa-plus',plain:true">新增</a>
|
data-options="iconCls:'fa-plus',plain:true">新增</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if request|has_permission:'b_risk_change' %}
|
{% if request|has_permission:'b_gridtaskset_change' %}
|
||||||
<a onclick="editrisk()" class="easyui-linkbutton"
|
<a onclick="editgridtaskset()" class="easyui-linkbutton"
|
||||||
data-options="iconCls:'fa-pencil',plain:true">编辑</a>
|
data-options="iconCls:'fa-pencil',plain:true">编辑</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if request|has_permission:'b_risk_del' %}
|
{% if request|has_permission:'b_gridtaskset_del' %}
|
||||||
<a onclick="delrisk()" class="easyui-linkbutton"
|
<a onclick="delgirdtaskset()" class="easyui-linkbutton"
|
||||||
data-options="iconCls:'fa-trash',plain:true">删除</a>
|
data-options="iconCls:'fa-trash',plain:true">删除</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<table id="risktable" style="height:100%;width:auto"></table>
|
<table id="girdtasksettable" style="height:100%;width:auto"></table>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -84,25 +84,24 @@
|
||||||
//{ field: 'group__groupname', title: '岗位', width: 100 },
|
//{ field: 'group__groupname', title: '岗位', width: 100 },
|
||||||
]],
|
]],
|
||||||
onSelect: function (index, data) {
|
onSelect: function (index, data) {
|
||||||
$('#risktable').datagrid({url:'api/risk?a=listall&riskact='+data.id})
|
$('#girdtasksettable').datagrid({url:'api/gridtaskset/?a=listall&riskact='+data.id})
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
$('#risktable').datagrid({
|
$('#girdtasksettable').datagrid({
|
||||||
url: 'api/risk?a=listall',
|
url: 'api/gridtaskset/?a=listall',
|
||||||
rownumbers: true,
|
rownumbers: true,
|
||||||
singleSelect: true,
|
singleSelect: true,
|
||||||
striped: true,
|
striped: true,
|
||||||
method: 'get',
|
method: 'get',
|
||||||
toolbar: '#riskbar',
|
toolbar: '#gridtasksetbar',
|
||||||
pagination: 'true',
|
pagination: 'true',
|
||||||
pageSize: 20,
|
pageSize: 20,
|
||||||
columns: [[
|
columns: [[
|
||||||
{ field: 'id', title: 'ID', hidden: true },
|
{ field: 'id', title: 'ID', hidden: true },
|
||||||
{ field: 'step', title: '项目/步骤', width: 100 },
|
{ field: 'gridlevel', title: '网格层级', width: 100 },
|
||||||
{ field: 'hazard', title: '危害因素', width: 100 },
|
{ field: 'user__name', title: '执行人', width: 100 },
|
||||||
{ field: 'result', title: '可能后果', width: 100 },
|
{ field: 'task_schedule', title: '任务周期', width: 80 , styler: function (value, row, index) {
|
||||||
{ field: 'level', title: '风险等级', width: 80 , styler: function (value, row, index) {
|
|
||||||
switch (value) {
|
switch (value) {
|
||||||
case '低风险': return 'background-color:blue;color:white'; break;
|
case '低风险': return 'background-color:blue;color:white'; break;
|
||||||
case '一般风险': return 'background-color:yellow;'; break;
|
case '一般风险': return 'background-color:yellow;'; break;
|
||||||
|
|
@ -110,18 +109,23 @@
|
||||||
case '重大风险': return 'background-color:red;color:white'; break;
|
case '重大风险': return 'background-color:red;color:white'; break;
|
||||||
}
|
}
|
||||||
}},
|
}},
|
||||||
{ field: 'measure1', title: '工程技术', width: 100 },
|
{ field: 'start_send', title: '初次派发时间', width: 100 },
|
||||||
{ field: 'measure2', title: '管理措施', width: 100 },
|
{ field: 'last_send', title: '最后派发时间', width: 100 },
|
||||||
{ field: 'measure3', title: '培训教育', width: 100 },
|
{ field: 'is_paused', title: '当前状态', width: 100 },
|
||||||
{ field: 'measure4', title: '个体防护', width: 100 },
|
{ field: 'count', title: '已派发次数', width: 100 },
|
||||||
{ field: 'measure5', title: '应急处理', width: 100 },
|
|
||||||
{ field: 'riskl', title: 'L', width: 50 },
|
|
||||||
{ field: 'riske', title: 'E', width: 50 },
|
|
||||||
{ field: 'riskc', title: 'C', width: 50 },
|
|
||||||
{ field: 'riskd', title: 'D', width: 50 },
|
|
||||||
|
|
||||||
]],
|
]],
|
||||||
});
|
});
|
||||||
|
|
||||||
|
function addgridtaskset(){
|
||||||
|
opendg('新增','html/gridtaskset/add/')
|
||||||
|
}
|
||||||
|
function editgridtaskset(){
|
||||||
|
var row = $('#girdtasksettable').datagrid('getSelected');
|
||||||
|
if (row) {
|
||||||
|
opendg('编辑','html/gridtaskset/edit/' + row.id)
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$.messager.alert('提示', '请先选择一个任务配置!');
|
||||||
|
}
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
@ -0,0 +1,58 @@
|
||||||
|
<div class="easyui-layout" style="width:100%;height:100%">
|
||||||
|
<div id='southdiv' data-options="region:'south'" style="width:100%;height:50px;padding:5px">
|
||||||
|
<div style="text-align:center;padding:2px">
|
||||||
|
<a id="submitb" class="easyui-linkbutton" iconCls="fa-floppy-o" onclick="submitform()">保存</a>
|
||||||
|
<a class="easyui-linkbutton" iconCls="fa-close" onclick="javascript:$('#dd').dialog('close')">取消</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div data-options="region:'center'" style="width:100%;height:100%;padding:5px 15px;">
|
||||||
|
<form method="post" id="gridtasksetff">
|
||||||
|
<div style="margin-bottom:10px">
|
||||||
|
<input id="qyname" name="name" style="width:90%;"
|
||||||
|
data-options="label:'区域名',required:true" class="easyui-textbox"></input>
|
||||||
|
</div>
|
||||||
|
<div style="margin-bottom:10px">
|
||||||
|
<select id="qymap" name="map" style="width:90%" data-options="label:'所属地图'"
|
||||||
|
editable="false" class="easyui-combotree">
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<div style="margin-bottom:10px">
|
||||||
|
<input id="qyorder" name="order" style="width:90%" data-options="label:'排序'" class="easyui-numberbox">
|
||||||
|
</input>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
<script>
|
||||||
|
$('#qymap').combotree({
|
||||||
|
url: 'api/map?a=tree',
|
||||||
|
loadFilter: function (rows) {
|
||||||
|
return convert(rows);
|
||||||
|
},
|
||||||
|
});
|
||||||
|
function submitform() {
|
||||||
|
$.ajax({
|
||||||
|
type: "POST",
|
||||||
|
url: 'api/area?a=add',
|
||||||
|
data: JSON.stringify($('#gridtasksetff').serializeJSON()),
|
||||||
|
datatype: "json",
|
||||||
|
processData: false,
|
||||||
|
contentType: "application/json;charset=utf-8",
|
||||||
|
beforeSend: function () {
|
||||||
|
var bo = $('#gridtasksetff').form('validate')
|
||||||
|
if (bo == false) {
|
||||||
|
return bo
|
||||||
|
} else {
|
||||||
|
$('#submitb').linkbutton('disable');
|
||||||
|
}
|
||||||
|
},
|
||||||
|
success: function (data) {
|
||||||
|
if (data.code == 1) {
|
||||||
|
$("#qylblist").datagrid('reload');
|
||||||
|
$("#dd").dialog("close");
|
||||||
|
} else { $.messager.alert('提示', '失败,区域名重复!'); }
|
||||||
|
$('#submitb').linkbutton('enable');
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
</div>
|
||||||
|
|
@ -0,0 +1,58 @@
|
||||||
|
<div class="easyui-layout" style="width:100%;height:100%">
|
||||||
|
<div id='southdiv' data-options="region:'south'" style="width:100%;height:50px;padding:5px">
|
||||||
|
<div style="text-align:center;padding:2px">
|
||||||
|
<a id="submitb" class="easyui-linkbutton" iconCls="fa-floppy-o" onclick="submitform()">保存</a>
|
||||||
|
<a class="easyui-linkbutton" iconCls="fa-close" onclick="javascript:$('#dd').dialog('close')">取消</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div data-options="region:'center'" style="width:100%;height:100%;padding:5px 15px;">
|
||||||
|
<form method="post" id="qyff">
|
||||||
|
<div style="margin-bottom:10px">
|
||||||
|
<input id="qyname" name="name" style="width:90%;"
|
||||||
|
data-options="label:'区域名',required:true" class="easyui-textbox"></input>
|
||||||
|
</div>
|
||||||
|
<div style="margin-bottom:10px">
|
||||||
|
<select id="qymap" name="map" style="width:90%" data-options="label:'所属地图'"
|
||||||
|
editable="false" class="easyui-combotree">
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<div style="margin-bottom:10px">
|
||||||
|
<input id="qyorder" name="order" style="width:90%" data-options="label:'排序'" class="easyui-numberbox">
|
||||||
|
</input>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
<script>
|
||||||
|
$('#qymap').combotree({
|
||||||
|
url: 'api/map?a=tree',
|
||||||
|
loadFilter: function (rows) {
|
||||||
|
return convert(rows);
|
||||||
|
},
|
||||||
|
});
|
||||||
|
function submitform() {
|
||||||
|
$.ajax({
|
||||||
|
type: "POST",
|
||||||
|
url: 'api/area?a=add',
|
||||||
|
data: JSON.stringify($('#qyff').serializeJSON()),
|
||||||
|
datatype: "json",
|
||||||
|
processData: false,
|
||||||
|
contentType: "application/json;charset=utf-8",
|
||||||
|
beforeSend: function () {
|
||||||
|
var bo = $('#qyff').form('validate')
|
||||||
|
if (bo == false) {
|
||||||
|
return bo
|
||||||
|
} else {
|
||||||
|
$('#submitb').linkbutton('disable');
|
||||||
|
}
|
||||||
|
},
|
||||||
|
success: function (data) {
|
||||||
|
if (data.code == 1) {
|
||||||
|
$("#qylblist").datagrid('reload');
|
||||||
|
$("#dd").dialog("close");
|
||||||
|
} else { $.messager.alert('提示', '失败,区域名重复!'); }
|
||||||
|
$('#submitb').linkbutton('enable');
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
</div>
|
||||||
|
|
@ -82,7 +82,9 @@ urlpatterns = [
|
||||||
path('html/inspect/detail/<int:id>', views.inspectdetail),
|
path('html/inspect/detail/<int:id>', views.inspectdetail),
|
||||||
path('html/inspectitem/detail/<int:id>', views.inspectitemdetail),
|
path('html/inspectitem/detail/<int:id>', views.inspectitemdetail),
|
||||||
path('html/risk/<int:kind>/',views.risk),
|
path('html/risk/<int:kind>/',views.risk),
|
||||||
path('html/gridmanage/', views.gridmanage),
|
path('html/gridtaskset/', views.gridtaskset),
|
||||||
|
path('html/gridtaskset/add/', views.gridtasksetadd),
|
||||||
|
path('html/gridtaskset/edit/<int:id>/',views.gridtasksetedit),
|
||||||
path('html/riskact/add/<int:kind>/',views.riskactadd),
|
path('html/riskact/add/<int:kind>/',views.riskactadd),
|
||||||
path('html/riskact/edit/<int:id>/',views.riskactedit),
|
path('html/riskact/edit/<int:id>/',views.riskactedit),
|
||||||
path('html/risk/add/<int:id>/',views.riskadd),
|
path('html/risk/add/<int:id>/',views.riskadd),
|
||||||
|
|
@ -195,6 +197,7 @@ urlpatterns = [
|
||||||
path('api/equipmentfig',views.equipmentfig),#设备统计图
|
path('api/equipmentfig',views.equipmentfig),#设备统计图
|
||||||
path('api/equipmentcheckform/<int:pk>',viewsdrf.EquipmentCheckFormDetailView.as_view()),
|
path('api/equipmentcheckform/<int:pk>',viewsdrf.EquipmentCheckFormDetailView.as_view()),
|
||||||
path('api/equipmentcheckform',viewsdrf.EquipmentCheckFormAPIView.as_view()),
|
path('api/equipmentcheckform',viewsdrf.EquipmentCheckFormAPIView.as_view()),
|
||||||
|
path('api/gridtaskset/',views.apigridtaskset),
|
||||||
|
|
||||||
|
|
||||||
path('api/examtestrate',views.apiexamtestrate),
|
path('api/examtestrate',views.apiexamtestrate),
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ from captcha.helpers import captcha_image_url
|
||||||
from captcha.models import CaptchaStore
|
from captcha.models import CaptchaStore
|
||||||
from django.shortcuts import render, redirect
|
from django.shortcuts import render, redirect
|
||||||
from django.http import HttpResponse, HttpResponseRedirect, JsonResponse
|
from django.http import HttpResponse, HttpResponseRedirect, JsonResponse
|
||||||
from .models import User, Trouble, Dickey, Partment, Dicclass, Train, Drill, TroubleAccess, Group, Yjyc,Checktable, Trainuser, Drilluser, Yjsetup, Menu, Observe, Observeto, Unsafes, Miss, Socertificate, Userprofile, Suggest, Notice, Noticeto, Operation, Operzyry, Fxcs, Operationspjd, Operspxq, Question, ExamPaper, ExamTest, ExamPaperDetail, ExamTestDetail, Questioncat, Safecert, Map, Area, Missto, Suggestflow, Equipment, Inspect, Risk, RiskAct, Risktask, Riskcheck, Report, RiskActTask, Riskcheck2,Resbility,Operproce,Readerblility,ReaderOperproce,Role,EquipmentCheckForm,EquipmentCheckItem,Checkproject,Checktask,Checkjob,InspectItem
|
from .models import *
|
||||||
from django.template import RequestContext
|
from django.template import RequestContext
|
||||||
from django.views.decorators.csrf import csrf_exempt
|
from django.views.decorators.csrf import csrf_exempt
|
||||||
from django.core import serializers
|
from django.core import serializers
|
||||||
|
|
@ -207,9 +207,15 @@ def riskadd(req, id):
|
||||||
def risk(req, kind):
|
def risk(req, kind):
|
||||||
return render(req, 'risk.html', {'kind': kind})
|
return render(req, 'risk.html', {'kind': kind})
|
||||||
|
|
||||||
def gridmanage(req):
|
def gridtaskset(req):
|
||||||
return render(req, 'gridmanage.html')
|
return render(req, 'gridtaskset.html')
|
||||||
|
|
||||||
|
def gridtasksetadd(req):
|
||||||
|
return render(req, 'gridtasksetadd.html')
|
||||||
|
|
||||||
|
def gridtasksetedit(req, id):
|
||||||
|
return render(req, 'gridtasksetedit.html', {'id': id})
|
||||||
|
|
||||||
def inspect(req):
|
def inspect(req):
|
||||||
return render(req, 'inspect.html')
|
return render(req, 'inspect.html')
|
||||||
|
|
||||||
|
|
@ -7053,6 +7059,19 @@ def apiriskact(req):
|
||||||
riskact=obj, taskadd=tasktime, taskexpire=tasktime + timedelta(days=7), istask=1)
|
riskact=obj, taskadd=tasktime, taskexpire=tasktime + timedelta(days=7), istask=1)
|
||||||
return JsonResponse({"code": 1})
|
return JsonResponse({"code": 1})
|
||||||
|
|
||||||
|
def apigridtaskset(req):
|
||||||
|
a = req.GET.get('a')
|
||||||
|
userid = req.session['userid']
|
||||||
|
companyid = getcompany(userid)
|
||||||
|
if a == 'listall':
|
||||||
|
objs = GridTaskSet.objects.filter(riskact__usecomp__partid=companyid)
|
||||||
|
if req.GET.get('riskact', None):
|
||||||
|
objs = objs.filter(riskact__id=req.GET.get('riskact'))
|
||||||
|
total = objs.count()
|
||||||
|
startnum, endnum = fenye(req)
|
||||||
|
objs = objs.order_by('-pk')[startnum:endnum].values('id', 'gridlevel', 'user__name',
|
||||||
|
'task_schedule', 'note', 'start_send', 'last_send', 'is_paused', 'count')
|
||||||
|
return HttpResponse(transjson(total, objs), content_type="application/json")
|
||||||
|
|
||||||
def apirisk(req):
|
def apirisk(req):
|
||||||
a = req.GET.get('a')
|
a = req.GET.get('a')
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
from .models import *
|
from .models import *
|
||||||
from .serializers import *
|
from .serializers import *
|
||||||
from rest_framework.views import APIView
|
from rest_framework.views import APIView
|
||||||
|
from rest_framework.viewsets import ModelViewSet
|
||||||
from rest_framework.response import Response
|
from rest_framework.response import Response
|
||||||
from rest_framework import generics
|
from rest_framework import generics
|
||||||
|
|
||||||
|
|
@ -65,4 +66,3 @@ class EquipmentCheckFormAPIView(APIView):
|
||||||
class EquipmentCheckFormDetailView(generics.RetrieveUpdateDestroyAPIView):
|
class EquipmentCheckFormDetailView(generics.RetrieveUpdateDestroyAPIView):
|
||||||
queryset = EquipmentCheckForm.objects.all()
|
queryset = EquipmentCheckForm.objects.all()
|
||||||
serializer_class = EquipmentCheckFormSerializers
|
serializer_class = EquipmentCheckFormSerializers
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue