Parcourir la source

Merge remote-tracking branch 'origin/master'

wushaodong il y a 3 ans
Parent
commit
3f1807db21
3 fichiers modifiés avec 23 ajouts et 4 suppressions
  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 apps.examination.examquestion.models import ExamQuestion
 from utils.exceptions import CustomError
+from utils.format import strfsecond
 
 
 class ExamSerializer(serializers.ModelSerializer):
@@ -65,11 +66,17 @@ class FormalExamLogSerializer(serializers.ModelSerializer):
     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_scores = serializers.IntegerField(source='exampaper.judgment_total_scores', read_only=True)
+    use_time = serializers.SerializerMethodField()
 
     class Meta:
         model = ExamLog
         fields = "__all__"
 
+    def get_use_time(self, obj):
+        if obj.use_time:
+            return strfsecond(obj.use_time)
+        return ''
+
 
 class StaffExamLogSerializer(serializers.ModelSerializer):
     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: 'rank', title: '排名', width: 80}
                 , {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'}
             ]]
             , page: true

+ 15 - 3
utils/format.py

@@ -20,11 +20,23 @@ def strfsecond(second):
     d = datetime.datetime(1,1,1) + sec
     if d.hour > 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:
-            retval = "%d小时" % (d.hour)
+            if d.second > 0:
+                retval = "%d小时%d秒" % (d.hour, d.second)
+            else:
+                retval = "%d小时" % (d.hour)
     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