From dcc9fee8f39ea6cc3ba90b723d0cd525cdbcbab7 Mon Sep 17 00:00:00 2001 From: TianyangZhang Date: Wed, 29 Oct 2025 14:28:14 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20ofm-=20papersecret=20=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E8=AE=BA=E6=96=87=E7=94=B3=E5=AF=86=E7=9A=84model=20=E5=90=8D?= =?UTF-8?q?=E5=AD=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ofm/migrations/0027_auto_20251029_1426.py | 44 +++++++++++++++++++ apps/ofm/models.py | 2 +- apps/ofm/serializers.py | 4 +- apps/ofm/services.py | 8 ++-- apps/ofm/views.py | 4 +- 5 files changed, 53 insertions(+), 9 deletions(-) create mode 100644 apps/ofm/migrations/0027_auto_20251029_1426.py diff --git a/apps/ofm/migrations/0027_auto_20251029_1426.py b/apps/ofm/migrations/0027_auto_20251029_1426.py new file mode 100644 index 00000000..3ff5e9fb --- /dev/null +++ b/apps/ofm/migrations/0027_auto_20251029_1426.py @@ -0,0 +1,44 @@ +# Generated by Django 3.2.12 on 2025-10-29 06:26 + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion +import django.utils.timezone + + +class Migration(migrations.Migration): + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('wf', '0004_workflow_view_path2'), + ('ofm', '0026_paperse'), + ] + + operations = [ + migrations.CreateModel( + name='Papersecret', + fields=[ + ('id', models.CharField(editable=False, help_text='主键ID', max_length=20, primary_key=True, serialize=False, verbose_name='主键ID')), + ('create_time', models.DateTimeField(default=django.utils.timezone.now, help_text='创建时间', verbose_name='创建时间')), + ('update_time', models.DateTimeField(auto_now=True, help_text='修改时间', verbose_name='修改时间')), + ('is_deleted', models.BooleanField(default=False, help_text='删除标记', verbose_name='删除标记')), + ('paper_name', models.CharField(max_length=100, verbose_name='拟发表论文名称')), + ('publication_name', models.CharField(max_length=100, verbose_name='拟投期刊名称')), + ('author', models.CharField(max_length=100, verbose_name='作者')), + ('paper_type', models.CharField(max_length=100, verbose_name='拟发表文章类型')), + ('is_chinese_core', models.BooleanField(default=False, verbose_name='是否为中文核心')), + ('is_sci', models.BooleanField(default=False, verbose_name='是否被SCI/EI收录')), + ('tech_status', models.JSONField(blank=True, default=list, help_text='技术状态信息列表,每个条目包含name(名称)、status(状态)、file(文件)字段', verbose_name='技术状态')), + ('tech_file', models.JSONField(default=list, help_text='技术文件信息列表,每个条目包含name(名称)page(页数)字段', verbose_name='技术文件')), + ('create_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='papersecret_create_by', to=settings.AUTH_USER_MODEL, verbose_name='创建人')), + ('ticket', models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='paperse_ticket', to='wf.ticket', verbose_name='关联工单')), + ('update_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='papersecret_update_by', to=settings.AUTH_USER_MODEL, verbose_name='最后编辑人')), + ], + options={ + 'abstract': False, + }, + ), + migrations.DeleteModel( + name='PaperSe', + ), + ] diff --git a/apps/ofm/models.py b/apps/ofm/models.py index a4e3b6c8..00a460c1 100644 --- a/apps/ofm/models.py +++ b/apps/ofm/models.py @@ -182,7 +182,7 @@ class PatentInfo(CommonBDModel): ticket = models.ForeignKey('wf.ticket', verbose_name='关联工单', on_delete=models.SET_NULL, related_name='patentInfo_ticket', null=True, blank=True, db_constraint=False) -class PaperSe(CommonADModel): +class Papersecret(CommonADModel): """TN: 论文申密审批表单""" paper_name = models.CharField('拟发表论文名称', max_length=100) publication_name = models.CharField('拟投期刊名称', max_length=100) diff --git a/apps/ofm/serializers.py b/apps/ofm/serializers.py index 6598b0e4..5cc82bf1 100644 --- a/apps/ofm/serializers.py +++ b/apps/ofm/serializers.py @@ -1,4 +1,4 @@ -from .models import (Mroom, MroomBooking, MroomSlot, LendingSeal, Vehicle, FileRecord, BorrowRecord, Publicity, PatentInfo, PaperSe) +from .models import (Mroom, MroomBooking, MroomSlot, LendingSeal, Vehicle, FileRecord, BorrowRecord, Publicity, PatentInfo, Papersecret) # Publicity, PatetInfo, PaperOfm, Platform, Project, PatentRecord, PaperRecord, ProjectApproval, ProjectInfo) from apps.utils.serializers import CustomModelSerializer from rest_framework import serializers @@ -134,7 +134,7 @@ class PatentInfoSerializer(CustomModelSerializer): class PaperSeSerializer(CustomModelSerializer): class Meta: - model = PaperSe + model = Papersecret fields = '__all__' read_only_fields = EXCLUDE_FIELDS diff --git a/apps/ofm/services.py b/apps/ofm/services.py index ad99c482..09d3f613 100644 --- a/apps/ofm/services.py +++ b/apps/ofm/services.py @@ -1,7 +1,7 @@ from apps.wf.models import Ticket # TicketFlow, Transition, Workflow, CustomField, State, -from apps.ofm.models import LendingSeal, Vehicle, BorrowRecord, Publicity, MroomBooking, MroomSlot, PatentInfo, PaperSe +from apps.ofm.models import LendingSeal, Vehicle, BorrowRecord, Publicity, MroomBooking, MroomSlot, PatentInfo, Papersecret from rest_framework.exceptions import ParseError @@ -167,7 +167,7 @@ def patent_save_ticket_data(ticket: Ticket, new_ticket_data: dict, **kwargs): def paperse_patent(ticket: Ticket, transition, new_ticket_data: dict): - ins = PaperSe.objects.get(id=new_ticket_data['t_id']) + ins = Papersecret.objects.get(id=new_ticket_data['t_id']) ticket_data = ticket.ticket_data ticket_data.update({ 't_model': 'paperse', @@ -182,8 +182,8 @@ def paperse_patent(ticket: Ticket, transition, new_ticket_data: dict): def paperse_save_ticket_data(ticket: Ticket, new_ticket_data: dict, **kwargs): try: - obj = PaperSe.objects.get(id=new_ticket_data['t_id']) - except PaperSe.DoesNotExist: + obj = Papersecret.objects.get(id=new_ticket_data['t_id']) + except Papersecret.DoesNotExist: raise ParseError("Publicity t_id 不存在") data_save = {k: v for k, v in new_ticket_data.items() if k not in ['t_model', 't_id']} diff --git a/apps/ofm/views.py b/apps/ofm/views.py index 9fa530a9..953ed450 100644 --- a/apps/ofm/views.py +++ b/apps/ofm/views.py @@ -1,6 +1,6 @@ from django.shortcuts import render from apps.utils.viewsets import CustomModelViewSet, CustomGenericViewSet -from .models import Mroom, MroomBooking, MroomSlot, LendingSeal, Vehicle, FileRecord, BorrowRecord, Publicity, PatentInfo, PaperSe +from .models import Mroom, MroomBooking, MroomSlot, LendingSeal, Vehicle, FileRecord, BorrowRecord, Publicity, PatentInfo, Papersecret # Publicity, , PaperOfm, Platform, Project, PatentRecord, PaperRecord, ProjectApproval, ProjectInfo) from .serializers import (MroomSerializer, MroomBookingSerializer, MroomSlotSerializer, LendingSealSerializer, VehicleSerializer, FileRecordSerializer, BorrowRecordSerializer, PublicitySerializer, PatentInfoSerializer, PaperSeSerializer) @@ -187,7 +187,7 @@ class PaperSeViewSet(CustomModelViewSet): 论文申密审批 """ - queryset = PaperSe.objects.all() + queryset = Papersecret.objects.all() serializer_class = PaperSeSerializer filterset_fields = ["paper_name", "author"] ordering = ["create_time", "paper_name"]