diff --git a/safesite/models.py b/safesite/models.py index fd0f0ff3..74f7baa1 100644 --- a/safesite/models.py +++ b/safesite/models.py @@ -793,9 +793,13 @@ class TrainPlan(models.Model): purpose = models.TextField('培训目的') year = models.IntegerField('年份', default=2021) month = models.IntegerField('月份', default=1) - manager = models.ForeignKey(User, verbose_name="负责人", on_delete=models.SET_NULL, null=True, blank=True) + manager = models.ForeignKey(User, verbose_name="负责人", on_delete=models.SET_NULL, null=True, blank=True, related_name='trainplan_manager') period = models.IntegerField('预计学时', default=0) - group = models.ForeignKey(Group, verbose_name='组', on_delete=models.SET_NULL, null=True, blank=True) + group = models.ForeignKey(Group, verbose_name='组', on_delete=models.SET_NULL, null=True, blank=True, related_name='trainplan_group') + usecomp = models.ForeignKey(Partment, on_delete=models.CASCADE) + createtime = models.DateTimeField(default=timezone.now) + modifytime = models.DateTimeField(auto_now=True) + deletemark = models.IntegerField(default=1) def __str__(self) -> str: return str(self.year)+'年'+str(self.month)+'月计划' diff --git a/safesite/serializers.py b/safesite/serializers.py index a6ed38af..6812d4dc 100644 --- a/safesite/serializers.py +++ b/safesite/serializers.py @@ -47,3 +47,13 @@ class EquipmentCheckFormSerializers2(serializers.Serializer): desc = serializers.CharField() usecomp = serializers.PrimaryKeyRelatedField(read_only=True) createby = UserSerializer(read_only=True) + +class TrainPlanSerializer(serializers.ModelSerializer): + class Meta: + model = TrainPlan + fields = '__all__' + +class TrainPlanUpdateSerializer(serializers.ModelSerializer): + class Meta: + model = TrainPlan + fields = ('purpose','year','month', 'manager', 'period', 'group') \ No newline at end of file diff --git a/safesite/templates/trainplan.html b/safesite/templates/trainplan.html new file mode 100644 index 00000000..6f947317 --- /dev/null +++ b/safesite/templates/trainplan.html @@ -0,0 +1,180 @@ +
+
+
+
+ + + + + + + + + 查询 + 重置 +
+
+
+ {% load myfilter %} + {% if request|has_permission:'b_examtest_add1' %} + 试卷库考试 + {% endif %} + {% if request|has_permission:'b_examtest_add2' %} + 自动抽题考试 + {% endif %} + {% if request|has_permission:'b_examtest_close' %} + 关闭考试 + {% endif %} + {% if request|has_permission:'b_examtest_del' %} + 删除 + {% endif %} + {% if request|has_permission:'b_examtest_detail' %} + 查看详情 + {% endif %} +
+
+ \ No newline at end of file diff --git a/safesite/views.py b/safesite/views.py index 07eb43d0..3fba795e 100644 --- a/safesite/views.py +++ b/safesite/views.py @@ -6105,6 +6105,24 @@ def apiexampaper(req): return JsonResponse({"code": 1}) +def apitrainplan(req): + a = req.GET.get('a') + userid = req.session['userid'] + companyid = getcompany(userid) + if a == 'listall': + objs = TrainPlan.objects.filter(usecomp__partid=companyid,deletemark=1) + total = objs.count() + startnum, endnum = fenye(req) + objs = objs[startnum:endnum].values('id', 'purpose', 'year', 'month', 'manager', 'group_name') + return HttpResponse(transjson(total, a), content_type="application/json") + elif a == 'add': + pass + elif a == 'edit': + pass + elif a == 'del': + pass + + def apiexamtest(req): a = req.GET.get('a') userid = req.session['userid'] diff --git a/safesite/viewsdrf.py b/safesite/viewsdrf.py index f99689e8..a0ca6cbe 100644 --- a/safesite/viewsdrf.py +++ b/safesite/viewsdrf.py @@ -1,6 +1,7 @@ from .models import * from .serializers import * from rest_framework.views import APIView +from rest_framework.generics import ListAPIView from rest_framework.viewsets import ModelViewSet from rest_framework.response import Response from rest_framework import generics diff --git a/需求/~$培训系统建议.docx b/需求/~$培训系统建议.docx new file mode 100644 index 00000000..913aee83 Binary files /dev/null and b/需求/~$培训系统建议.docx differ diff --git a/需求/安全培训系统建议.docx b/需求/安全培训系统建议.docx new file mode 100644 index 00000000..500a71bb Binary files /dev/null and b/需求/安全培训系统建议.docx differ