Jelajahi Sumber

账户管理

jiaweiqi 3 tahun lalu
induk
melakukan
5a43577dc9

+ 2 - 1
apps/api/admin/exam/views.py

@@ -93,11 +93,12 @@ class ExamViewSet(CustomModelViewSet):
     @action(methods=['get'], detail=True)
     def examinee(self, request, pk):
         result = []
-        rows = ExamLog.objects.filter(exam_id=pk, delete=False).values('user_id', 'user__username', 'user__department__name')
+        rows = ExamLog.objects.filter(exam_id=pk, delete=False).values('user_id', 'user__username','user__name', 'user__department__name')
         for row in rows:
             item = {
                 'id':row['user_id'],
                 'username': row['user__username'],
+                'name': row['user__name'],
                 'department_text': row['user__department__name'],
             }
             result.append(item)

+ 1 - 1
apps/examination/exam/filters.py

@@ -14,7 +14,7 @@ class ExamFilter(django_filters.FilterSet):
 
 class FormalExamLogFilter(django_filters.FilterSet):
     exam_name = django_filters.CharFilter(field_name="exam__name", lookup_expr="icontains")
-    user_username = django_filters.CharFilter(field_name="user__username", lookup_expr="icontains")
+    user_name = django_filters.CharFilter(field_name="user__name", lookup_expr="icontains")
     exam_subject = django_filters.CharFilter(field_name='exam__subject_id')
     exam_type = django_filters.CharFilter(field_name='exam__type')
 

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

@@ -7,7 +7,7 @@ from utils.exceptions import CustomError
 class ExamSerializer(serializers.ModelSerializer):
     subject_name = serializers.CharField(source='subject.name', read_only=True)
     type_text = serializers.CharField(source='get_type_display', read_only=True)
-    create_user_text = serializers.CharField(source='create_user.username', read_only=True)
+    create_user_text = serializers.CharField(source='create_user.name', read_only=True)
     question_total_scores = serializers.IntegerField(source='exampaper.question_total_scores', read_only=True)
     passline = serializers.IntegerField(source='exampaper.passline', read_only=True)
     exampaper_name = serializers.CharField(source='exampaper.name', read_only=True)
@@ -18,8 +18,11 @@ class ExamSerializer(serializers.ModelSerializer):
         fields = "__all__"
 
     def get_examinee_name(self, obj):
-        examinees = ExamLog.objects.filter(exam=obj, delete=False).values('user__username')
-        examinee_list = [item['user__username'] for item in examinees]
+        examinees = ExamLog.objects.filter(exam=obj, delete=False).values('user__name')
+        examinee_list = []
+        for item in examinees:
+            if item['user__name']:
+                examinee_list.append(item['user__name'])
         if examinee_list:
             return ','.join(examinee_list)
         return ''
@@ -40,7 +43,7 @@ class ExamSerializer(serializers.ModelSerializer):
 class FormalExamLogSerializer(serializers.ModelSerializer):
     exam_name = serializers.CharField(source='exam.name', read_only=True)
     exam_subject_name = serializers.CharField(source='exam.subject.name', read_only=True)
-    user_name = serializers.CharField(source='user.username', read_only=True)
+    user_name = serializers.CharField(source='user.name', read_only=True)
     user_department = serializers.CharField(source='user.department.name', read_only=True)
     question_total_scores = serializers.IntegerField(source='exampaper.question_total_scores', read_only=True)
     passline = serializers.IntegerField(source='exampaper.passline', read_only=True)

+ 1 - 1
apps/examination/exampaper/serializers.py

@@ -7,7 +7,7 @@ from utils.exceptions import CustomError
 class ExamPaperSerializer(serializers.ModelSerializer):
     subject_name = serializers.CharField(source='subject.name', read_only=True)
     type_text = serializers.CharField(source='get_type_display', read_only=True)
-    create_user_text = serializers.CharField(source='create_user.username', read_only=True)
+    create_user_text = serializers.CharField(source='create_user.name', read_only=True)
 
     class Meta:
         model = ExamPaper

+ 1 - 1
apps/examination/examquestion/serializers.py

@@ -8,7 +8,7 @@ class ExamQuestionSerializer(serializers.ModelSerializer):
     subject = serializers.CharField(source='chapter.subject.id', read_only=True)
     subject_text = serializers.CharField(source='chapter.subject.name', read_only=True)
     chapter_text = serializers.CharField(source='chapter.name', read_only=True)
-    create_user_text = serializers.CharField(source='create_user.username', read_only=True)
+    create_user_text = serializers.CharField(source='create_user.name', read_only=True)
     type_text = serializers.CharField(source='get_type_display', read_only=True)
     difficulty_text = serializers.CharField(source='get_difficulty_display', read_only=True)
     judgment = serializers.SerializerMethodField()

+ 1 - 1
apps/knowledge/serializers.py

@@ -8,7 +8,7 @@ class KnowledgeBaseSerializer(serializers.ModelSerializer):
     subject_name = serializers.CharField(source='chapter.subject.name', read_only=True)
     subject = serializers.CharField(source='chapter.subject.id', read_only=True)
     chapter_name = serializers.CharField(source='chapter.name', read_only=True)
-    create_user_text = serializers.CharField(source='create_user.username', read_only=True)
+    create_user_text = serializers.CharField(source='create_user.name', read_only=True)
 
     class Meta:
         model = KnowledgeBase

