feat: 增加utask过滤条件
This commit is contained in:
parent
3d407795a9
commit
3fd0347837
|
|
@ -1,10 +1,31 @@
|
||||||
from django_filters import rest_framework as filters
|
from django_filters import rest_framework as filters
|
||||||
from apps.pm.models import Mtask
|
from apps.pm.models import Mtask, Utask
|
||||||
from django.utils import timezone
|
from django.utils import timezone
|
||||||
from datetime import datetime, timedelta
|
from datetime import datetime, timedelta
|
||||||
from django.db.models import F
|
from django.db.models import F
|
||||||
|
|
||||||
|
|
||||||
|
class UtaskFilter(filters.FilterSet):
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
model = Utask
|
||||||
|
fields = {
|
||||||
|
"state": ["exact", "in"],
|
||||||
|
"start_date": ["exact", "gte", "lte"],
|
||||||
|
"end_date": ["exact", "gte", "lte"],
|
||||||
|
"material": ["exact"],
|
||||||
|
"material__type": ["exact"],
|
||||||
|
"material__is_hidden": ["exact"],
|
||||||
|
"mtask_utask__mgroup": ["exact"],
|
||||||
|
"mtask_utask__mgroup__belong_dept": ['exact'],
|
||||||
|
"mtask_utask__mgroup__belong_dept__name": ['exact']
|
||||||
|
}
|
||||||
|
|
||||||
|
def filter_queryset(self, queryset):
|
||||||
|
queryset = super().filter_queryset(queryset)
|
||||||
|
return queryset.distinct()
|
||||||
|
|
||||||
|
|
||||||
class MtaskFilter(filters.FilterSet):
|
class MtaskFilter(filters.FilterSet):
|
||||||
tag = filters.CharFilter(method='filter_tag')
|
tag = filters.CharFilter(method='filter_tag')
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,19 @@
|
||||||
|
# Generated by Django 3.2.12 on 2023-10-20 01:17
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
import django.db.models.deletion
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('pm', '0007_auto_20231019_1812'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='mtask',
|
||||||
|
name='utask',
|
||||||
|
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='mtask_utask', to='pm.utask', verbose_name='关联大任务'),
|
||||||
|
),
|
||||||
|
]
|
||||||
|
|
@ -62,4 +62,4 @@ class Mtask(CommonADModel):
|
||||||
start_date = models.DateField('计划开工日期')
|
start_date = models.DateField('计划开工日期')
|
||||||
end_date = models.DateField('计划完工日期')
|
end_date = models.DateField('计划完工日期')
|
||||||
utask = models.ForeignKey(
|
utask = models.ForeignKey(
|
||||||
Utask, verbose_name='关联大任务', on_delete=models.CASCADE, null=True, blank=True)
|
Utask, verbose_name='关联大任务', on_delete=models.CASCADE, null=True, blank=True, related_name='mtask_utask')
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ from rest_framework.response import Response
|
||||||
from apps.utils.serializers import PkSerializer
|
from apps.utils.serializers import PkSerializer
|
||||||
from apps.utils.viewsets import CustomModelViewSet
|
from apps.utils.viewsets import CustomModelViewSet
|
||||||
|
|
||||||
from .filters import MtaskFilter
|
from .filters import MtaskFilter, UtaskFilter
|
||||||
from .models import Mtask, Utask
|
from .models import Mtask, Utask
|
||||||
from .serializers import MtaskSerializer, SchedueSerializer, UtaskSerializer
|
from .serializers import MtaskSerializer, SchedueSerializer, UtaskSerializer
|
||||||
from .services import PmService
|
from .services import PmService
|
||||||
|
|
@ -22,7 +22,7 @@ class UtaskViewSet(CustomModelViewSet):
|
||||||
"""
|
"""
|
||||||
queryset = Utask.objects.all()
|
queryset = Utask.objects.all()
|
||||||
serializer_class = UtaskSerializer
|
serializer_class = UtaskSerializer
|
||||||
filterset_fields = ['material', 'state']
|
filterset_class = UtaskFilter
|
||||||
select_related_fields = ['material']
|
select_related_fields = ['material']
|
||||||
ordering = ['-start_date']
|
ordering = ['-start_date']
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue