kopia lustrzana https://github.com/OpenDroneMap/WebODM
Code cleanup
rodzic
d7a450521c
commit
c75c35a21e
|
@ -1,14 +1,10 @@
|
|||
from rest_framework import serializers, viewsets
|
||||
from rest_framework.response import Response
|
||||
from rest_framework.decorators import permission_classes
|
||||
from rest_framework.permissions import DjangoModelPermissions
|
||||
from rest_framework.filters import DjangoFilterBackend
|
||||
from django_filters.rest_framework import FilterSet
|
||||
from nodeodm.models import ProcessingNode
|
||||
import django_filters
|
||||
from django.utils import timezone
|
||||
from datetime import timedelta
|
||||
from django.db.models import Q
|
||||
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):
|
||||
|
@ -19,6 +15,7 @@ class ProcessingNodeSerializer(serializers.ModelSerializer):
|
|||
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())
|
||||
|
|
|
@ -1,8 +1,9 @@
|
|||
from django.contrib.auth.models import User
|
||||
from rest_framework import serializers, viewsets
|
||||
from rest_framework.response import Response
|
||||
|
||||
from app import models
|
||||
from .tasks import TaskIDsSerializer, TaskSerializer
|
||||
from .tasks import TaskIDsSerializer
|
||||
|
||||
|
||||
class ProjectSerializer(serializers.ModelSerializer):
|
||||
owner = serializers.PrimaryKeyRelatedField(queryset=User.objects.all())
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
from django.contrib.auth.models import User
|
||||
from django.core.exceptions import ObjectDoesNotExist
|
||||
from rest_framework import status, serializers, viewsets, filters, exceptions, permissions, parsers
|
||||
from rest_framework.response import Response
|
||||
from rest_framework.decorators import parser_classes, api_view
|
||||
|
||||
from app import models, scheduler
|
||||
from nodeodm.models import ProcessingNode
|
||||
|
||||
|
||||
class TaskIDsSerializer(serializers.BaseSerializer):
|
||||
def to_representation(self, obj):
|
||||
return obj.id
|
||||
|
@ -34,8 +34,9 @@ class TaskViewSet(viewsets.ViewSet):
|
|||
permission_classes = (permissions.DjangoModelPermissions, )
|
||||
parser_classes = (parsers.MultiPartParser, parsers.JSONParser, )
|
||||
ordering_fields = '__all__'
|
||||
|
||||
def get_and_check_project(self, request, project_pk, perms = ('view_project', )):
|
||||
|
||||
@staticmethod
|
||||
def get_and_check_project(request, project_pk, perms = ('view_project', )):
|
||||
'''
|
||||
Retrieves a project and raises an exeption if the current user
|
||||
has no access to it.
|
||||
|
@ -55,7 +56,7 @@ class TaskViewSet(viewsets.ViewSet):
|
|||
return '\n'.join(output.split('\n')[line_num:])
|
||||
|
||||
def list(self, request, project_pk=None):
|
||||
project = self.get_and_check_project(request, project_pk)
|
||||
self.get_and_check_project(request, project_pk)
|
||||
tasks = self.queryset.filter(project=project_pk)
|
||||
tasks = filters.OrderingFilter().filter_queryset(self.request, tasks, self)
|
||||
serializer = TaskSerializer(tasks, many=True)
|
||||
|
@ -68,8 +69,6 @@ class TaskViewSet(viewsets.ViewSet):
|
|||
except ObjectDoesNotExist:
|
||||
raise exceptions.NotFound()
|
||||
|
||||
response_data = None
|
||||
|
||||
if request.query_params.get('output_only', '').lower() in ['true', '1']:
|
||||
response_data = self.task_output_only(request, task)
|
||||
else:
|
||||
|
@ -88,13 +87,13 @@ class TaskViewSet(viewsets.ViewSet):
|
|||
for file in filesList]
|
||||
|
||||
task = models.Task.create_from_images(files, project)
|
||||
if task != None:
|
||||
if not task is None:
|
||||
return Response({"id": task.id}, status=status.HTTP_201_CREATED)
|
||||
else:
|
||||
raise exceptions.ValidationError(detail="Cannot create task, input provided is not valid.")
|
||||
|
||||
def update(self, request, pk=None, project_pk=None, partial=False):
|
||||
project = self.get_and_check_project(request, project_pk, ('change_project', ))
|
||||
self.get_and_check_project(request, project_pk, ('change_project', ))
|
||||
try:
|
||||
task = self.queryset.get(pk=pk, project=project_pk)
|
||||
except ObjectDoesNotExist:
|
||||
|
|
|
@ -139,7 +139,7 @@ class Task(models.Model):
|
|||
|
||||
# TODO: log process has started processing
|
||||
|
||||
except ProcessingException, e:
|
||||
except ProcessingException as e:
|
||||
print("TASK ERROR: " + e.message)
|
||||
|
||||
# Need to update status (first time, queued or running?)
|
||||
|
|
|
@ -1,7 +1,9 @@
|
|||
from django.contrib.auth.models import User
|
||||
from django.test import TestCase
|
||||
from django.contrib.auth.models import User, Group
|
||||
from app.models import Project
|
||||
|
||||
from app.boot import boot
|
||||
from app.models import Project
|
||||
|
||||
|
||||
class BootTestCase(TestCase):
|
||||
'''
|
||||
|
|
|
@ -129,7 +129,7 @@ class TestApp(BootTestCase):
|
|||
|
||||
# Test options validation
|
||||
task.options = [{'name': 'test', 'value': 1}]
|
||||
self.assertTrue(task.save() == None)
|
||||
self.assertTrue(task.save() is None)
|
||||
|
||||
task.options = {'test': 1}
|
||||
self.assertRaises(ValidationError, task.save)
|
||||
|
@ -139,12 +139,12 @@ class TestApp(BootTestCase):
|
|||
|
||||
|
||||
def test_scheduler(self):
|
||||
self.assertTrue(scheduler.setup() == None)
|
||||
self.assertTrue(scheduler.setup() is None)
|
||||
|
||||
# Can call update_nodes_info()
|
||||
self.assertTrue(scheduler.update_nodes_info() == None)
|
||||
self.assertTrue(scheduler.update_nodes_info() is None)
|
||||
|
||||
# Can call function in background
|
||||
self.assertTrue(scheduler.update_nodes_info(background=True).join() == None)
|
||||
self.assertTrue(scheduler.update_nodes_info(background=True).join() is None)
|
||||
|
||||
self.assertTrue(scheduler.teardown() == None)
|
||||
self.assertTrue(scheduler.teardown() is None)
|
||||
|
|
Ładowanie…
Reference in New Issue