feat: Mroombooking添加字段

This commit is contained in:
caoqianming 2025-09-29 15:53:34 +08:00
parent fe499ffac5
commit bd763be83a
4 changed files with 44 additions and 2 deletions

View File

@ -0,0 +1,35 @@
# 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='参会人数'),
),
]

View File

@ -25,11 +25,15 @@ class Mroom(CommonADModel):
location = models.CharField('位置', max_length=100) location = models.CharField('位置', max_length=100)
capacity = models.PositiveIntegerField('容纳人数') capacity = models.PositiveIntegerField('容纳人数')
class MroomBooking(CommonADModel): class MroomBooking(CommonBDModel):
"""TN: 会议室预定信息""" """TN: 会议室预定信息"""
# belong_dept 是预定部门
title = models.CharField('会议主题', max_length=100) title = models.CharField('会议主题', max_length=100)
ticket = models.ForeignKey('wf.ticket', verbose_name='关联会议室', ticket = models.ForeignKey('wf.ticket', verbose_name='关联会议室',
on_delete=models.SET_NULL, related_name='mrooms_ticket', null=True, blank=True, db_constraint=False) on_delete=models.SET_NULL, related_name='mrooms_ticket', null=True, blank=True, db_constraint=False)
note = models.TextField('备注', null=True, blank=True)
participant_count = models.PositiveIntegerField('参会人数', default=0)
key_participants = models.TextField("主要参会领导", null=True, blank=True)
class MroomSlot(BaseModel): class MroomSlot(BaseModel):

View File

@ -19,11 +19,14 @@ class MroomBookingSerializer(CustomModelSerializer):
mdate = serializers.DateField(write_only=True, label="预订日期") mdate = serializers.DateField(write_only=True, label="预订日期")
slots = serializers.ListField(child=serializers.IntegerField(), write_only=True, label="时段索引") slots = serializers.ListField(child=serializers.IntegerField(), write_only=True, label="时段索引")
create_by_name = serializers.CharField(source='create_by.username', read_only=True) create_by_name = serializers.CharField(source='create_by.username', read_only=True)
create_by_phone = serializers.CharField(source='create_by.phone', read_only=True)
belong_dept_name = serializers.CharField(source='belong_dept.name', read_only=True)
ticket_ = TicketSimpleSerializer(source='ticket', read_only=True) ticket_ = TicketSimpleSerializer(source='ticket', read_only=True)
class Meta: class Meta:
model = MroomBooking model = MroomBooking
fields = '__all__' fields = '__all__'
read_only_fields = EXCLUDE_FIELDS read_only_fields = EXCLUDE_FIELDS
extra_kwargs = {'belong_dept': {'required': True}}
def create(self, validated_data): def create(self, validated_data):
mroom = validated_data.pop('mroom') mroom = validated_data.pop('mroom')

View File

@ -28,7 +28,7 @@ class MroomBookingViewSet(CustomModelViewSet):
""" """
queryset = MroomBooking.objects.all() queryset = MroomBooking.objects.all()
serializer_class = MroomBookingSerializer serializer_class = MroomBookingSerializer
select_related_fields = ["create_by", "ticket"] select_related_fields = ["create_by", "ticket", "belong_dept"]
filterset_class = MroomBookingFilterset filterset_class = MroomBookingFilterset
def add_info_for_list(self, data): def add_info_for_list(self, data):