jiaweiqi 3 سال پیش
والد
کامیت
ccb02498bc
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