Compare commits
2 Commits
1c447a86ef
...
bc4953893b
Author | SHA1 | Date |
---|---|---|
|
bc4953893b | |
|
a8722724e1 |
|
@ -1,6 +1,7 @@
|
||||||
from django_filters import rest_framework as filters
|
from django_filters import rest_framework as filters
|
||||||
from apps.mtm.models import Goal, Material, Route
|
from apps.mtm.models import Goal, Material, Route, RoutePack
|
||||||
from django.db.models.expressions import F
|
from django.db.models.expressions import F
|
||||||
|
from rest_framework.exceptions import ParseError
|
||||||
|
|
||||||
|
|
||||||
class MaterialFilter(filters.FilterSet):
|
class MaterialFilter(filters.FilterSet):
|
||||||
|
@ -45,6 +46,8 @@ class GoalFilter(filters.FilterSet):
|
||||||
|
|
||||||
|
|
||||||
class RouteFilter(filters.FilterSet):
|
class RouteFilter(filters.FilterSet):
|
||||||
|
nprocess_name = filters.CharFilter(method='filter_nprocess_name', label="nprocess_name")
|
||||||
|
material_in_has = filters.CharFilter(method='filter_material_in_has', label="material_in_has ID")
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Route
|
model = Route
|
||||||
fields = {
|
fields = {
|
||||||
|
@ -61,3 +64,15 @@ class RouteFilter(filters.FilterSet):
|
||||||
"mgroup__belong_dept__name": ["exact", "contains"],
|
"mgroup__belong_dept__name": ["exact", "contains"],
|
||||||
"from_route": ["exact", "isnull"],
|
"from_route": ["exact", "isnull"],
|
||||||
}
|
}
|
||||||
|
|
||||||
|
def filter_nprocess_name(self, queryset, name, value):
|
||||||
|
return queryset
|
||||||
|
|
||||||
|
|
||||||
|
def filter_material_in_has(self, queryset, name, value):
|
||||||
|
nprocess_name = self.data.get('nprocess_name', None)
|
||||||
|
if nprocess_name:
|
||||||
|
routepack_qs = queryset.filter(material_in__id=value, routepack__isnull=False, routepack__state=RoutePack.RP_S_CONFIRM).values_list('routepack', flat=True)
|
||||||
|
qs = queryset.filter(routepack__in=routepack_qs, process__name=nprocess_name)
|
||||||
|
return qs
|
||||||
|
raise ParseError("nprocess_name is required")
|
Loading…
Reference in New Issue