diff --git a/apps/mtm/admin.py b/apps/mtm/admin.py index 5de10265..c9f57bac 100644 --- a/apps/mtm/admin.py +++ b/apps/mtm/admin.py @@ -1,5 +1,5 @@ from django.contrib import admin -from apps.mtm.models import Material, Shift, Mgroup, Process +from apps.mtm.models import Material, Shift, Mgroup, Process, Tooling # Register your models here. @@ -23,3 +23,8 @@ class ShiftAdmin(admin.ModelAdmin): @admin.register(Mgroup) class MgroupAdmin(admin.ModelAdmin): list_display = ('id', 'name', 'cate') + + +@admin.register(Tooling) +class ToolingAdmin(admin.ModelAdmin): + list_display = ('id', 'name', 'code', 'sort') diff --git a/apps/mtm/models.py b/apps/mtm/models.py index 82a17ebc..60e66768 100644 --- a/apps/mtm/models.py +++ b/apps/mtm/models.py @@ -145,6 +145,17 @@ class Material(CommonAModel): ) ) +class Tooling(CommonBModel): + """TN:工装""" + name = models.CharField('名称', max_length=100) + code = models.CharField('编号', max_length=50, default='', blank=True) + sort = models.PositiveSmallIntegerField('排序', default=1) + + class Meta: + verbose_name = '工装' + ordering = ['sort', 'id'] + + class Shift(CommonBModel): """TN:班次 """ diff --git a/apps/mtm/serializers.py b/apps/mtm/serializers.py index e600f074..5d90aac2 100644 --- a/apps/mtm/serializers.py +++ b/apps/mtm/serializers.py @@ -1,6 +1,6 @@ from apps.utils.serializers import CustomModelSerializer from apps.mtm.models import (Shift, Material, Mgroup, Team, Goal, - Process, Route, TeamMember, RoutePack, Srule, RouteMat) + Process, Route, TeamMember, RoutePack, Srule, RouteMat, Tooling) from apps.utils.constants import EXCLUDE_FIELDS, EXCLUDE_FIELDS_BASE, EXCLUDE_FIELDS_DEPT from rest_framework import serializers from rest_framework.exceptions import ValidationError, ParseError @@ -339,6 +339,13 @@ class RouteSerializer(CustomModelSerializer): res['material_out_tracking'] = None return res +class ToolingSerializer(CustomModelSerializer): + class Meta: + model = Tooling + fields = '__all__' + read_only_fields = EXCLUDE_FIELDS_BASE + + class SruleSerializer(CustomModelSerializer): belong_dept_name = serializers.CharField(source='belong_dept.name', read_only=True) class Meta: diff --git a/apps/mtm/urls.py b/apps/mtm/urls.py index 8405ea36..ecb486e8 100644 --- a/apps/mtm/urls.py +++ b/apps/mtm/urls.py @@ -3,7 +3,7 @@ from rest_framework.routers import DefaultRouter from apps.mtm.views import (MgroupViewSet, ShiftViewSet, TeamViewSet, MaterialViewSet, GoalViewSet, ProcessViewSet, RouteViewSet, TeamMemberViewSet, - RoutePackViewSet, SruleViewSet, RouteMatViewSet) + RoutePackViewSet, SruleViewSet, RouteMatViewSet, ToolingViewSet) API_BASE_URL = 'api/mtm/' HTML_BASE_URL = 'dhtml/mtm/' @@ -20,6 +20,7 @@ router.register('route', RouteViewSet, basename='route') router.register('teammember', TeamMemberViewSet, basename='teammember') router.register('srule', SruleViewSet, basename='srule') router.register("routemat", RouteMatViewSet, basename="routemat") +router.register("tooling", ToolingViewSet, basename="tooling") urlpatterns = [ path(API_BASE_URL, include(router.urls)), ] diff --git a/apps/mtm/views.py b/apps/mtm/views.py index 6017b495..480268ae 100644 --- a/apps/mtm/views.py +++ b/apps/mtm/views.py @@ -6,12 +6,13 @@ from rest_framework.response import Response from rest_framework.exceptions import ParseError from apps.mtm.filters import GoalFilter, MaterialFilter, RouteFilter -from apps.mtm.models import Goal, Material, Mgroup, Shift, Team, Process, Route, TeamMember, RoutePack, Srule, RouteMat +from apps.mtm.models import Goal, Material, Mgroup, Shift, Team, Process, Route, TeamMember, RoutePack, Srule, RouteMat, Tooling from apps.mtm.serializers import (GoalSerializer, MaterialSerializer, MgroupGoalYearSerializer, MgroupSerializer, MgroupDaysSerializer, - ShiftSerializer, TeamSerializer, ProcessSerializer, + ShiftSerializer, TeamSerializer, ProcessSerializer, RouteSerializer, TeamMemberSerializer, RoutePackSerializer, - SruleSerializer, RouteMatSerializer, RoutePackCopySerializer, MaterialExportSerializer) + SruleSerializer, RouteMatSerializer, RoutePackCopySerializer, MaterialExportSerializer, + ToolingSerializer) from apps.mtm.services import get_mgroup_goals, daoru_material, get_mgroup_days from apps.utils.viewsets import CustomGenericViewSet, CustomModelViewSet from apps.utils.mixins import BulkCreateModelMixin, BulkDestroyModelMixin, CustomListModelMixin @@ -419,4 +420,14 @@ class RouteMatViewSet(CustomListModelMixin, BulkCreateModelMixin, BulkDestroyMod perms_map = {"get": "*", "post": "route.update", "delete": "route.update"} queryset = RouteMat.objects.all() serializer_class = RouteMatSerializer - filterset_fields = ['route', 'material'] \ No newline at end of file + filterset_fields = ['route', 'material'] + + +class ToolingViewSet(CustomModelViewSet): + """ + list: 工装列表 + """ + queryset = Tooling.objects.all() + serializer_class = ToolingSerializer + search_fields = ['name', 'code'] + ordering = ['sort', 'id'] \ No newline at end of file