From 26c4d25cbc223a2bd059efa42b5108b832ce471b Mon Sep 17 00:00:00 2001 From: caoqianming Date: Sat, 12 Oct 2019 09:34:13 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A2=98=E7=9B=AE=E5=AF=BC=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../migrations/0274_merge_20191011_1415.py | 15 ++++++ .../migrations/0275_auto_20191011_1415.py | 33 ++++++++++++ safesite/models.py | 12 ++--- safesite/static/safesite/muban/tm.xlsx | Bin 0 -> 10763 bytes safesite/tasks.py | 16 ++++-- safesite/templates/abtrain.html | 13 ++++- safesite/templates/index.html | 2 +- safesite/templates/main.html | 6 +-- safesite/templates/question.html | 4 +- safesite/templates/riskactcheck.html | 2 +- safesite/templates/userhtml.html | 2 +- safesite/urls.py | 2 +- safesite/views.py | 50 +++++++++++++----- 13 files changed, 124 insertions(+), 33 deletions(-) create mode 100644 safesite/migrations/0274_merge_20191011_1415.py create mode 100644 safesite/migrations/0275_auto_20191011_1415.py create mode 100644 safesite/static/safesite/muban/tm.xlsx diff --git a/safesite/migrations/0274_merge_20191011_1415.py b/safesite/migrations/0274_merge_20191011_1415.py new file mode 100644 index 00000000..09c8d344 --- /dev/null +++ b/safesite/migrations/0274_merge_20191011_1415.py @@ -0,0 +1,15 @@ +# Generated by Django 2.1.5 on 2019-10-11 14:15 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('safesite', '0272_auto_20190923_1026'), + ('safesite', '0266_auto_20190917_2314'), + ('safesite', '0273_auto_20191008_1604'), + ] + + operations = [ + ] diff --git a/safesite/migrations/0275_auto_20191011_1415.py b/safesite/migrations/0275_auto_20191011_1415.py new file mode 100644 index 00000000..6786032c --- /dev/null +++ b/safesite/migrations/0275_auto_20191011_1415.py @@ -0,0 +1,33 @@ +# Generated by Django 2.1.5 on 2019-10-11 14:15 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('safesite', '0274_merge_20191011_1415'), + ] + + operations = [ + migrations.AlterField( + model_name='user', + name='headimgurl', + field=models.CharField(blank=True, max_length=200, null=True), + ), + migrations.AlterField( + model_name='user', + name='mpopenid', + field=models.CharField(blank=True, max_length=200, null=True), + ), + migrations.AlterField( + model_name='user', + name='nickname', + field=models.CharField(blank=True, max_length=200, null=True), + ), + migrations.AlterField( + model_name='user', + name='openid', + field=models.CharField(blank=True, max_length=200, null=True), + ), + ] diff --git a/safesite/models.py b/safesite/models.py index 1553234a..ca51d125 100644 --- a/safesite/models.py +++ b/safesite/models.py @@ -51,12 +51,12 @@ class User(models.Model): name = models.CharField(max_length=20) password = models.CharField(max_length=30) ubelongpart = models.ForeignKey(Partment,related_name='upart', on_delete=models.CASCADE) - openid=models.CharField(max_length=200,default='0')#公众号openid - nickname=models.CharField(max_length=200,default='wechartname')#昵称 - headimgurl=models.CharField(max_length=200,default='0')#头像 + openid=models.CharField(max_length=200,null=True,blank=True)#公众号openid + nickname=models.CharField(max_length=200,null=True,blank=True)#昵称 + headimgurl=models.CharField(max_length=200,null=True,blank=True)#头像 issuper=models.IntegerField(default='0')#超管 deletemark=models.IntegerField(default='1') - mpopenid=models.CharField(max_length=200,default='0') #小程序openid + mpopenid=models.CharField(max_length=200,null=True,blank=True) #小程序openid usecomp = models.ForeignKey(Partment,on_delete=models.CASCADE,null=True,blank=True)#所属公司 def __str__(self): return self.username @@ -577,8 +577,8 @@ class ExamTest(models.Model):#考试表 state = models.IntegerField(default=1) #1进行中 exampaper = models.ForeignKey(ExamPaper,on_delete=models.CASCADE) user = models.ManyToManyField(User,through='ExamTestDetail') #考试人员 - starttime = models.DateTimeField(null=True,blank=True) - endtime = models.DateTimeField(null=True,blank=True) + starttime = models.DateTimeField(null=True,blank=True)#最早参加 + endtime = models.DateTimeField(null=True,blank=True)#最迟参加 createtime = models.DateTimeField(default = timezone.now) modifytime = models.DateTimeField(auto_now = True) totalscore=models.IntegerField(default=100) diff --git a/safesite/static/safesite/muban/tm.xlsx b/safesite/static/safesite/muban/tm.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..842959e555d9d89b9f962a8e1fc07806c3a787fd GIT binary patch literal 10763 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 Xl*>s%{tO(bkJm)p=0.8 and zgjs <1: @@ -92,7 +96,10 @@ def yjjs_px(companyid): #计算培训效果 participantnum = Trainuser.objects.filter(train__in=a).count() knownum = a.aggregate(knownum = Sum('knownum'))['knownum'] - x = knownum/participantnum + if participantnum != 0: + x = knownum/participantnum + else: + x = 0 if x == 1: pxxg = 1 elif 1>x>= 0.9: @@ -149,7 +156,10 @@ def yjjs_yl(companyid): #计算演练效果 participantnum = Drill.objects.filter(drillid__in=a).count() knownum = a.aggregate(knownum = Sum('knownum'))['knownum'] - x = knownum/participantnum + if participantnum != 0: + x = knownum/participantnum + else: + x = 0 if x == 1: ylxg = 1 elif 1>x>= 0.9: diff --git a/safesite/templates/abtrain.html b/safesite/templates/abtrain.html index 27c68d1f..cc5dd2df 100644 --- a/safesite/templates/abtrain.html +++ b/safesite/templates/abtrain.html @@ -69,7 +69,7 @@ -