fix exam full name
This commit is contained in:
parent
acdaddc343
commit
da54f7bdfa
|
@ -5,7 +5,7 @@ from apps.system.models import CommonADModel, CommonAModel
|
||||||
|
|
||||||
|
|
||||||
class Course(CommonAModel):
|
class Course(CommonAModel):
|
||||||
name = models.CharField("课程名", max_length=20)
|
name = models.CharField("课程名", max_length=100)
|
||||||
|
|
||||||
|
|
||||||
class Certificate(CommonADModel):
|
class Certificate(CommonADModel):
|
||||||
|
|
|
@ -695,7 +695,7 @@ class ExamRecordViewSet(ListModelMixin, DestroyModelMixin, RetrieveModelMixin, G
|
||||||
'用户ID': request.user.id,
|
'用户ID': request.user.id,
|
||||||
'证书编号': cer_number,
|
'证书编号': cer_number,
|
||||||
'证书方案': '202312',
|
'证书方案': '202312',
|
||||||
'单位名称': request.user.dept.name,
|
'单位名称': request.user.dept.full_name,
|
||||||
'所属单位': '国检测试控股集团'+request.user.dept.name,
|
'所属单位': '国检测试控股集团'+request.user.dept.name,
|
||||||
'发证日期': current_date,
|
'发证日期': current_date,
|
||||||
'培训日期':current_date,
|
'培训日期':current_date,
|
||||||
|
|
|
@ -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='全称'),
|
||||||
|
),
|
||||||
|
]
|
|
@ -62,6 +62,7 @@ class Organization(SoftModel):
|
||||||
组织架构
|
组织架构
|
||||||
"""
|
"""
|
||||||
name = models.CharField('名称', max_length=60)
|
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)
|
type = models.ForeignKey('system.dict', verbose_name='组织类型', null=True, blank=True, on_delete=models.SET_NULL)
|
||||||
pid = models.ForeignKey('self', null=True, blank=True,
|
pid = models.ForeignKey('self', null=True, blank=True,
|
||||||
on_delete=models.SET_NULL, verbose_name='父')
|
on_delete=models.SET_NULL, verbose_name='父')
|
||||||
|
|
|
@ -110,8 +110,14 @@ class ImpMixin:
|
||||||
serializer = mySerializer(data=data_list, many=True, context={'request': request})
|
serializer = mySerializer(data=data_list, many=True, context={'request': request})
|
||||||
if serializer.is_valid():
|
if serializer.is_valid():
|
||||||
serializer.save()
|
serializer.save()
|
||||||
else:
|
else:
|
||||||
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
|
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)
|
return Response({'uploaded': 'File uploaded successfully'}, status=status.HTTP_201_CREATED)
|
||||||
|
|
||||||
|
@ -344,17 +350,19 @@ class UserExamViewset(ImpMixin, ModelViewSet):
|
||||||
data_list = []
|
data_list = []
|
||||||
exam_role = Role.objects.get(name='考试')
|
exam_role = Role.objects.get(name='考试')
|
||||||
if not exam_role:
|
if not exam_role:
|
||||||
return Response({'msg': '考试角色不存在'})
|
raise ParseError('考试角色不存在')
|
||||||
for row in sheet.iter_rows(min_row=start, values_only=True): # 假设第一行是表头,从第二行开始读取数据
|
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:
|
if row[0] is not None:
|
||||||
dept = Organization.objects.get(name=row[2])
|
deptname = row[2].strip()
|
||||||
user_depts = get_child_queryset2(self.request.user.dept).order_by('sort')
|
username = row[1].replace(' ', '').strip()
|
||||||
depts = any(i.name==dept.name for i in user_depts)
|
name = row[0].replace(' ', '').strip()
|
||||||
if depts is False:
|
dept = depts_dict.get(deptname, None)
|
||||||
return Response({'msg': f'本公司下不存在此部门{row[2]}'})
|
if dept is None:
|
||||||
|
raise ParseError(f'第{ind}行不存在此部门{deptname}')
|
||||||
serializer_data = {
|
serializer_data = {
|
||||||
'name': row[0],
|
'name': name,
|
||||||
'username':row[1],
|
'username':username,
|
||||||
'dept':dept.id,
|
'dept':dept.id,
|
||||||
'roles':[exam_role.id],
|
'roles':[exam_role.id],
|
||||||
'avatar': "/media/default/avatar.png"
|
'avatar': "/media/default/avatar.png"
|
||||||
|
|
Loading…
Reference in New Issue