feat: 增加utask过滤条件
This commit is contained in:
parent
3d407795a9
commit
3fd0347837
|
@ -1,10 +1,31 @@
|
|||
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 datetime import datetime, timedelta
|
||||
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):
|
||||
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('计划开工日期')
|
||||
end_date = models.DateField('计划完工日期')
|
||||
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.viewsets import CustomModelViewSet
|
||||
|
||||
from .filters import MtaskFilter
|
||||
from .filters import MtaskFilter, UtaskFilter
|
||||
from .models import Mtask, Utask
|
||||
from .serializers import MtaskSerializer, SchedueSerializer, UtaskSerializer
|
||||
from .services import PmService
|
||||
|
@ -22,7 +22,7 @@ class UtaskViewSet(CustomModelViewSet):
|
|||
"""
|
||||
queryset = Utask.objects.all()
|
||||
serializer_class = UtaskSerializer
|
||||
filterset_fields = ['material', 'state']
|
||||
filterset_class = UtaskFilter
|
||||
select_related_fields = ['material']
|
||||
ordering = ['-start_date']
|
||||
|
||||
|
|
Loading…
Reference in New Issue