fix exam full name

This commit is contained in:
zty 2024-07-24 17:11:52 +08:00
parent acdaddc343
commit da54f7bdfa
5 changed files with 40 additions and 13 deletions

View File

@ -5,7 +5,7 @@ from apps.system.models import CommonADModel, CommonAModel
class Course(CommonAModel):
name = models.CharField("课程名", max_length=20)
name = models.CharField("课程名", max_length=100)
class Certificate(CommonADModel):

View File

@ -695,7 +695,7 @@ class ExamRecordViewSet(ListModelMixin, DestroyModelMixin, RetrieveModelMixin, G
'用户ID': request.user.id,
'证书编号': cer_number,
'证书方案': '202312',
'单位名称': request.user.dept.name,
'单位名称': request.user.dept.full_name,
'所属单位': '国检测试控股集团'+request.user.dept.name,
'发证日期': current_date,
'培训日期':current_date,

View File

@ -0,0 +1,18 @@
# Generated by Django 3.2.12 on 2024-07-23 00:44
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('system', '0023_alter_user_first_name'),
]
operations = [
migrations.AddField(
model_name='organization',
name='full_name',
field=models.CharField(blank=True, max_length=100, null=True, verbose_name='全称'),
),
]

View File

@ -62,6 +62,7 @@ class Organization(SoftModel):
组织架构
"""
name = models.CharField('名称', max_length=60)
full_name = models.CharField('全称', max_length=100, null=True, blank=True)
type = models.ForeignKey('system.dict', verbose_name='组织类型', null=True, blank=True, on_delete=models.SET_NULL)
pid = models.ForeignKey('self', null=True, blank=True,
on_delete=models.SET_NULL, verbose_name='')

View File

@ -110,8 +110,14 @@ class ImpMixin:
serializer = mySerializer(data=data_list, many=True, context={'request': request})
if serializer.is_valid():
serializer.save()
else:
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
else:
err_msg = ''
if isinstance(serializer.errors, list):
for ind, val in enumerate(serializer.errors):
if val:
err_msg = f'{ind+2}行: {str(val)}'
break
raise ParseError(err_msg)
return Response({'uploaded': 'File uploaded successfully'}, status=status.HTTP_201_CREATED)
@ -344,17 +350,19 @@ class UserExamViewset(ImpMixin, ModelViewSet):
data_list = []
exam_role = Role.objects.get(name='考试')
if not exam_role:
return Response({'msg': '考试角色不存在'})
for row in sheet.iter_rows(min_row=start, values_only=True): # 假设第一行是表头,从第二行开始读取数据
raise ParseError('考试角色不存在')
depts_dict = {dept.name: dept for dept in Organization.objects.all()}
for ind, row in enumerate(sheet.iter_rows(min_row=start, values_only=True)): # 假设第一行是表头,从第二行开始读取数据
if row[0] is not None:
dept = Organization.objects.get(name=row[2])
user_depts = get_child_queryset2(self.request.user.dept).order_by('sort')
depts = any(i.name==dept.name for i in user_depts)
if depts is False:
return Response({'msg': f'本公司下不存在此部门{row[2]}'})
deptname = row[2].strip()
username = row[1].replace(' ', '').strip()
name = row[0].replace(' ', '').strip()
dept = depts_dict.get(deptname, None)
if dept is None:
raise ParseError(f'{ind}行不存在此部门{deptname}')
serializer_data = {
'name': row[0],
'username':row[1],
'name': name,
'username':username,
'dept':dept.id,
'roles':[exam_role.id],
'avatar': "/media/default/avatar.png"