浏览代码

Merge remote-tracking branch 'origin/master'

wushaodong 3 年之前
父节点
当前提交
3f1807db21
共有 3 个文件被更改,包括 23 次插入4 次删除
  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