feat: mpointstat filterset 支持hour,day,month,year
This commit is contained in:
parent
6698e38d32
commit
c1d140a082
|
@ -48,7 +48,7 @@ class MpointStatFilter(filters.FilterSet):
|
||||||
query = self.data
|
query = self.data
|
||||||
start_time = datetime.strptime(value, "%Y-%m-%d %H:%M:%S")
|
start_time = datetime.strptime(value, "%Y-%m-%d %H:%M:%S")
|
||||||
start_year, start_month, start_day, start_hour = start_time.year, start_time.month, start_time.day, start_time.hour
|
start_year, start_month, start_day, start_hour = start_time.year, start_time.month, start_time.day, start_time.hour
|
||||||
if query["type"] in ["hour_s"]:
|
if query["type"] in ["hour_s", "hour"]:
|
||||||
queryset = queryset.filter(
|
queryset = queryset.filter(
|
||||||
Q(year__gt=start_year)
|
Q(year__gt=start_year)
|
||||||
| Q(year=start_year, month__gt=start_month)
|
| Q(year=start_year, month__gt=start_month)
|
||||||
|
@ -61,13 +61,19 @@ class MpointStatFilter(filters.FilterSet):
|
||||||
queryset = queryset.filter(Q(year_s__gt=start_year) | Q(year_s=start_year, month_s__gte=start_month))
|
queryset = queryset.filter(Q(year_s__gt=start_year) | Q(year_s=start_year, month_s__gte=start_month))
|
||||||
elif query["type"] in ["year_s"]:
|
elif query["type"] in ["year_s"]:
|
||||||
queryset = queryset.filter(Q(year_s__gte=start_year))
|
queryset = queryset.filter(Q(year_s__gte=start_year))
|
||||||
|
elif query["type"] in ["day"]:
|
||||||
|
queryset = queryset.filter(Q(year__gt=start_year) | Q(year=start_year, month__gt=start_month) | Q(year=start_year, month=start_month, day__gte=start_day))
|
||||||
|
elif query["type"] in ["month"]:
|
||||||
|
queryset = queryset.filter(Q(year__gt=start_year) | Q(year=start_year, month__gte=start_month))
|
||||||
|
elif query["type"] in ["year"]:
|
||||||
|
queryset = queryset.filter(Q(year__gte=start_year))
|
||||||
return queryset
|
return queryset
|
||||||
|
|
||||||
def filter_end_time(self, queryset, name, value):
|
def filter_end_time(self, queryset, name, value):
|
||||||
query = self.data
|
query = self.data
|
||||||
end_time = datetime.strptime(value, "%Y-%m-%d %H:%M:%S")
|
end_time = datetime.strptime(value, "%Y-%m-%d %H:%M:%S")
|
||||||
end_year, end_month, end_day, end_hour = end_time.year, end_time.month, end_time.day, end_time.hour
|
end_year, end_month, end_day, end_hour = end_time.year, end_time.month, end_time.day, end_time.hour
|
||||||
if query["type"] in ["hour_s"]:
|
if query["type"] in ["hour_s", "hour"]:
|
||||||
queryset = queryset.filter(
|
queryset = queryset.filter(
|
||||||
Q(year__lt=end_year)
|
Q(year__lt=end_year)
|
||||||
| Q(year=end_year, month__lt=end_month)
|
| Q(year=end_year, month__lt=end_month)
|
||||||
|
@ -80,6 +86,12 @@ class MpointStatFilter(filters.FilterSet):
|
||||||
queryset = queryset.filter(Q(year_s__lt=end_year) | Q(year_s=end_year, month_s__lte=end_month))
|
queryset = queryset.filter(Q(year_s__lt=end_year) | Q(year_s=end_year, month_s__lte=end_month))
|
||||||
elif query["type"] in ["year_s"]:
|
elif query["type"] in ["year_s"]:
|
||||||
queryset = queryset.filter(Q(year_s__lte=end_year))
|
queryset = queryset.filter(Q(year_s__lte=end_year))
|
||||||
|
elif query["type"] in ["day"]:
|
||||||
|
queryset = queryset.filter(Q(year__lt=end_year) | Q(year=end_year, month__lt=end_month) | Q(year=end_year, month=end_month, day__lte=end_day))
|
||||||
|
elif query["type"] in ["month"]:
|
||||||
|
queryset = queryset.filter(Q(year__lt=end_year) | Q(year=end_year, month__lte=end_month))
|
||||||
|
elif query["type"] in ["year"]:
|
||||||
|
queryset = queryset.filter(Q(year__lte=end_year))
|
||||||
return queryset
|
return queryset
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -160,6 +160,7 @@ class MpointStatViewSet(BulkCreateModelMixin, BulkDestroyModelMixin, CustomListM
|
||||||
select_related_fields = ["mpoint", "mpoint__ep_monitored", "mpoint__ep_belong", "mgroup", "mgroup__belong_dept"]
|
select_related_fields = ["mpoint", "mpoint__ep_monitored", "mpoint__ep_belong", "mgroup", "mgroup__belong_dept"]
|
||||||
filterset_class = MpointStatFilter
|
filterset_class = MpointStatFilter
|
||||||
ordering_fields = ['mpoint__report_sortstr', 'year', 'month', 'day', 'hour', 'year_s', 'month_s', 'day_s', 'mgroup__sort', 'create_time']
|
ordering_fields = ['mpoint__report_sortstr', 'year', 'month', 'day', 'hour', 'year_s', 'month_s', 'day_s', 'mgroup__sort', 'create_time']
|
||||||
|
ordering = ["mpoint__report_sortstr", "-year", "-month", "-day", "-hour", "-year_s", "-month_s", "-day_s", "mgroup__sort", "-create_time"]
|
||||||
|
|
||||||
def perform_create(self, serializer):
|
def perform_create(self, serializer):
|
||||||
ins = serializer.save()
|
ins = serializer.save()
|
||||||
|
|
Loading…
Reference in New Issue