+ 1 - 0
apps/staff/models.py

@@ -137,6 +137,7 @@ class User(AbstractBaseUser, PermissionsMixin):
     type = models.PositiveSmallIntegerField(verbose_name=u"类型")
     department = models.ForeignKey(Department, verbose_name=u"所属部门", null=True, blank=True, on_delete=models.PROTECT)
     username = models.CharField(verbose_name=u'帐号', max_length=30, unique=True, db_index=True)
+    name = models.CharField(verbose_name=u'姓名', max_length=30, null=True, blank=True)
     is_active = models.BooleanField(verbose_name=u'激活', default=True)
     date_joined = models.DateTimeField(verbose_name=u'注册时间', default=timezone.now, editable=False)
 

+ 6 - 4
apps/staff/serializers.py

@@ -43,7 +43,8 @@ class AdminUserJWTSerializer(JSONWebTokenSerializer):
                 return {
                     'token': jwt_encode_handler(payload),
                     'user_id': user.id,
-                    'username': user.username
+                    'username': user.username,
+                    'name': user.name
                 }
             else:
                 msg = u'账号或者密码错误!'
@@ -81,7 +82,8 @@ class StaffUserJWTSerializer(JSONWebTokenSerializer):
                 return {
                     'token': jwt_encode_handler(payload),
                     'user_id': user.id,
-                    'username': user.username
+                    'username': user.username,
+                    'name': user.name
                 }
             else:
                 msg = u'账号或者密码错误!'
@@ -162,9 +164,9 @@ class UserSerializer(serializers.ModelSerializer):
         if validated_data['password'].strip() == '':
             raise CustomError(u'密码不能为空!')
         if 'type' in validated_data and validated_data['type'] == User.STAFF:
-            user = User.objects.create_staff(validated_data['username'], validated_data['password'], is_active=validated_data['is_active'], department=validated_data['department'])
+            user = User.objects.create_staff(validated_data['username'], validated_data['password'], name=validated_data['name'], is_active=validated_data['is_active'], department=validated_data['department'])
         else:
-            user = User.objects.create_administrator(validated_data['username'], validated_data['password'], is_active=validated_data['is_active'], department=validated_data['department'])
+            user = User.objects.create_administrator(validated_data['username'], validated_data['password'], name=validated_data['name'], is_active=validated_data['is_active'], department=validated_data['department'])
         return user
 
     def update(self, instance, validated_data):

+ 5 - 2
uis/admin/exam/examinee_edit.html

@@ -86,7 +86,8 @@
       ,url: '/admin/user/?type=2'
       ,cols: [[
           {type:'checkbox'}
-        ,{field:'username', title:'姓名'}
+        ,{field:'name', title:'姓名'}
+        ,{field:'username', title:'帐号'}
         ,{field:'department_text', title:'部门'}
       ]]
         ,height: 'full-145'
@@ -105,7 +106,8 @@
 
     var cols = [
         {type:'checkbox'},
-        {field: 'username', title: '姓名'},
+        {field: 'name', title: '姓名'},
+        {field: 'username', title: '帐号'},
         {field: 'department_text', title: '部门'},
     ]
 
@@ -144,6 +146,7 @@
              if(!is_have){
                  oldData.push({
                      id: selectData[i].id,
+                     name: selectData[i].name,
                      username: selectData[i].username,
                      department_text: selectData[i].department_text
                  })

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

@@ -73,7 +73,7 @@
                                 <input type="text" name="exam_name" autocomplete="off" class="layui-input" placeholder="考试名称关键字"/>
                             </div>
                             <div class="seach_items">
-                                <input type="text" name="user_username" autocomplete="off" class="layui-input" placeholder="人员姓名关键字"/>
+                                <input type="text" name="user_name" autocomplete="off" class="layui-input" placeholder="人员姓名关键字"/>
                             </div>
                             <div class="seach_items">
                                 <select name="exam_type">

+ 7 - 0
uis/admin/user/edit.html

@@ -33,6 +33,13 @@
                   </div>
                 </div>
 
+                  <div class="layui-col-lg6">
+                  <label class="layui-form-label"><font color='red' size="4">*</font>姓名:</label>
+                  <div class="layui-input-block">
+                    <input type="text" name="name" lay-verify="required" placeholder="请输入姓名" autocomplete="off" class="layui-input">
+                  </div>
+                </div>
+
                   <div class="layui-col-lg6">
                   <label class="layui-form-label"><font color='red' size="4">*</font>账号:</label>
                   <div class="layui-input-block">

+ 3 - 2
uis/admin/user/index.html

@@ -92,10 +92,11 @@
       elem: '#datagrid'
       ,url: '/admin/user/'
       ,cols: [[
-        {field:'username', title:'登录账号',width: 200}
+        {field:'name', title:'姓名',width: 100}
+        ,{field:'username', title:'登录账号',width: 200}
         ,{field:'department_text', title:'所属部门', width:300}
         ,{field:'type_text', title:'类型', width:90}
-        ,{field:'status_text', title:'状态', width:90}
+        ,{field:'status_text', title:'启用', width:90}
         ,{width:80, align:'left',title: '操作', fixed: 'right', toolbar: '#datagrid-operate-bar'}
       ]]
       ,page: true