Compare commits
No commits in common. "71bc4e76f06be954d05fd4abff05aa2a7e9422b6" and "8b7a87abb647e36a3bbe6dcb3b864baa11ddf010" have entirely different histories.
71bc4e76f0
...
8b7a87abb6
|
|
@ -58,28 +58,39 @@ class LendingSeal(CommonBDModel):
|
||||||
return_date = models.DateField('拟归还日期', blank=True, null=True)
|
return_date = models.DateField('拟归还日期', blank=True, null=True)
|
||||||
actual_return_date = models.DateField('实际归还日期', blank=True, null=True)
|
actual_return_date = models.DateField('实际归还日期', blank=True, null=True)
|
||||||
reason = models.CharField('借用理由', max_length=100, blank=True, null=True)
|
reason = models.CharField('借用理由', max_length=100, blank=True, null=True)
|
||||||
|
# submit_user = models.ForeignKey(
|
||||||
|
# User, verbose_name='提交人', on_delete=models.CASCADE, null=True, blank=True, related_name='seal_submit_user')
|
||||||
ticket = models.ForeignKey('wf.ticket', verbose_name='关联工单',
|
ticket = models.ForeignKey('wf.ticket', verbose_name='关联工单',
|
||||||
on_delete=models.SET_NULL, related_name='seal_ticket', null=True, blank=True, db_constraint=False)
|
on_delete=models.SET_NULL, related_name='seal_ticket', null=True, blank=True, db_constraint=False)
|
||||||
note = models.TextField('备注', null=True, blank=True)
|
note = models.TextField('备注', null=True, blank=True)
|
||||||
|
|
||||||
|
|
||||||
class Vehicle(CommonADModel):
|
# class Vehicle(CommonADModel):
|
||||||
"""TN: 用车申请"""
|
# """TN: 用车申请"""
|
||||||
start_time = models.DateField('出车时间', blank=True, null=True)
|
|
||||||
end_time = models.DateField('还车时间', blank=True, null=True)
|
# submit_user = models.ForeignKey(
|
||||||
location = models.CharField('出发地点', null=True, blank=True, max_length=100)
|
# User, verbose_name='用车人', on_delete=models.CASCADE, null=True, blank=True, related_name='vehicle_submit_user')
|
||||||
destination = models.CharField('到达地点', null=True, blank=True, max_length=100)
|
# approval_user = models.ForeignKey(
|
||||||
start_km = models.PositiveIntegerField('出发公里数')
|
# User, verbose_name='审批人', on_delete=models.CASCADE, null=True, blank=True, related_name='vehicle_approval_user'
|
||||||
end_km = models.PositiveIntegerField('归还公里数')
|
# )
|
||||||
actual_km = models.PositiveIntegerField('实际行驶公里数', editable=False)
|
# start_time = models.DateTimeField('出车时间')
|
||||||
is_city = models.BooleanField('是否市内用车', default=True)
|
# end_time = models.DateTimeField('还车时间')
|
||||||
reason = models.CharField('用车事由', max_length=100)
|
# location = models.CharField('出发地点', null=True, blank=True, max_length=100)
|
||||||
ticket = models.ForeignKey('wf.ticket', verbose_name='关联工单',
|
# destination = models.CharField('到达地点', null=True, blank=True, max_length=100)
|
||||||
on_delete=models.SET_NULL, related_name='vehicle_ticket', null=True, blank=True, db_constraint=False)
|
# start_km = models.PositiveIntegerField('出发公里数')
|
||||||
def save(self, *args, **kwargs):
|
# end_km = models.PositiveIntegerField('归还公里数')
|
||||||
if self.end_km and self.start_km:
|
# actual_km = models.PositiveIntegerField('实际行驶公里数', editable=False)
|
||||||
self.actual_km = self.end_km - self.start_km
|
# is_city = models.BooleanField('是否市内用车', default=True)
|
||||||
return super().save(*args, **kwargs)
|
# reason = models.CharField('用车事由', max_length=100)
|
||||||
|
# ticket = models.ForeignKey('wf.ticket', verbose_name='关联工单',
|
||||||
|
# on_delete=models.SET_NULL, related_name='vehicle_ticket', null=True, blank=True, db_constraint=False)
|
||||||
|
# state = models.PositiveIntegerField(
|
||||||
|
# '状态', choices=MTASK_STATES, default=MTASK_CREATED, help_text=str(MTASK_STATES))
|
||||||
|
|
||||||
|
# def save(self, *args, **kwargs):
|
||||||
|
# if self.end_km and self.start_km:
|
||||||
|
# self.actual_km = self.end_km - self.start_km
|
||||||
|
# return super().save(*args, **kwargs)
|
||||||
|
|
||||||
|
|
||||||
# class FileRecord(CommonBDModel):
|
# class FileRecord(CommonBDModel):
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
from .models import (Mroom, MroomBooking, MroomSlot, LendingSeal, Vehicle)
|
from .models import (Mroom, MroomBooking, MroomSlot, LendingSeal)
|
||||||
# , Publicity,
|
# Vehicle, Publicity,
|
||||||
# FileRecord, BorrowRecord, Publicity, PatentInfo, PaperOfm, Platform, Project, PatentRecord, PaperRecord, ProjectApproval, ProjectInfo)
|
# FileRecord, BorrowRecord, Publicity, PatentInfo, PaperOfm, Platform, Project, PatentRecord, PaperRecord, ProjectApproval, ProjectInfo)
|
||||||
from apps.utils.serializers import CustomModelSerializer
|
from apps.utils.serializers import CustomModelSerializer
|
||||||
from rest_framework import serializers
|
from rest_framework import serializers
|
||||||
|
|
@ -80,18 +80,17 @@ class MroomSlotSerializer(CustomModelSerializer):
|
||||||
|
|
||||||
class LendingSealSerializer(CustomModelSerializer):
|
class LendingSealSerializer(CustomModelSerializer):
|
||||||
create_by_name = serializers.CharField(source='create_by.name', read_only=True)
|
create_by_name = serializers.CharField(source='create_by.name', read_only=True)
|
||||||
belong_dept_name = serializers.CharField(source='belong_dept.name', read_only=True)
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = LendingSeal
|
model = LendingSeal
|
||||||
fields = '__all__'
|
fields = '__all__'
|
||||||
read_only_fields = EXCLUDE_FIELDS
|
read_only_fields = EXCLUDE_FIELDS
|
||||||
|
|
||||||
|
|
||||||
class VehicleSerializer(CustomModelSerializer):
|
# class VehicleSerializer(CustomModelSerializer):
|
||||||
class Meta:
|
# class Meta:
|
||||||
model = Vehicle
|
# model = Vehicle
|
||||||
fields = '__all__'
|
# fields = '__all__'
|
||||||
read_only_fields = EXCLUDE_FIELDS + ['actual_km']
|
# read_only_fields = EXCLUDE_FIELDS + ['actual_km']
|
||||||
|
|
||||||
|
|
||||||
# class FileRecordSerializer(CustomModelSerializer):
|
# class FileRecordSerializer(CustomModelSerializer):
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
|
|
||||||
from apps.wf.models import Ticket
|
from apps.wf.models import Ticket
|
||||||
# TicketFlow, Transition, Workflow, CustomField, State,
|
# TicketFlow, Transition, Workflow, CustomField, State,
|
||||||
from apps.ofm.models import LendingSeal, Vehicle
|
from apps.ofm.models import LendingSeal
|
||||||
from rest_framework.exceptions import ParseError
|
from rest_framework.exceptions import ParseError
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -13,6 +13,9 @@ def seal_submit_validate(ins: LendingSeal):
|
||||||
|
|
||||||
def bind_lendingseal(ticket: Ticket, transition, new_ticket_data: dict):
|
def bind_lendingseal(ticket: Ticket, transition, new_ticket_data: dict):
|
||||||
ins = LendingSeal.objects.get(id=new_ticket_data['t_id'])
|
ins = LendingSeal.objects.get(id=new_ticket_data['t_id'])
|
||||||
|
# if ins.submit_time is not None:
|
||||||
|
# raise ParseError('该印章申请不可提交审批')
|
||||||
|
# seal_submit_validate(ins)
|
||||||
ticket_data = ticket.ticket_data
|
ticket_data = ticket.ticket_data
|
||||||
ticket_data.update({
|
ticket_data.update({
|
||||||
't_model': 'LendingSeal',
|
't_model': 'LendingSeal',
|
||||||
|
|
@ -25,17 +28,3 @@ def bind_lendingseal(ticket: Ticket, transition, new_ticket_data: dict):
|
||||||
ins.ticket = ticket
|
ins.ticket = ticket
|
||||||
ins.save()
|
ins.save()
|
||||||
|
|
||||||
def bind_vehicle(ticket: Ticket, transition, new_ticket_data: dict):
|
|
||||||
ins = Vehicle.objects.get(id=new_ticket_data['t_id'])
|
|
||||||
ticket_data = ticket.ticket_data
|
|
||||||
ticket_data.update({
|
|
||||||
't_model': 'Vehicle',
|
|
||||||
't_id': ins.id,
|
|
||||||
})
|
|
||||||
ticket.ticket_data = ticket_data
|
|
||||||
ticket.create_by = ins.create_by
|
|
||||||
ticket.save()
|
|
||||||
if ins.ticket is None:
|
|
||||||
ins.ticket = ticket
|
|
||||||
ins.save()
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
from django.urls import path, include
|
from django.urls import path, include
|
||||||
from rest_framework.routers import DefaultRouter
|
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)
|
||||||
# , , FilerecordViewSet, SealModelViewSet,
|
# , VehicleViewSet, FilerecordViewSet, SealModelViewSet,
|
||||||
# FileborrowViewSet, PublicityViewSet, PatentInfoViewSet, PaperViewSet, PlatformViewSet,
|
# FileborrowViewSet, PublicityViewSet, PatentInfoViewSet, PaperViewSet, PlatformViewSet,
|
||||||
# ProjectViewSet, PatentRecordViewSet, PaperRecordViewSet, ProjectApprovalViewSet, ProjectInfoViewSet)
|
# ProjectViewSet, PatentRecordViewSet, PaperRecordViewSet, ProjectApprovalViewSet, ProjectInfoViewSet)
|
||||||
|
|
||||||
|
|
@ -14,7 +14,7 @@ router.register('mroombooking', MroomBookingViewSet, basename='mroombooking')
|
||||||
router.register('mroomslot', MroomSlotViewSet, basename='mroomslot')
|
router.register('mroomslot', MroomSlotViewSet, basename='mroomslot')
|
||||||
# router.register('sealmanage', SealManageViewSet, basename='sealmanage')
|
# router.register('sealmanage', SealManageViewSet, basename='sealmanage')
|
||||||
router.register('lendingseal', LendingSealViewSet, basename='lendingseal')
|
router.register('lendingseal', LendingSealViewSet, basename='lendingseal')
|
||||||
router.register('vehicle', VehicleViewSet, basename='vehicle')
|
# router.register('vehicle', VehicleViewSet, basename='vehicle')
|
||||||
# router.register('filerecord', FilerecordViewSet, basename='filerecord')
|
# router.register('filerecord', FilerecordViewSet, basename='filerecord')
|
||||||
# router.register('fileborrow', FileborrowViewSet, basename='fileborrow')
|
# router.register('fileborrow', FileborrowViewSet, basename='fileborrow')
|
||||||
# router.register('publicity', PublicityViewSet, basename='publicity')
|
# router.register('publicity', PublicityViewSet, basename='publicity')
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
from django.shortcuts import render
|
from django.shortcuts import render
|
||||||
from apps.utils.viewsets import CustomModelViewSet, CustomGenericViewSet
|
from apps.utils.viewsets import CustomModelViewSet, CustomGenericViewSet
|
||||||
from .models import Mroom, MroomBooking, MroomSlot, LendingSeal, Vehicle
|
from .models import Mroom, MroomBooking, MroomSlot, LendingSeal
|
||||||
# , FileRecord, Seal
|
# Vehicle, FileRecord, Seal
|
||||||
# BorrowRecord, Publicity, PatentInfo, PaperOfm, Platform, Project, PatentRecord, PaperRecord, ProjectApproval, ProjectInfo)
|
# BorrowRecord, Publicity, PatentInfo, PaperOfm, Platform, Project, PatentRecord, PaperRecord, ProjectApproval, ProjectInfo)
|
||||||
from .serializers import (MroomSerializer, MroomBookingSerializer, MroomSlotSerializer, LendingSealSerializer, VehicleSerializer)
|
from .serializers import (MroomSerializer, MroomBookingSerializer, MroomSlotSerializer, LendingSealSerializer)
|
||||||
# ,SealSerializer,
|
# ,SealSerializer,
|
||||||
# LendingSealSerializer, FileRecordSerializer, BorrowRecordSerializer, PublicitySerializer,
|
# LendingSealSerializer, FileRecordSerializer, BorrowRecordSerializer, PublicitySerializer,
|
||||||
# PatentInfoSerializer, PaperSerializer, PlatformSerializer, ProjectSerializer, ProjectMemberSerializer, PaperRecordSerializer, ProjectApprovalSerializer, ProjectInfoSerializer)
|
# PatentInfoSerializer, PaperSerializer, PlatformSerializer, ProjectSerializer, ProjectMemberSerializer, PaperRecordSerializer, ProjectApprovalSerializer, ProjectInfoSerializer)
|
||||||
|
|
@ -102,6 +102,27 @@ class MroomSlotViewSet(CustomListModelMixin, CustomGenericViewSet):
|
||||||
filterset_fields = ["mroom", "mdate", "booking"]
|
filterset_fields = ["mroom", "mdate", "booking"]
|
||||||
|
|
||||||
|
|
||||||
|
# class SealModelViewSet(CustomModelViewSet):
|
||||||
|
# """list: 印章列表
|
||||||
|
|
||||||
|
# 印章列表
|
||||||
|
# """
|
||||||
|
# queryset = Seal.objects.all()
|
||||||
|
# serializer_class = SealSerializer
|
||||||
|
# filterset_fields = ["name"]
|
||||||
|
# ordering = ["name"]
|
||||||
|
|
||||||
|
|
||||||
|
# class SealManageViewSet(CustomModelViewSet):
|
||||||
|
# """list: 印章管理
|
||||||
|
|
||||||
|
# 印章管理
|
||||||
|
# """
|
||||||
|
# queryset = SealManage.objects.all()
|
||||||
|
# serializer_class = SealManageSerializer
|
||||||
|
# filterset_fields = ["seal"]
|
||||||
|
|
||||||
|
|
||||||
class LendingSealViewSet(CustomModelViewSet):
|
class LendingSealViewSet(CustomModelViewSet):
|
||||||
"""list: 印章外出
|
"""list: 印章外出
|
||||||
|
|
||||||
|
|
@ -113,18 +134,17 @@ class LendingSealViewSet(CustomModelViewSet):
|
||||||
serializer_class = LendingSealSerializer
|
serializer_class = LendingSealSerializer
|
||||||
filterset_class = SealFilter
|
filterset_class = SealFilter
|
||||||
ordering = ["create_time"]
|
ordering = ["create_time"]
|
||||||
data_filter = True
|
|
||||||
|
|
||||||
|
|
||||||
class VehicleViewSet(CustomModelViewSet):
|
# class VehicleViewSet(CustomModelViewSet):
|
||||||
"""list: 车辆
|
# """list: 车辆
|
||||||
|
|
||||||
车辆
|
# 车辆
|
||||||
"""
|
# """
|
||||||
queryset = Vehicle.objects.all()
|
# queryset = Vehicle.objects.all()
|
||||||
serializer_class = VehicleSerializer
|
# serializer_class = VehicleSerializer
|
||||||
filterset_fields = ["submit_user"]
|
# filterset_fields = ["submit_user"]
|
||||||
ordering = ["create_time"]
|
# ordering = ["create_time"]
|
||||||
|
|
||||||
|
|
||||||
# class FilerecordViewSet(CustomModelViewSet):
|
# class FilerecordViewSet(CustomModelViewSet):
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue