Browse Source

Merge remote-tracking branch 'origin/master'

wushaodong 3 years ago
parent
commit
3f1807db21
3 changed files with 23 additions and 4 deletions
  1. 7 0
      apps/examination/exam/serializers.py
  2. 1 1
      uis/admin/examlog/index.html
  3. 15 3
      utils/format.py

+ 7 - 0
apps/examination/exam/serializers.py

@@ -5,6 +5,7 @@ from rest_framework import serializers
 from .models import Exam, ExamLog, ExamAnswerLog, ExamAnswerOptionLog, ExamAnswerFillLog
 from .models import Exam, ExamLog, ExamAnswerLog, ExamAnswerOptionLog, ExamAnswerFillLog
 from apps.examination.examquestion.models import ExamQuestion
 from apps.examination.examquestion.models import ExamQuestion
 from utils.exceptions import CustomError
 from utils.exceptions import CustomError
+from utils.format import strfsecond
 
 
 
 
 class ExamSerializer(serializers.ModelSerializer):
 class ExamSerializer(serializers.ModelSerializer):
@@ -65,11 +66,17 @@ class FormalExamLogSerializer(serializers.ModelSerializer):
     fill_scores = serializers.IntegerField(source='exampaper.fill_total_scores', read_only=True)
     fill_scores = serializers.IntegerField(source='exampaper.fill_total_scores', read_only=True)
     judgment_count = serializers.IntegerField(source='exampaper.judgment_total_count', read_only=True)
     judgment_count = serializers.IntegerField(source='exampaper.judgment_total_count', read_only=True)
     judgment_scores = serializers.IntegerField(source='exampaper.judgment_total_scores', read_only=True)
     judgment_scores = serializers.IntegerField(source='exampaper.judgment_total_scores', read_only=True)
+    use_time = serializers.SerializerMethodField()
 
 
     class Meta:
     class Meta:
         model = ExamLog
         model = ExamLog
         fields = "__all__"
         fields = "__all__"
 
 
+    def get_use_time(self, obj):
+        if obj.use_time:
+            return strfsecond(obj.use_time)
+        return ''
+
 
 
 class StaffExamLogSerializer(serializers.ModelSerializer):
 class StaffExamLogSerializer(serializers.ModelSerializer):
     exampaper_name = serializers.CharField(source='exampaper.name', read_only=True)
     exampaper_name = serializers.CharField(source='exampaper.name', read_only=True)

+ 1 - 1
uis/admin/examlog/index.html

@@ -146,7 +146,7 @@
                 , {field: 'scores', title: '分数', width: 80}
                 , {field: 'scores', title: '分数', width: 80}
                 , {field: 'rank', title: '排名', width: 80}
                 , {field: 'rank', title: '排名', width: 80}
                 , {field: 'submit_time', title: '交卷时间', width: 165}
                 , {field: 'submit_time', title: '交卷时间', width: 165}
-                , {field: 'use_time', title: '用时', width: 120}
+                , {field: 'use_time', title: '用时', width: 150}
                 , {title: '操作', width: 80, align: 'center', fixed: 'right', toolbar: '#exam_question-operate-bar'}
                 , {title: '操作', width: 80, align: 'center', fixed: 'right', toolbar: '#exam_question-operate-bar'}
             ]]
             ]]
             , page: true
             , page: true

+ 15 - 3
utils/format.py

@@ -20,11 +20,23 @@ def strfsecond(second):
     d = datetime.datetime(1,1,1) + sec
     d = datetime.datetime(1,1,1) + sec
     if d.hour > 0:
     if d.hour > 0:
         if d.minute > 0:
         if d.minute > 0:
-            retval = "%d小时%d分钟" % (d.hour, d.minute)
+            if d.second > 0:
+                retval = "%d小时%d分钟%d秒" % (d.hour, d.minute, d.second)
+            else:
+                retval = "%d小时%d分钟" % (d.hour, d.minute)
         else:
         else:
-            retval = "%d小时" % (d.hour)
+            if d.second > 0:
+                retval = "%d小时%d秒" % (d.hour, d.second)
+            else:
+                retval = "%d小时" % (d.hour)
     else:
     else:
-        retval = "%d分钟" % (d.minute)
+        if d.minute > 0:
+            if d.second > 0:
+                retval = "%d分钟%d秒" % (d.minute, d.second)
+            else:
+                retval = "%d分钟" % (d.minute)
+        else:
+            retval = "%d秒" % (d.second)
     return retval
     return retval