trainplan 完成度字段

This commit is contained in:
caoqianming 2020-12-30 22:29:39 +08:00
parent 3b3d698494
commit c0963f0056
5 changed files with 40 additions and 5 deletions

View File

@ -0,0 +1,18 @@
# Generated by Django 2.2.8 on 2020-12-30 21:32
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('safesite', '0372_train_trainplan'),
]
operations = [
migrations.AddField(
model_name='trainplan',
name='completion',
field=models.FloatField(default=0, verbose_name='完成度'),
),
]

View File

@ -802,6 +802,7 @@ class TrainPlan(models.Model):
deletemark = models.IntegerField(default=1) deletemark = models.IntegerField(default=1)
createby = models.ForeignKey(User, on_delete=models.CASCADE, related_name='trainplan_createby') createby = models.ForeignKey(User, on_delete=models.CASCADE, related_name='trainplan_createby')
updateby = models.ForeignKey(User, on_delete=models.CASCADE, related_name='trainplan_updateby', null=True, blank=True) updateby = models.ForeignKey(User, on_delete=models.CASCADE, related_name='trainplan_updateby', null=True, blank=True)
completion = models.FloatField('完成度',default=0)
def __str__(self) -> str: def __str__(self) -> str:
return str(self.year)+''+str(self.month)+'月计划' return str(self.year)+''+str(self.month)+'月计划'

View File

@ -510,4 +510,10 @@ def updateAqzs():
except: except:
obj = Safecert(**updated_values) obj = Safecert(**updated_values)
obj.save() obj.save()
@shared_task
def call_trainplan_manager():
first_day,first_day_of_next_month = gettime()
year = first_day.year
month = first_day.month
pass

View File

@ -34,7 +34,7 @@
<script> <script>
$(function(){ $(function(){
var option = $('#main').attr('value') var option = $('#main').attr('value')
$('#pxjhtable').datagrid({url:'api/trainplan',queryParams:{a:'listall'}}); $('#pxjhtable').datagrid({url:'api/trainplan/',queryParams:{a:'listall'}});
setYears(); setYears();
$("#year").combobox() $("#year").combobox()
}) })
@ -89,6 +89,15 @@
{ field: 'period', title: '预计学时', width: 60 }, { field: 'period', title: '预计学时', width: 60 },
{ field: 'group__groupname', title: '培训对象', width: 100 }, { field: 'group__groupname', title: '培训对象', width: 100 },
{ field: 'manager__name', title: '负责人', width: 80 }, { field: 'manager__name', title: '负责人', width: 80 },
{ field: 'completion', title: '完成度', width: 160,formatter: function (value, row, index) {
var htmlstr='<div class="easyui-progressbar progressbar easyui-fluid" style="width: 100%; height: 20px;">'
+'<div class="progressbar-text" style="width: 100% height: 20px; line-height: 20px;">'+ value + '%</div> '
+ '<div class="progressbar-value" style="width:'+value+'%; height: 20px; line-height: 20px;">'
+ '<div class="progressbar-text" style="width: 100%; height: 20px; line-height: 20px;">'+value+'%</div>'
+'</div>'
+'</div>';
return htmlstr;
} },
]] ]]
}); });

View File

@ -6132,7 +6132,7 @@ def apitrainplan(req):
objs = objs.filter(year=req.GET.get('year')) objs = objs.filter(year=req.GET.get('year'))
total = objs.count() total = objs.count()
startnum, endnum = fenye(req) startnum, endnum = fenye(req)
objs = objs[startnum:endnum].values('id', 'purpose', 'year', 'month', 'manager__name', 'group__groupname', 'period') objs = objs[startnum:endnum].values('id', 'purpose', 'year', 'month', 'manager__name', 'group__groupname', 'period', 'completion')
return HttpResponse(transjson(total, objs), content_type="application/json") return HttpResponse(transjson(total, objs), content_type="application/json")
elif a == 'add': elif a == 'add':
data = json.loads(req.body.decode('utf-8')) data = json.loads(req.body.decode('utf-8'))
@ -6163,13 +6163,14 @@ def apitrainplan(req):
return JsonResponse({"code": 1}) return JsonResponse({"code": 1})
elif a == 'detail': elif a == 'detail':
id = req.GET.get('id') id = req.GET.get('id')
obj = TrainPlan.objects.filter(id=id).values('id', 'purpose', 'year', 'month', 'manager__name', 'group__groupname', 'period', 'manager', 'group')[0] obj = TrainPlan.objects.filter(id=id).values('id', 'purpose', 'year', 'month', 'manager__name', 'group__groupname', 'period', 'manager', 'group', 'completion')[0]
return HttpResponse(json.dumps(obj, cls=MyEncoder), content_type="application/json") return HttpResponse(json.dumps(obj, cls=MyEncoder), content_type="application/json")
elif a == 'del': elif a == 'del':
id = req.GET.get('id') id = req.GET.get('id')
obj = TrainPlan.objects.get(id=id) obj = TrainPlan.objects.get(id=id)
if User.objects.get(userid=userid).issuper == 1 or userid == obj.createby : if User.objects.get(userid=userid).issuper == 1 or userid == obj.createby :
TrainPlan.objects.get(id=id).delete() obj.deletemark=0
obj.save()
return JsonResponse({"code": 1}) return JsonResponse({"code": 1})
else: else:
return JsonResponse({"code": 0, "msg":'无权限删除'}) return JsonResponse({"code": 0, "msg":'无权限删除'})