Merge branch 'master' of http://gitea.xxhhcty.xyz:8080/zcdsj/factory
This commit is contained in:
commit
0b2b7f2fa2
|
|
@ -1,5 +1,5 @@
|
|||
from django_filters import rest_framework as filters
|
||||
from apps.ofm.models import MroomBooking, BorrowRecord, Vehicle
|
||||
from apps.ofm.models import MroomBooking, BorrowRecord, VehicleUse
|
||||
|
||||
from .models import LendingSeal
|
||||
from apps.utils.filters import MyJsonListFilter
|
||||
|
|
@ -17,7 +17,7 @@ class MroomBookingFilterset(filters.FilterSet):
|
|||
|
||||
class VehicleFilterset(filters.FilterSet):
|
||||
class Meta:
|
||||
model = Vehicle
|
||||
model = VehicleUse
|
||||
fields = {
|
||||
'slot_vehicle__vehreg': ['exact', 'in'],
|
||||
'slot_vehicle__vdate': ['exact', 'gte', 'lte'],
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
# Generated by Django 3.2.12 on 2025-06-25 09:29
|
||||
# Generated by Django 3.2.12 on 2025-11-18 03:08
|
||||
|
||||
from django.conf import settings
|
||||
import django.core.validators
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
import django.utils.timezone
|
||||
|
|
@ -11,7 +12,9 @@ class Migration(migrations.Migration):
|
|||
initial = True
|
||||
|
||||
dependencies = [
|
||||
('system', '0006_auto_20241213_1249'),
|
||||
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
||||
('wf', '0005_workflow_cate'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
|
|
@ -40,13 +43,114 @@ class Migration(migrations.Migration):
|
|||
('update_time', models.DateTimeField(auto_now=True, help_text='修改时间', verbose_name='修改时间')),
|
||||
('is_deleted', models.BooleanField(default=False, help_text='删除标记', verbose_name='删除标记')),
|
||||
('title', models.CharField(max_length=100, verbose_name='会议主题')),
|
||||
('note', models.TextField(blank=True, null=True, verbose_name='备注')),
|
||||
('participant_count', models.PositiveIntegerField(default=0, verbose_name='参会人数')),
|
||||
('key_participants', models.TextField(blank=True, null=True, verbose_name='主要参会领导')),
|
||||
('belong_dept', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='mroombooking_belong_dept', to='system.dept', verbose_name='所属部门')),
|
||||
('create_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='mroombooking_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='mrooms_ticket', to='wf.ticket', verbose_name='关联会议室')),
|
||||
('update_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='mroombooking_update_by', to=settings.AUTH_USER_MODEL, verbose_name='最后编辑人')),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='VehicleReg',
|
||||
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='删除标记')),
|
||||
('name', models.CharField(max_length=50, verbose_name='车辆名称')),
|
||||
('brand', models.CharField(blank=True, max_length=50, null=True, verbose_name='品牌')),
|
||||
('plate', models.CharField(max_length=50, verbose_name='车牌号')),
|
||||
('km', models.PositiveIntegerField(blank=True, null=True, verbose_name='行驶里程')),
|
||||
('create_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='vehiclereg_create_by', to=settings.AUTH_USER_MODEL, verbose_name='创建人')),
|
||||
('update_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='vehiclereg_update_by', to=settings.AUTH_USER_MODEL, verbose_name='最后编辑人')),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='VehicleUse',
|
||||
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='删除标记')),
|
||||
('location', models.CharField(blank=True, max_length=100, null=True, verbose_name='出发地点')),
|
||||
('via', models.CharField(blank=True, max_length=100, null=True, verbose_name='途经地点')),
|
||||
('destination', models.CharField(blank=True, max_length=100, null=True, verbose_name='到达地点')),
|
||||
('start_km', models.PositiveIntegerField(verbose_name='出发公里数')),
|
||||
('end_km', models.PositiveIntegerField(blank=True, null=True, verbose_name='归还公里数')),
|
||||
('actual_km', models.PositiveIntegerField(editable=False, verbose_name='实际行驶公里数')),
|
||||
('is_city', models.BooleanField(default=True, verbose_name='是否市内用车')),
|
||||
('reason', models.CharField(max_length=100, verbose_name='用车事由')),
|
||||
('reception', models.CharField(blank=True, max_length=50, null=True, verbose_name='接待人')),
|
||||
('belong_dept', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='vehicleuse_belong_dept', to='system.dept', verbose_name='所属部门')),
|
||||
('create_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='vehicleuse_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='vehicle_ticket', to='wf.ticket', verbose_name='关联工单')),
|
||||
('update_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='vehicleuse_update_by', to=settings.AUTH_USER_MODEL, verbose_name='最后编辑人')),
|
||||
('vehiclereg', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='vehicle_record', to='ofm.vehiclereg')),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='VehicleSlot',
|
||||
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='删除标记')),
|
||||
('vdate', models.DateField(db_index=True, verbose_name='使用日期')),
|
||||
('slot', models.PositiveIntegerField(help_text='0-47', verbose_name='时段')),
|
||||
('is_inuse', models.BooleanField(default=True, verbose_name='是否占用')),
|
||||
('vehicle_use', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='slot_vehicle', to='ofm.vehicleuse')),
|
||||
('vehreg', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='slot_record', to='ofm.vehiclereg')),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Publicity',
|
||||
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='删除标记')),
|
||||
('number', models.CharField(blank=True, max_length=50, null=True, verbose_name='记录编号')),
|
||||
('title', models.CharField(max_length=100, verbose_name='送审稿件标题')),
|
||||
('participants', models.CharField(max_length=50, verbose_name='所有撰稿人')),
|
||||
('pub_dept', models.CharField(blank=True, max_length=50, null=True, verbose_name='部室/研究院')),
|
||||
('pfile', models.CharField(blank=True, max_length=100, null=True, verbose_name='稿件路径')),
|
||||
('level', models.JSONField(default=list, help_text="['重要', '一般', '非涉密']", verbose_name='涉密等级')),
|
||||
('content', models.JSONField(default=list, help_text="['武器装备科研生产综合事项', '其它']", verbose_name='稿件内容涉及')),
|
||||
('other_content', models.CharField(blank=True, max_length=100, null=True, verbose_name='其它内容')),
|
||||
('report_purpose', models.CharField(blank=True, max_length=100, null=True, verbose_name='宣传报道目的')),
|
||||
('channel', models.JSONField(default=list, help_text="['互联网', '信息平台', '官微', '公开发行物', '其它']", verbose_name='发布渠道')),
|
||||
('other_channel', models.CharField(blank=True, max_length=50, null=True, verbose_name='其它渠道')),
|
||||
('report_name', models.CharField(blank=True, max_length=50, null=True, verbose_name='报道名称')),
|
||||
('review', models.JSONField(blank=True, default=list, help_text="['内容不涉及国家秘密和商业秘密,申请公开', '内容涉及国家秘密,申请按涉密渠道发布']", null=True, verbose_name='第一撰稿人自审')),
|
||||
('dept_opinion', models.CharField(blank=True, max_length=100, null=True, verbose_name='部门负责人意见')),
|
||||
('disposal_method', models.CharField(blank=True, max_length=50, null=True, verbose_name='处理方式')),
|
||||
('secret_level', models.CharField(blank=True, max_length=50, null=True, verbose_name='秘密等级')),
|
||||
('secret_period', models.CharField(blank=True, max_length=50, null=True, verbose_name='秘密期限')),
|
||||
('dept_opinion_review', models.CharField(blank=True, max_length=100, null=True, verbose_name='部门审查意见')),
|
||||
('publicity_opinion', models.CharField(blank=True, max_length=100, null=True, verbose_name='宣传报道意见')),
|
||||
('belong_dept', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='publicity_belong_dept', to='system.dept', verbose_name='所属部门')),
|
||||
('create_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='publicity_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='publicity_ticket', to='wf.ticket', verbose_name='关联工单')),
|
||||
('update_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='publicity_update_by', to=settings.AUTH_USER_MODEL, verbose_name='最后编辑人')),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='MroomSlot',
|
||||
fields=[
|
||||
|
|
@ -56,11 +160,83 @@ class Migration(migrations.Migration):
|
|||
('is_deleted', models.BooleanField(default=False, help_text='删除标记', verbose_name='删除标记')),
|
||||
('mdate', models.DateField(db_index=True, verbose_name='会议日期')),
|
||||
('slot', models.PositiveIntegerField(help_text='0-47', verbose_name='时段')),
|
||||
('is_inuse', models.BooleanField(default=True, verbose_name='是否占用')),
|
||||
('booking', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='slot_b', to='ofm.mroombooking')),
|
||||
('mroom', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='slot_m', to='ofm.mroom')),
|
||||
],
|
||||
options={
|
||||
'unique_together': {('mroom', 'mdate', 'slot')},
|
||||
'abstract': False,
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='LendingSeal',
|
||||
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='删除标记')),
|
||||
('seal', models.JSONField(default=list, help_text='[公章,法人章,财务章,合同章,业务章,其他章]', verbose_name='印章信息')),
|
||||
('seal_other', models.CharField(blank=True, max_length=50, null=True, verbose_name='其他印章')),
|
||||
('filename', models.TextField(verbose_name='文件名称')),
|
||||
('file', models.TextField(verbose_name='文件内容')),
|
||||
('file_count', models.PositiveIntegerField(verbose_name='用印份数')),
|
||||
('is_lending', models.BooleanField(default=False, verbose_name='是否借出')),
|
||||
('contacts', models.CharField(blank=True, max_length=50, null=True, validators=[django.core.validators.RegexValidator('^1[3456789]\\d{9}$', '手机号码格式不正确')], verbose_name='联系方式')),
|
||||
('lending_date', models.DateField(blank=True, null=True, verbose_name='借出日期')),
|
||||
('return_date', models.DateField(blank=True, null=True, verbose_name='拟归还日期')),
|
||||
('actual_return_date', models.DateField(blank=True, null=True, verbose_name='实际归还日期')),
|
||||
('reason', models.CharField(blank=True, max_length=100, null=True, verbose_name='借用理由')),
|
||||
('note', models.TextField(blank=True, null=True, verbose_name='备注')),
|
||||
('belong_dept', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='lendingseal_belong_dept', to='system.dept', verbose_name='所属部门')),
|
||||
('create_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='lendingseal_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='seal_ticket', to='wf.ticket', verbose_name='关联工单')),
|
||||
('update_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='lendingseal_update_by', to=settings.AUTH_USER_MODEL, verbose_name='最后编辑人')),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='FileRecord',
|
||||
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='删除标记')),
|
||||
('name', models.CharField(max_length=100, verbose_name='资料名称')),
|
||||
('number', models.CharField(blank=True, max_length=50, null=True, verbose_name='档案编号')),
|
||||
('counts', models.CharField(blank=True, max_length=10, null=True, verbose_name='文件份数')),
|
||||
('location', models.CharField(blank=True, max_length=100, null=True, verbose_name='存放位置')),
|
||||
('contacts', models.CharField(blank=True, max_length=50, null=True, validators=[django.core.validators.RegexValidator('^1[3456789]\\d{9}$', '手机号码格式不正确')], verbose_name='存档人电话')),
|
||||
('reciver', models.CharField(blank=True, max_length=50, null=True, verbose_name='接收人(综合办)')),
|
||||
('remark', models.TextField(blank=True, max_length=200, null=True, verbose_name='备注')),
|
||||
('belong_dept', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='filerecord_belong_dept', to='system.dept', verbose_name='所属部门')),
|
||||
('create_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='filerecord_create_by', to=settings.AUTH_USER_MODEL, verbose_name='创建人')),
|
||||
('update_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='filerecord_update_by', to=settings.AUTH_USER_MODEL, verbose_name='最后编辑人')),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='BorrowRecord',
|
||||
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='删除标记')),
|
||||
('borrow_date', models.DateField(blank=True, null=True, verbose_name='借阅日期')),
|
||||
('return_date', models.DateField(blank=True, null=True, verbose_name='归还日期')),
|
||||
('contacts', models.CharField(blank=True, max_length=50, null=True, validators=[django.core.validators.RegexValidator('^1[3456789]\\d{9}$', '手机号码格式不正确')], verbose_name='借阅人电话')),
|
||||
('remark', models.JSONField(default=list, help_text="['借阅', '复印', '查阅']", verbose_name='用途')),
|
||||
('belong_dept', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='borrowrecord_belong_dept', to='system.dept', verbose_name='所属部门')),
|
||||
('borrow_file', models.ManyToManyField(related_name='borrow_records', to='ofm.FileRecord')),
|
||||
('create_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='borrowrecord_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='borrow_ticket', to='wf.ticket', verbose_name='关联工单')),
|
||||
('update_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='borrowrecord_update_by', to=settings.AUTH_USER_MODEL, verbose_name='最后编辑人')),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
},
|
||||
),
|
||||
]
|
||||
|
|
|
|||
|
|
@ -1,48 +0,0 @@
|
|||
# Generated by Django 3.2.12 on 2025-09-05 03:07
|
||||
|
||||
from django.conf import settings
|
||||
import django.core.validators
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
import django.utils.timezone
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('wf', '0002_alter_state_filter_dept'),
|
||||
('system', '0006_auto_20241213_1249'),
|
||||
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
||||
('ofm', '0001_initial'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='LendingSeal',
|
||||
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='删除标记')),
|
||||
('seal', models.JSONField(default=list, help_text='{"seal_name": "印章名称"}', verbose_name='印章信息')),
|
||||
('filename', models.TextField(verbose_name='文件名称')),
|
||||
('file', models.TextField(verbose_name='文件内容')),
|
||||
('file_count', models.PositiveIntegerField(verbose_name='用印份数')),
|
||||
('is_lending', models.BooleanField(default=False, verbose_name='是否借出')),
|
||||
('contacts', models.CharField(blank=True, max_length=50, null=True, validators=[django.core.validators.RegexValidator('^1[3456789]\\d{9}$', '手机号码格式不正确')], verbose_name='联系方式')),
|
||||
('lending_date', models.DateField(blank=True, null=True, verbose_name='借出日期')),
|
||||
('return_date', models.DateField(blank=True, null=True, verbose_name='拟归还日期')),
|
||||
('actual_return_date', models.DateField(blank=True, null=True, verbose_name='实际归还日期')),
|
||||
('reason', models.CharField(blank=True, max_length=100, null=True, verbose_name='借用理由')),
|
||||
('note', models.TextField(blank=True, null=True, verbose_name='备注')),
|
||||
('belong_dept', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='lendingseal_belong_dept', to='system.dept', verbose_name='所属部门')),
|
||||
('create_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='lendingseal_create_by', to=settings.AUTH_USER_MODEL, verbose_name='创建人')),
|
||||
('submit_user', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='seal_submit_user', 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='seal_ticket', to='wf.ticket', verbose_name='关联工单')),
|
||||
('update_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='lendingseal_update_by', to=settings.AUTH_USER_MODEL, verbose_name='最后编辑人')),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
},
|
||||
),
|
||||
]
|
||||
|
|
@ -1,17 +0,0 @@
|
|||
# Generated by Django 3.2.12 on 2025-09-08 03:11
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('ofm', '0002_lendingseal'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RemoveField(
|
||||
model_name='lendingseal',
|
||||
name='submit_user',
|
||||
),
|
||||
]
|
||||
|
|
@ -1,42 +0,0 @@
|
|||
# Generated by Django 3.2.12 on 2025-09-10 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', '0002_alter_state_filter_dept'),
|
||||
('ofm', '0003_remove_lendingseal_submit_user'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='Vehicle',
|
||||
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='删除标记')),
|
||||
('start_time', models.DateField(blank=True, null=True, verbose_name='出车时间')),
|
||||
('end_time', models.DateField(blank=True, null=True, verbose_name='还车时间')),
|
||||
('location', models.CharField(blank=True, max_length=100, null=True, verbose_name='出发地点')),
|
||||
('destination', models.CharField(blank=True, max_length=100, null=True, verbose_name='到达地点')),
|
||||
('start_km', models.PositiveIntegerField(verbose_name='出发公里数')),
|
||||
('end_km', models.PositiveIntegerField(verbose_name='归还公里数')),
|
||||
('actual_km', models.PositiveIntegerField(editable=False, verbose_name='实际行驶公里数')),
|
||||
('is_city', models.BooleanField(default=True, verbose_name='是否市内用车')),
|
||||
('reason', models.CharField(max_length=100, verbose_name='用车事由')),
|
||||
('create_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='vehicle_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='vehicle_ticket', to='wf.ticket', verbose_name='关联工单')),
|
||||
('update_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='vehicle_update_by', to=settings.AUTH_USER_MODEL, verbose_name='最后编辑人')),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
},
|
||||
),
|
||||
]
|
||||
|
|
@ -1,18 +0,0 @@
|
|||
# Generated by Django 3.2.12 on 2025-09-10 06:35
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('ofm', '0004_vehicle'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='vehicle',
|
||||
name='via',
|
||||
field=models.CharField(blank=True, max_length=100, null=True, verbose_name='途经地点'),
|
||||
),
|
||||
]
|
||||
|
|
@ -1,20 +0,0 @@
|
|||
# Generated by Django 3.2.12 on 2025-09-11 01:53
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('system', '0006_auto_20241213_1249'),
|
||||
('ofm', '0005_vehicle_via'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='vehicle',
|
||||
name='belong_dept',
|
||||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='vehicle_belong_dept', to='system.dept', verbose_name='所属部门'),
|
||||
),
|
||||
]
|
||||
|
|
@ -1,67 +0,0 @@
|
|||
# Generated by Django 3.2.12 on 2025-09-11 06:41
|
||||
|
||||
from django.conf import settings
|
||||
import django.core.validators
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
import django.utils.timezone
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('system', '0006_auto_20241213_1249'),
|
||||
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
||||
('ofm', '0006_vehicle_belong_dept'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='lendingseal',
|
||||
name='seal',
|
||||
field=models.JSONField(default=list, help_text='[公章,法人章,财务章,合同章,业务章,其他章]', verbose_name='印章信息'),
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='FileRecord',
|
||||
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='删除标记')),
|
||||
('name', models.CharField(max_length=100, verbose_name='资料名称')),
|
||||
('number', models.CharField(blank=True, max_length=50, null=True, verbose_name='档案编号')),
|
||||
('counts', models.CharField(blank=True, max_length=10, null=True, verbose_name='文件份数')),
|
||||
('location', models.CharField(blank=True, max_length=100, null=True, verbose_name='存放位置')),
|
||||
('contacts', models.CharField(blank=True, max_length=50, null=True, validators=[django.core.validators.RegexValidator('^1[3456789]\\d{9}$', '手机号码格式不正确')], verbose_name='存档人电话')),
|
||||
('reciver', models.CharField(blank=True, max_length=50, null=True, verbose_name='接收人(综合办)')),
|
||||
('remark', models.TextField(blank=True, max_length=200, null=True, verbose_name='备注')),
|
||||
('belong_dept', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='filerecord_belong_dept', to='system.dept', verbose_name='所属部门')),
|
||||
('create_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='filerecord_create_by', to=settings.AUTH_USER_MODEL, verbose_name='创建人')),
|
||||
('update_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='filerecord_update_by', to=settings.AUTH_USER_MODEL, verbose_name='最后编辑人')),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='BorrowRecord',
|
||||
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='删除标记')),
|
||||
('borrow_date', models.DateField(blank=True, null=True, verbose_name='借阅日期')),
|
||||
('return_date', models.DateField(blank=True, null=True, verbose_name='归还日期')),
|
||||
('contacts', models.CharField(blank=True, max_length=50, null=True, validators=[django.core.validators.RegexValidator('^1[3456789]\\d{9}$', '手机号码格式不正确')], verbose_name='借阅人电话')),
|
||||
('remark', models.JSONField(default=list, help_text=['借阅', '复印', '查阅'], verbose_name='用途')),
|
||||
('belong_dept', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='borrowrecord_belong_dept', to='system.dept', verbose_name='所属部门')),
|
||||
('borrow_file', models.ManyToManyField(related_name='borrow_records', to='ofm.FileRecord')),
|
||||
('borrow_user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='borrow_user', to=settings.AUTH_USER_MODEL)),
|
||||
('create_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='borrowrecord_create_by', to=settings.AUTH_USER_MODEL, verbose_name='创建人')),
|
||||
('update_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='borrowrecord_update_by', to=settings.AUTH_USER_MODEL, verbose_name='最后编辑人')),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
},
|
||||
),
|
||||
]
|
||||
|
|
@ -1,17 +0,0 @@
|
|||
# Generated by Django 3.2.12 on 2025-09-12 06:42
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('ofm', '0007_auto_20250911_1441'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RemoveField(
|
||||
model_name='borrowrecord',
|
||||
name='borrow_user',
|
||||
),
|
||||
]
|
||||
|
|
@ -1,20 +0,0 @@
|
|||
# Generated by Django 3.2.12 on 2025-09-12 07:00
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('wf', '0002_alter_state_filter_dept'),
|
||||
('ofm', '0008_remove_borrowrecord_borrow_user'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='borrowrecord',
|
||||
name='ticket',
|
||||
field=models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='borrow_ticket', to='wf.ticket', verbose_name='关联工单'),
|
||||
),
|
||||
]
|
||||
|
|
@ -1,53 +0,0 @@
|
|||
# Generated by Django 3.2.12 on 2025-09-19 01:21
|
||||
|
||||
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),
|
||||
('system', '0006_auto_20241213_1249'),
|
||||
('ofm', '0009_borrowrecord_ticket'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='lendingseal',
|
||||
name='seal_other',
|
||||
field=models.CharField(blank=True, max_length=50, null=True, verbose_name='其他印章'),
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Publicity',
|
||||
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='删除标记')),
|
||||
('number', models.CharField(max_length=50, verbose_name='记录编号')),
|
||||
('title', models.CharField(max_length=100, verbose_name='送审稿件标题')),
|
||||
('participants', models.CharField(max_length=50, verbose_name='所有撰稿人')),
|
||||
('level', models.JSONField(default=list, help_text=['重要', '一般', '非涉密'], verbose_name='用途')),
|
||||
('content', models.JSONField(default=list, help_text=['武器装备科研生产综合事项', '其它'], verbose_name='稿件内容涉及')),
|
||||
('other_content', models.CharField(blank=True, max_length=100, null=True, verbose_name='其它内容')),
|
||||
('report_purpose', models.CharField(blank=True, max_length=100, null=True, verbose_name='宣传报道目的')),
|
||||
('channel', models.JSONField(default=list, help_text=['互联网', '信息平台', '官微', '公开发行物', '其它'], verbose_name='发布渠道')),
|
||||
('channel_other', models.CharField(blank=True, max_length=50, null=True, verbose_name='其它渠道')),
|
||||
('other_channel', models.CharField(blank=True, max_length=50, null=True, verbose_name='其它渠道')),
|
||||
('report_name', models.CharField(blank=True, max_length=50, null=True, verbose_name='报道名称')),
|
||||
('review', models.JSONField(default=list, help_text=['内容不涉及国家秘密和商业秘密,申请公开', '内容涉及国家秘密,申请按涉密渠道发布'], verbose_name='第一撰稿人自审')),
|
||||
('dept_opinion', models.JSONField(default=list, help_text=['同意', '不同意'], verbose_name='部门负责人意见')),
|
||||
('dept_opinion_review', models.CharField(blank=True, max_length=100, null=True, verbose_name='部门审查意见')),
|
||||
('publicity_opinion', models.JSONField(default=list, help_text=['同意公开宣传报道', '不同意任何渠道的宣传报道'], verbose_name='宣传统战部审查意见')),
|
||||
('belong_dept', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='publicity_belong_dept', to='system.dept', verbose_name='所属部门')),
|
||||
('create_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='publicity_create_by', to=settings.AUTH_USER_MODEL, verbose_name='创建人')),
|
||||
('update_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='publicity_update_by', to=settings.AUTH_USER_MODEL, verbose_name='最后编辑人')),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
},
|
||||
),
|
||||
]
|
||||
|
|
@ -1,27 +0,0 @@
|
|||
# Generated by Django 3.2.12 on 2025-09-24 05:59
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('ofm', '0010_auto_20250919_0921'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RemoveField(
|
||||
model_name='publicity',
|
||||
name='channel_other',
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='publicity',
|
||||
name='pfile',
|
||||
field=models.CharField(blank=True, max_length=100, null=True, verbose_name='稿件路径'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='publicity',
|
||||
name='pub_dept',
|
||||
field=models.CharField(blank=True, max_length=50, null=True, verbose_name='部室/研究院'),
|
||||
),
|
||||
]
|
||||
|
|
@ -1,20 +0,0 @@
|
|||
# Generated by Django 3.2.12 on 2025-09-24 06:07
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('wf', '0003_workflow_view_path'),
|
||||
('ofm', '0011_auto_20250924_1359'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='publicity',
|
||||
name='ticket',
|
||||
field=models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='publicity_ticket', to='wf.ticket', verbose_name='关联工单'),
|
||||
),
|
||||
]
|
||||
|
|
@ -1,20 +0,0 @@
|
|||
# Generated by Django 3.2.12 on 2025-09-25 07:41
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('wf', '0003_workflow_view_path'),
|
||||
('ofm', '0012_publicity_ticket'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='mroomslot',
|
||||
name='ticket',
|
||||
field=models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='mrooms_ticket', to='wf.ticket', verbose_name='关联会议室'),
|
||||
),
|
||||
]
|
||||
|
|
@ -1,33 +0,0 @@
|
|||
# Generated by Django 3.2.12 on 2025-09-28 02:23
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('wf', '0003_workflow_view_path'),
|
||||
('ofm', '0013_mroomslot_ticket'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='mroombooking',
|
||||
name='ticket',
|
||||
field=models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='mrooms_ticket', to='wf.ticket', verbose_name='关联会议室'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='mroomslot',
|
||||
name='is_inuse',
|
||||
field=models.BooleanField(default=True, verbose_name='是否占用'),
|
||||
),
|
||||
migrations.AlterUniqueTogether(
|
||||
name='mroomslot',
|
||||
unique_together={('mroom', 'mdate', 'slot', 'is_inuse')},
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='mroomslot',
|
||||
name='ticket',
|
||||
),
|
||||
]
|
||||
|
|
@ -1,18 +0,0 @@
|
|||
# Generated by Django 3.2.12 on 2025-09-28 06:15
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('ofm', '0014_auto_20250928_1023'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='vehicle',
|
||||
name='end_km',
|
||||
field=models.PositiveIntegerField(blank=True, null=True, verbose_name='归还公里数'),
|
||||
),
|
||||
]
|
||||
|
|
@ -1,35 +0,0 @@
|
|||
# Generated by Django 3.2.12 on 2025-09-29 07:51
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('system', '0006_auto_20241213_1249'),
|
||||
('ofm', '0015_alter_vehicle_end_km'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='mroombooking',
|
||||
name='belong_dept',
|
||||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='mroombooking_belong_dept', to='system.dept', verbose_name='所属部门'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='mroombooking',
|
||||
name='key_participants',
|
||||
field=models.TextField(blank=True, null=True, verbose_name='主要参会领导'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='mroombooking',
|
||||
name='note',
|
||||
field=models.TextField(blank=True, null=True, verbose_name='备注'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='mroombooking',
|
||||
name='participant_count',
|
||||
field=models.PositiveIntegerField(default=0, verbose_name='参会人数'),
|
||||
),
|
||||
]
|
||||
|
|
@ -1,23 +0,0 @@
|
|||
# Generated by Django 3.2.12 on 2025-10-10 08:31
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('ofm', '0016_auto_20250929_1551'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='publicity',
|
||||
name='secret_period',
|
||||
field=models.CharField(blank=True, max_length=50, null=True, verbose_name='秘密期限'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='publicity',
|
||||
name='level',
|
||||
field=models.JSONField(default=list, help_text=['重要', '一般', '非涉密'], verbose_name='涉密等级'),
|
||||
),
|
||||
]
|
||||
|
|
@ -1,33 +0,0 @@
|
|||
# Generated by Django 3.2.12 on 2025-10-11 01:22
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('ofm', '0017_auto_20251010_1631'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='publicity',
|
||||
name='dept_opinion',
|
||||
field=models.JSONField(blank=True, default=list, help_text=['同意', '不同意'], null=True, verbose_name='部门负责人意见'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='publicity',
|
||||
name='number',
|
||||
field=models.CharField(blank=True, max_length=50, null=True, verbose_name='记录编号'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='publicity',
|
||||
name='publicity_opinion',
|
||||
field=models.JSONField(blank=True, default=list, help_text=['同意公开宣传报道', '不同意任何渠道的宣传报道'], null=True, verbose_name='宣传统战部审查意见'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='publicity',
|
||||
name='review',
|
||||
field=models.JSONField(blank=True, default=list, help_text=['内容不涉及国家秘密和商业秘密,申请公开', '内容涉及国家秘密,申请按涉密渠道发布'], null=True, verbose_name='第一撰稿人自审'),
|
||||
),
|
||||
]
|
||||
|
|
@ -1,28 +0,0 @@
|
|||
# Generated by Django 3.2.12 on 2025-10-11 03:28
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('ofm', '0018_auto_20251011_0922'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='publicity',
|
||||
name='dept_opinion',
|
||||
field=models.JSONField(default=list, help_text=['同意', '不同意'], verbose_name='部门负责人意见'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='publicity',
|
||||
name='publicity_opinion',
|
||||
field=models.JSONField(blank=True, default=list, help_text=['同意公开宣传报道', '不同意任何渠道的宣传报道'], verbose_name='宣传统战部审查意见'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='publicity',
|
||||
name='review',
|
||||
field=models.JSONField(blank=True, default=list, help_text=['内容不涉及国家秘密和商业秘密,申请公开', '内容涉及国家秘密,申请按涉密渠道发布'], verbose_name='第一撰稿人自审'),
|
||||
),
|
||||
]
|
||||
|
|
@ -1,28 +0,0 @@
|
|||
# Generated by Django 3.2.12 on 2025-10-11 06:27
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('ofm', '0019_auto_20251011_1128'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='publicity',
|
||||
name='dept_opinion',
|
||||
field=models.JSONField(blank=True, default=list, help_text=['同意', '不同意'], null=True, verbose_name='部门负责人意见'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='publicity',
|
||||
name='publicity_opinion',
|
||||
field=models.JSONField(blank=True, default=list, help_text=['同意公开宣传报道', '不同意任何渠道的宣传报道'], null=True, verbose_name='宣传统战部审查意见'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='publicity',
|
||||
name='review',
|
||||
field=models.JSONField(blank=True, default=list, help_text=['内容不涉及国家秘密和商业秘密,申请公开', '内容涉及国家秘密,申请按涉密渠道发布'], null=True, verbose_name='第一撰稿人自审'),
|
||||
),
|
||||
]
|
||||
|
|
@ -1,18 +0,0 @@
|
|||
# Generated by Django 3.2.12 on 2025-10-13 01:01
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('ofm', '0020_auto_20251011_1427'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='publicity',
|
||||
name='publicity_opinion',
|
||||
field=models.CharField(blank=True, max_length=100, null=True, verbose_name='宣传报道意见'),
|
||||
),
|
||||
]
|
||||
|
|
@ -1,17 +0,0 @@
|
|||
# Generated by Django 3.2.12 on 2025-10-17 06:50
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('ofm', '0021_alter_publicity_publicity_opinion'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterUniqueTogether(
|
||||
name='mroomslot',
|
||||
unique_together=set(),
|
||||
),
|
||||
]
|
||||
|
|
@ -1,49 +0,0 @@
|
|||
# Generated by Django 3.2.12 on 2025-10-21 06:08
|
||||
|
||||
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 = [
|
||||
('wf', '0004_workflow_view_path2'),
|
||||
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
||||
('system', '0006_auto_20241213_1249'),
|
||||
('ofm', '0022_alter_mroomslot_unique_together'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='PatentInfo',
|
||||
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='删除标记')),
|
||||
('name', models.CharField(max_length=100, verbose_name='拟申请专利名称')),
|
||||
('author', models.CharField(max_length=100, verbose_name='发明人(设计人)')),
|
||||
('type', models.CharField(choices=[('invention', '发明专利'), ('utility', '实用新型专利'), ('design', '外观设计专利')], default='invention', max_length=50, verbose_name='专利类型')),
|
||||
('is_public', models.BooleanField(default=False, verbose_name='是否公开')),
|
||||
('area', models.CharField(choices=[('Domestic', '国内申请'), ('Foreign', '国外申请'), (' PCT', 'PCT申请')], default='Domestic', max_length=50, verbose_name='拟申请地域')),
|
||||
('identified', models.BooleanField(default=False, verbose_name='是否进行过科技成果鉴定')),
|
||||
('published_article', models.BooleanField(default=False, verbose_name='是否发表过文章')),
|
||||
('exhibited', models.BooleanField(default=False, verbose_name='是否参与过展会展出')),
|
||||
('applied_to_production', models.BooleanField(default=False, verbose_name='是否参与应用于生产/销售')),
|
||||
('participated_in_exchange', models.BooleanField(default=False, verbose_name='是否参与过技术交流')),
|
||||
('tech_background_pages', models.PositiveIntegerField(blank=True, null=True, verbose_name='技术背景材料页数')),
|
||||
('tech_disclosure_pages', models.PositiveIntegerField(blank=True, null=True, verbose_name='技术交底材料页数')),
|
||||
('novelty_report_pages', models.PositiveIntegerField(blank=True, null=True, verbose_name='查新检索报告页数')),
|
||||
('diagrams_or_photos_pages', models.PositiveIntegerField(blank=True, null=True, verbose_name='图/照片页数或张数')),
|
||||
('belong_dept', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='patentinfo_belong_dept', to='system.dept', verbose_name='所属部门')),
|
||||
('create_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='patentinfo_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='patentInfo_ticket', to='wf.ticket', verbose_name='关联工单')),
|
||||
('update_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='patentinfo_update_by', to=settings.AUTH_USER_MODEL, verbose_name='最后编辑人')),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
},
|
||||
),
|
||||
]
|
||||
|
|
@ -1,95 +0,0 @@
|
|||
# Generated by Django 3.2.12 on 2025-10-22 02:05
|
||||
|
||||
import apps.ofm.models
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('ofm', '0023_patentinfo'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RemoveField(
|
||||
model_name='patentinfo',
|
||||
name='applied_to_production',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='patentinfo',
|
||||
name='diagrams_or_photos_pages',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='patentinfo',
|
||||
name='exhibited',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='patentinfo',
|
||||
name='identified',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='patentinfo',
|
||||
name='novelty_report_pages',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='patentinfo',
|
||||
name='participated_in_exchange',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='patentinfo',
|
||||
name='published_article',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='patentinfo',
|
||||
name='tech_background_pages',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='patentinfo',
|
||||
name='tech_disclosure_pages',
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='patentinfo',
|
||||
name='other_area',
|
||||
field=models.CharField(blank=True, max_length=50, null=True, verbose_name='其它申请地域'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='patentinfo',
|
||||
name='tech_file',
|
||||
field=models.JSONField(default=list, help_text='技术文件信息列表,每个条目包含name(名称)page(页数)字段', verbose_name='技术文件'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='patentinfo',
|
||||
name='tech_status',
|
||||
field=models.JSONField(blank=True, default=list, help_text='技术状态信息列表,每个条目包含name(名称)、status(状态)、file(文件)字段', verbose_name='技术状态'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='borrowrecord',
|
||||
name='remark',
|
||||
field=models.JSONField(default=list, help_text="['借阅', '复印', '查阅']", verbose_name='用途'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='publicity',
|
||||
name='channel',
|
||||
field=models.JSONField(default=list, help_text="['互联网', '信息平台', '官微', '公开发行物', '其它']", verbose_name='发布渠道'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='publicity',
|
||||
name='content',
|
||||
field=models.JSONField(default=list, help_text="['武器装备科研生产综合事项', '其它']", verbose_name='稿件内容涉及'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='publicity',
|
||||
name='dept_opinion',
|
||||
field=models.JSONField(blank=True, default=list, help_text="['同意', '不同意']", null=True, verbose_name='部门负责人意见'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='publicity',
|
||||
name='level',
|
||||
field=models.JSONField(default=list, help_text="['重要', '一般', '非涉密']", verbose_name='涉密等级'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='publicity',
|
||||
name='review',
|
||||
field=models.JSONField(blank=True, default=list, help_text="['内容不涉及国家秘密和商业秘密,申请公开', '内容涉及国家秘密,申请按涉密渠道发布']", null=True, verbose_name='第一撰稿人自审'),
|
||||
),
|
||||
]
|
||||
|
|
@ -1,18 +0,0 @@
|
|||
# Generated by Django 3.2.12 on 2025-10-24 05:46
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('ofm', '0024_auto_20251022_1005'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='patentinfo',
|
||||
name='area',
|
||||
field=models.CharField(choices=[('Domestic', '国内申请'), ('Foreign', '国外申请'), ('PCT', 'PCT申请')], default='Domestic', max_length=50, verbose_name='拟申请地域'),
|
||||
),
|
||||
]
|
||||
|
|
@ -1,41 +0,0 @@
|
|||
# Generated by Django 3.2.12 on 2025-10-29 03:13
|
||||
|
||||
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', '0025_alter_patentinfo_area'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='PaperSe',
|
||||
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='paperse_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='paperse_update_by', to=settings.AUTH_USER_MODEL, verbose_name='最后编辑人')),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
},
|
||||
),
|
||||
]
|
||||
|
|
@ -1,44 +0,0 @@
|
|||
# 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',
|
||||
),
|
||||
]
|
||||
|
|
@ -1,20 +0,0 @@
|
|||
# Generated by Django 3.2.12 on 2025-10-30 05:55
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('system', '0006_auto_20241213_1249'),
|
||||
('ofm', '0027_auto_20251029_1426'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='papersecret',
|
||||
name='belong_dept',
|
||||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='papersecret_belong_dept', to='system.dept', verbose_name='所属部门'),
|
||||
),
|
||||
]
|
||||
|
|
@ -1,35 +0,0 @@
|
|||
# Generated by Django 3.2.12 on 2025-11-03 01:39
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('ofm', '0028_papersecret_belong_dept'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RemoveField(
|
||||
model_name='patentinfo',
|
||||
name='belong_dept',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='patentinfo',
|
||||
name='create_by',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='patentinfo',
|
||||
name='ticket',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='patentinfo',
|
||||
name='update_by',
|
||||
),
|
||||
migrations.DeleteModel(
|
||||
name='Papersecret',
|
||||
),
|
||||
migrations.DeleteModel(
|
||||
name='PatentInfo',
|
||||
),
|
||||
]
|
||||
|
|
@ -1,23 +0,0 @@
|
|||
# Generated by Django 3.2.12 on 2025-11-05 09:15
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('ofm', '0029_auto_20251103_0939'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='vehicle',
|
||||
name='end_time',
|
||||
field=models.DateTimeField(blank=True, null=True, verbose_name='还车时间'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='vehicle',
|
||||
name='start_time',
|
||||
field=models.DateTimeField(blank=True, null=True, verbose_name='出车时间'),
|
||||
),
|
||||
]
|
||||
|
|
@ -1,28 +0,0 @@
|
|||
# Generated by Django 3.2.12 on 2025-11-06 08:08
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('ofm', '0030_auto_20251105_1715'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='publicity',
|
||||
name='disposal_method',
|
||||
field=models.CharField(blank=True, max_length=50, null=True, verbose_name='处理方式'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='publicity',
|
||||
name='secret_level',
|
||||
field=models.CharField(blank=True, max_length=50, null=True, verbose_name='秘密等级'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='publicity',
|
||||
name='dept_opinion',
|
||||
field=models.CharField(blank=True, max_length=100, null=True, verbose_name='部门负责人意见'),
|
||||
),
|
||||
]
|
||||
|
|
@ -1,70 +0,0 @@
|
|||
# Generated by Django 3.2.12 on 2025-11-17 08:15
|
||||
|
||||
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),
|
||||
('ofm', '0031_auto_20251106_1608'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='VehicleReg',
|
||||
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='删除标记')),
|
||||
('name', models.CharField(max_length=50, verbose_name='车辆名称')),
|
||||
('brand', models.CharField(blank=True, max_length=50, null=True, verbose_name='品牌')),
|
||||
('plate', models.CharField(max_length=50, verbose_name='车牌号')),
|
||||
('km', models.PositiveIntegerField(blank=True, null=True, verbose_name='行驶里程')),
|
||||
('create_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='vehiclereg_create_by', to=settings.AUTH_USER_MODEL, verbose_name='创建人')),
|
||||
('update_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='vehiclereg_update_by', to=settings.AUTH_USER_MODEL, verbose_name='最后编辑人')),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
},
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='vehicle',
|
||||
name='end_time',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='vehicle',
|
||||
name='start_time',
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='vehicle',
|
||||
name='reception',
|
||||
field=models.CharField(blank=True, max_length=50, null=True, verbose_name='接待人'),
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='VehicleSlot',
|
||||
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='删除标记')),
|
||||
('vdate', models.DateField(db_index=True, verbose_name='使用日期')),
|
||||
('slot', models.PositiveIntegerField(help_text='0-47', verbose_name='时段')),
|
||||
('is_inuse', models.BooleanField(default=True, verbose_name='是否占用')),
|
||||
('vehicle', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='slot_vehicle', to='ofm.vehicle')),
|
||||
('vehreg', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='slot_record', to='ofm.vehiclereg')),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
},
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='vehicle',
|
||||
name='vehiclereg',
|
||||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='vehicle_record', to='ofm.vehiclereg'),
|
||||
),
|
||||
]
|
||||
|
|
@ -53,8 +53,8 @@ class VehicleReg(CommonADModel):
|
|||
plate = models.CharField('车牌号', max_length=50)
|
||||
km = models.PositiveIntegerField('行驶里程', null=True, blank=True)
|
||||
|
||||
class Vehicle(CommonBDModel):
|
||||
"""TN: 用车申请"""
|
||||
class VehicleUse(CommonBDModel):
|
||||
"""TN: 用车记录"""
|
||||
vehiclereg = models.ForeignKey(VehicleReg, on_delete=models.CASCADE, related_name="vehicle_record", null=True, blank=True)
|
||||
location = models.CharField('出发地点', null=True, blank=True, max_length=100)
|
||||
via = models.CharField('途经地点', null=True, blank=True, max_length=100)
|
||||
|
|
@ -82,7 +82,7 @@ class Vehicle(CommonBDModel):
|
|||
|
||||
class VehicleSlot(BaseModel):
|
||||
vehreg = models.ForeignKey(VehicleReg, on_delete=models.CASCADE, related_name="slot_record")
|
||||
vehicle = models.ForeignKey(Vehicle, on_delete=models.CASCADE, related_name="slot_vehicle")
|
||||
vehicle_use = models.ForeignKey(VehicleUse, on_delete=models.CASCADE, related_name="slot_vehicle")
|
||||
vdate = models.DateField('使用日期', db_index=True)
|
||||
slot = models.PositiveIntegerField('时段', help_text='0-47')
|
||||
is_inuse = models.BooleanField('是否占用', default=True)
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
from .models import (Mroom, MroomBooking, MroomSlot, LendingSeal, Vehicle, FileRecord, BorrowRecord, Publicity, VehicleReg, VehicleSlot)
|
||||
from .models import (Mroom, MroomBooking, MroomSlot, LendingSeal, VehicleUse, FileRecord, BorrowRecord, Publicity, VehicleReg, VehicleSlot)
|
||||
from apps.utils.serializers import CustomModelSerializer
|
||||
from rest_framework import serializers
|
||||
from django.db import transaction
|
||||
|
|
@ -70,7 +70,7 @@ class VehicleRecordSerializer(CustomModelSerializer):
|
|||
fields = '__all__'
|
||||
|
||||
|
||||
class VehicleSerializer(CustomModelSerializer):
|
||||
class VehicleUseSerializer(CustomModelSerializer):
|
||||
vehreg = serializers.PrimaryKeyRelatedField(queryset=VehicleReg.objects.all(), write_only=True, label="车辆信息")
|
||||
vdate = serializers.DateField(write_only=True, label="预订日期")
|
||||
slots = serializers.ListField(child=serializers.IntegerField(), write_only=True, label="时段索引")
|
||||
|
|
@ -79,7 +79,7 @@ class VehicleSerializer(CustomModelSerializer):
|
|||
belong_dept_name = serializers.CharField(source='belong_dept.name', read_only=True)
|
||||
ticket_ = TicketSimpleSerializer(source='ticket', read_only=True)
|
||||
class Meta:
|
||||
model = Vehicle
|
||||
model = VehicleUse
|
||||
fields = '__all__'
|
||||
read_only_fields = EXCLUDE_FIELDS + ['actual_km']
|
||||
extra_kwargs = {'belong_dept': {'required': True}}
|
||||
|
|
@ -88,31 +88,32 @@ class VehicleSerializer(CustomModelSerializer):
|
|||
vehreg = validated_data.pop('vehreg')
|
||||
slots = validated_data.pop('slots')
|
||||
vdate = validated_data.pop('vdate')
|
||||
vehicle = super().create(validated_data)
|
||||
VehicleSlot.objects.filter(vehicle=vehicle).delete()
|
||||
vehicle_use = super().create(validated_data)
|
||||
VehicleSlot.objects.filter(vehicle_use=vehicle_use).delete()
|
||||
for slot in slots:
|
||||
if slot < 0 or slot > 47:
|
||||
raise ParseError("时段索引超出范围")
|
||||
ms_exists = VehicleSlot.objects.filter(vehreg=vehreg, vdate=vdate, slot=slot, is_inuse=True).exists()
|
||||
if ms_exists:
|
||||
raise ParseError("时段已预订,请刷新重选")
|
||||
VehicleSlot.objects.create(vehicle=vehicle, slot=slot, vdate=vdate, vehreg=vehreg, is_inuse=True)
|
||||
return vehicle
|
||||
VehicleSlot.objects.create(vehicle_use=vehicle_use, slot=slot, vdate=vdate, vehreg=vehreg, is_inuse=True)
|
||||
return vehicle_use
|
||||
|
||||
def update(self, instance, validated_data):
|
||||
vehreg = validated_data.pop('vehreg')
|
||||
slots = validated_data.pop('slots')
|
||||
vdate = validated_data.pop('vdate')
|
||||
vehicle = super().update(instance, validated_data)
|
||||
VehicleSlot.objects.filter(vehicle=vehicle).delete()
|
||||
vehicle_use = super().update(instance, validated_data)
|
||||
VehicleSlot.objects.filter(vehicle_use=vehicle_use).delete()
|
||||
for slot in slots:
|
||||
if slot < 0 or slot > 47:
|
||||
raise ParseError("时段索引超出范围")
|
||||
ms_exists = VehicleSlot.objects.filter(vehreg=vehreg, vdate=vdate, slot=slot, is_inuse=True).exists()
|
||||
if ms_exists:
|
||||
raise ParseError("时段已预订,请刷新重选")
|
||||
VehicleSlot.objects.create(vehicle=vehicle, slot=slot, vdate=vdate, vehreg=vehreg, is_inuse=True)
|
||||
return vehicle
|
||||
VehicleSlot.objects.create(vehicle_use=vehicle_use, slot=slot, vdate=vdate, vehreg=vehreg, is_inuse=True)
|
||||
return vehicle_use
|
||||
|
||||
|
||||
class VehSlotSerializer(CustomModelSerializer):
|
||||
veh_name = serializers.CharField(source='vehreg.name', read_only=True)
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
from django.urls import path, include
|
||||
from rest_framework.routers import DefaultRouter
|
||||
from apps.ofm.views import (MroomViewSet, MroomBookingViewSet, MroomSlotViewSet,LendingSealViewSet, VehicleViewSet,
|
||||
from apps.ofm.views import (MroomViewSet, MroomBookingViewSet, MroomSlotViewSet,LendingSealViewSet, VehicleUseViewSet,
|
||||
VehicleRegViewSet, VehicleSlotViewSet, FilerecordViewSet, FileborrowViewSet, PublicityViewSet)
|
||||
|
||||
API_BASE_URL = 'api/ofm/'
|
||||
|
|
@ -12,9 +12,9 @@ router.register('mroombooking', MroomBookingViewSet, basename='mroombooking')
|
|||
router.register('mroomslot', MroomSlotViewSet, basename='mroomslot')
|
||||
# router.register('sealmanage', SealManageViewSet, basename='sealmanage')
|
||||
router.register('lendingseal', LendingSealViewSet, basename='lendingseal')
|
||||
router.register('vehicle', VehicleViewSet, basename='vehicle')
|
||||
router.register('vehicle-use', VehicleUseViewSet, basename='vehicle_use')
|
||||
router.register('vsolt', VehicleSlotViewSet, basename='vslot')
|
||||
router.register('vreg', VehicleRegViewSet, basename='vreg')
|
||||
router.register('vehicle', VehicleRegViewSet, basename='vehicle')
|
||||
router.register('filerecord', FilerecordViewSet, basename='filerecord')
|
||||
router.register('fileborrow', FileborrowViewSet, basename='fileborrow')
|
||||
router.register('publicity', PublicityViewSet, basename='publicity')
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
from django.shortcuts import render
|
||||
from apps.utils.viewsets import CustomModelViewSet, CustomGenericViewSet
|
||||
from .models import Mroom, MroomBooking, MroomSlot, LendingSeal, Vehicle, VehicleSlot, VehicleReg, FileRecord, BorrowRecord, Publicity
|
||||
from .models import Mroom, MroomBooking, MroomSlot, LendingSeal, VehicleUse, VehicleSlot, VehicleReg, FileRecord, BorrowRecord, Publicity
|
||||
|
||||
from .serializers import (MroomSerializer, MroomBookingSerializer, MroomSlotSerializer, LendingSealSerializer,
|
||||
VehicleSerializer, VehicleRecordSerializer, VehSlotSerializer, FileRecordSerializer, BorrowRecordSerializer, PublicitySerializer)
|
||||
VehicleUseSerializer, VehicleRecordSerializer, VehSlotSerializer, FileRecordSerializer, BorrowRecordSerializer, PublicitySerializer)
|
||||
from apps.utils.mixins import CustomListModelMixin
|
||||
from rest_framework.exceptions import ParseError
|
||||
from apps.ofm.filters import MroomBookingFilterset, SealFilter, BorrowRecordFilter, VehicleFilterset
|
||||
|
|
@ -133,22 +133,22 @@ class VehicleRegViewSet(CustomModelViewSet):
|
|||
serializer_class = VehicleRecordSerializer
|
||||
ordering = ["-create_time"]
|
||||
|
||||
class VehicleViewSet(CustomModelViewSet):
|
||||
"""list: 会议室预订
|
||||
class VehicleUseViewSet(CustomModelViewSet):
|
||||
"""list: 车辆使用
|
||||
|
||||
会议室预订
|
||||
车辆使用
|
||||
"""
|
||||
queryset = Vehicle.objects.all()
|
||||
serializer_class = VehicleSerializer
|
||||
queryset = VehicleUse.objects.all()
|
||||
serializer_class = VehicleUseSerializer
|
||||
select_related_fields = ["create_by", "ticket", "belong_dept"]
|
||||
filterset_class = VehicleFilterset
|
||||
|
||||
def add_info_for_list(self, data):
|
||||
vehicle_ids = [d["id"] for d in data]
|
||||
slots = VehicleSlot.objects.filter(vehicle__in=vehicle_ids).order_by("vehreg", "vehicle", "vdate", "slot")
|
||||
slots = VehicleSlot.objects.filter(vehicle__in=vehicle_ids).order_by("vehreg", "vehicle_use", "vdate", "slot")
|
||||
vehicle_info = {}
|
||||
for slot in slots:
|
||||
vehicle_id = slot.vehicle.id
|
||||
vehicle_id = slot.vehicle_use.id
|
||||
|
||||
if vehicle_id not in vehicle_info:
|
||||
vehicle_info[vehicle_id] = {
|
||||
|
|
@ -192,7 +192,7 @@ class VehicleViewSet(CustomModelViewSet):
|
|||
return f"{hours:02d}:{minutes:02d}"
|
||||
|
||||
def perform_update(self, serializer):
|
||||
ins:Vehicle = self.get_object()
|
||||
ins:VehicleUse = self.get_object()
|
||||
ticket = ins.ticket
|
||||
if ticket is None or ticket.state.type == 1:
|
||||
pass
|
||||
|
|
@ -222,7 +222,7 @@ class VehicleSlotViewSet(CustomListModelMixin, CustomGenericViewSet):
|
|||
"""
|
||||
queryset = VehicleSlot.objects.all()
|
||||
serializer_class = VehSlotSerializer
|
||||
filterset_fields = ["vehreg", "vehicle", "vdate", "is_inuse"]
|
||||
filterset_fields = ["vehreg", "vehicle_use", "vdate", "is_inuse"]
|
||||
|
||||
|
||||
class FilerecordViewSet(CustomModelViewSet):
|
||||
|
|
@ -258,120 +258,3 @@ class PublicityViewSet(CustomModelViewSet):
|
|||
ordering = ["-create_time", "number"]
|
||||
|
||||
|
||||
# class PatentInfoViewSet(CustomModelViewSet):
|
||||
# """list: 专利
|
||||
|
||||
# 专利
|
||||
# """
|
||||
# queryset = PatentInfo.objects.all()
|
||||
# serializer_class = PatentInfoSerializer
|
||||
# filterset_fields = ["name", "author", "type"]
|
||||
# ordering = ["-create_time", "name", "author", "type"]
|
||||
|
||||
|
||||
# class PapersecretViewSet(CustomModelViewSet):
|
||||
# """list: 论文申密审批
|
||||
|
||||
# 论文申密审批
|
||||
# """
|
||||
# queryset = Papersecret.objects.all()
|
||||
# serializer_class = PaperSeSerializer
|
||||
# filterset_fields = ["paper_name", "author"]
|
||||
# ordering = ["-create_time", "paper_name"]
|
||||
|
||||
|
||||
# class PatentRecordViewSet(CustomModelViewSet):
|
||||
# """list: 专利台账登记
|
||||
|
||||
# 专利台账登记
|
||||
# """
|
||||
# queryset = PatentRecord.objects.all()
|
||||
# serializer_class = PatentRecordSerializer
|
||||
# select_related_fields = ["patent"]
|
||||
# filterset_fields = ["title", "volume_number","inventors"]
|
||||
# ordering = ["-create_time", "title", "type"]
|
||||
# search_fields = ["title", "volume_number", "inventors"]
|
||||
|
||||
# def get_queryset(self):
|
||||
# qs = super().get_queryset()
|
||||
# patent_type = self.request.query_params.get('patent_type', None)
|
||||
# if patent_type:
|
||||
# qs = qs.filter(patent__type=patent_type)
|
||||
# return qs
|
||||
|
||||
|
||||
# @action(detail=False, methods=['get'])
|
||||
# def patent_name(self, request):
|
||||
# """获取专利列表"""
|
||||
# search = request.query_params.get('search', '')
|
||||
# queryset = PatentInfo.objects.all()
|
||||
# if search:
|
||||
# queryset = queryset.filter(name__icontains=search)
|
||||
# patents = [{'id': patent.id, 'name': patent.name} for patent in queryset]
|
||||
# return Response(patents)
|
||||
|
||||
|
||||
# class PlatformViewSet(CustomModelViewSet):
|
||||
# """list: 平台
|
||||
|
||||
# 平台
|
||||
# """
|
||||
# queryset = Platform.objects.all()
|
||||
# serializer_class = PlatformSerializer
|
||||
# filterset_fields = ["name"]
|
||||
# ordering = ["create_time", "name"]
|
||||
|
||||
|
||||
# class ProjectViewSet(CustomModelViewSet):
|
||||
# """list: 项目
|
||||
|
||||
# 项目
|
||||
# """
|
||||
# queryset = Project.objects.all()
|
||||
# serializer_class = ProjectSerializer
|
||||
# filterset_fields = ["name"]
|
||||
# ordering = ["create_time", "name"]
|
||||
|
||||
|
||||
# class PatentRecordViewSet(CustomModelViewSet):
|
||||
# """list: 专利台账登记
|
||||
|
||||
# 专利台账登记
|
||||
# """
|
||||
# queryset = PatentRecord.objects.all()
|
||||
# serializer_class = ProjectMemberSerializer
|
||||
# filterset_fields = ["patent", "type"]
|
||||
# ordering = ["create_time", "patent", "type"]
|
||||
|
||||
|
||||
# class PaperRecordViewSet(CustomModelViewSet):
|
||||
# """list: 论文台账登记
|
||||
|
||||
# 论文台账登记
|
||||
# """
|
||||
# queryset = PaperRecord.objects.all()
|
||||
# serializer_class = ProjectMemberSerializer
|
||||
# filterset_fields = ["index", "title", "paper_code","paper_type", "authors"]
|
||||
# ordering = ["create_time", "paper", "type"]
|
||||
|
||||
|
||||
# class ProjectApprovalViewSet(CustomModelViewSet):
|
||||
# """list: 立项审批表
|
||||
|
||||
# 立项审批表
|
||||
# """
|
||||
# queryset = ProjectApproval.objects.all()
|
||||
# serializer_class = ProjectApprovalSerializer
|
||||
# filterset_fields = ["project_start_date"]
|
||||
# ordering = ["project_start_date"]
|
||||
|
||||
|
||||
# class ProjectInfoViewSet(CustomModelViewSet):
|
||||
# """list: 项目信息
|
||||
|
||||
# 项目信息
|
||||
# """
|
||||
# queryset = ProjectInfo.objects.all()
|
||||
# serializer_class = ProjectInfoSerializer
|
||||
# filterset_fields = ["serial_number", "name", "platform", "project_source"]
|
||||
# ordering = ["serial_number", "name"]
|
||||
|
|
|
|||
Loading…
Reference in New Issue