kopia lustrzana https://github.com/OpenDroneMap/WebODM
40 wiersze
1.3 KiB
Python
40 wiersze
1.3 KiB
Python
import django_filters
|
|
from django_filters.rest_framework import FilterSet
|
|
from rest_framework import serializers, viewsets
|
|
from rest_framework.filters import DjangoFilterBackend
|
|
from rest_framework.permissions import DjangoModelPermissions
|
|
|
|
from nodeodm.models import ProcessingNode
|
|
|
|
|
|
class ProcessingNodeSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = ProcessingNode
|
|
fields = '__all__'
|
|
|
|
class ProcessingNodeFilter(FilterSet):
|
|
has_available_options = django_filters.MethodFilter()
|
|
|
|
# noinspection PyMethodMayBeStatic
|
|
def filter_has_available_options(self, queryset, value):
|
|
if value.lower() in ['true', '1']:
|
|
return queryset.exclude(available_options=dict())
|
|
else:
|
|
return queryset.filter(available_options=dict())
|
|
|
|
class Meta:
|
|
model = ProcessingNode
|
|
fields = ['has_available_options', 'id', 'hostname', 'port', 'api_version', 'queue_count', ]
|
|
|
|
class ProcessingNodeViewSet(viewsets.ModelViewSet):
|
|
"""
|
|
Processing node get/add/delete/update
|
|
Processing nodes are associated with zero or more tasks and
|
|
take care of processing input images.
|
|
"""
|
|
|
|
filter_class = ProcessingNodeFilter
|
|
|
|
pagination_class = None
|
|
serializer_class = ProcessingNodeSerializer
|
|
queryset = ProcessingNode.objects.all() |