diff --git a/app/api/processingnodes.py b/app/api/processingnodes.py index af1975ae..ccb6d20d 100644 --- a/app/api/processingnodes.py +++ b/app/api/processingnodes.py @@ -20,10 +20,10 @@ class ProcessingNodeSerializer(serializers.ModelSerializer): fields = '__all__' class ProcessingNodeFilter(FilterSet): - has_available_options = django_filters.MethodFilter() + has_available_options = django_filters.CharFilter(method='filter_has_available_options') # noinspection PyMethodMayBeStatic - def filter_has_available_options(self, queryset, value): + def filter_has_available_options(self, queryset, name, value): if value.lower() in ['true', '1']: return queryset.exclude(available_options=dict()) else: diff --git a/app/api/projects.py b/app/api/projects.py index 1ec04be2..e0798a69 100644 --- a/app/api/projects.py +++ b/app/api/projects.py @@ -26,5 +26,5 @@ class ProjectViewSet(viewsets.ModelViewSet): """ filter_fields = ('id', 'name', 'description', 'created_at') serializer_class = ProjectSerializer - queryset = models.Project.objects.filter(deleting=False) + queryset = models.Project.objects.filter(deleting=False).order_by('-created_at') ordering_fields = '__all__' diff --git a/app/boot.py b/app/boot.py index 5310a556..83c92d7a 100644 --- a/app/boot.py +++ b/app/boot.py @@ -1,4 +1,3 @@ -from django.contrib.contenttypes.models import ContentType from django.contrib.auth.models import Permission from django.contrib.auth.models import User, Group from django.core.exceptions import ObjectDoesNotExist @@ -6,7 +5,8 @@ from django.db.utils import ProgrammingError from guardian.shortcuts import assign_perm from nodeodm.models import ProcessingNode -from . import scheduler +# noinspection PyUnresolvedReferences +from . import scheduler, signals import logging from .models import Task from webodm import settings @@ -16,14 +16,14 @@ from webodm.wsgi import booted def boot(): # booted is a shared memory variable to keep track of boot status # as multiple workers could trigger the boot sequence twice - if booted.value: return + if not settings.DEBUG and booted.value: return booted.value = True logger = logging.getLogger('app.logger') logger.info("Booting...") if settings.DEBUG: - logger.warning("Debug mode is ON (for development this is OK)") + logger.warning("Debug mode is ON (for development this is OK)") # Check default group try: diff --git a/nodeodm/external/node-OpenDroneMap b/nodeodm/external/node-OpenDroneMap index 6ddbe1fe..bfc90c9c 160000 --- a/nodeodm/external/node-OpenDroneMap +++ b/nodeodm/external/node-OpenDroneMap @@ -1 +1 @@ -Subproject commit 6ddbe1feba77fff0901a990f6a391bc48525ba74 +Subproject commit bfc90c9cec21a06b88ed92f202a0a79901b8962d diff --git a/requirements.txt b/requirements.txt index 653ac3cd..505a3f3e 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,7 +2,7 @@ anyjson==0.3.3 appdirs==1.4.0 APScheduler==3.2.0 coreapi==2.0.9 -Django==1.10.5 +Django==1.11.1 django-cors-headers==2.0.2 django-debug-toolbar==1.6 django-filter==0.15.3 diff --git a/webodm/settings.py b/webodm/settings.py index b8041758..f44dfe9b 100644 --- a/webodm/settings.py +++ b/webodm/settings.py @@ -13,6 +13,8 @@ https://docs.djangoproject.com/en/1.10/ref/settings/ import os, sys import datetime + +import tzlocal from django.contrib.messages import constants as messages # Build paths inside the project like this: os.path.join(BASE_DIR, ...) @@ -43,6 +45,7 @@ INSTALLED_APPS = [ 'django.contrib.messages', 'django.contrib.staticfiles', 'django.contrib.gis', + 'django_filters', 'guardian', 'rest_framework', 'rest_framework_nested', @@ -133,7 +136,7 @@ AUTHENTICATION_BACKENDS = ( # https://docs.djangoproject.com/en/1.10/topics/i18n/ LANGUAGE_CODE = 'en-us' -TIME_ZONE = None # Use local server time +TIME_ZONE = tzlocal.get_localzone().zone USE_I18N = True USE_L10N = True USE_TZ = True