diff --git a/app/api/presets.py b/app/api/presets.py
index 60a65cdb..432888db 100644
--- a/app/api/presets.py
+++ b/app/api/presets.py
@@ -3,7 +3,8 @@ from rest_framework import permissions
from rest_framework import serializers, viewsets
from django.db.models import Q
from rest_framework import status, exceptions
-from rest_framework.filters import DjangoFilterBackend, OrderingFilter
+from rest_framework.filters import OrderingFilter
+from django_filters.rest_framework import DjangoFilterBackend
from rest_framework.response import Response
from app.models import Preset
diff --git a/app/migrations/0018_auto_20180311_1028.py b/app/migrations/0018_auto_20180311_1028.py
new file mode 100644
index 00000000..2a1e34f1
--- /dev/null
+++ b/app/migrations/0018_auto_20180311_1028.py
@@ -0,0 +1,19 @@
+# Generated by Django 2.0.3 on 2018-03-11 14:28
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('app', '0017_auto_20180219_1446'),
+ ]
+
+ operations = [
+ migrations.AlterField(
+ model_name='task',
+ name='processing_node',
+ field=models.ForeignKey(blank=True, help_text='Processing node assigned to this task (or null if this task has not been associated yet)', null=True, on_delete=django.db.models.deletion.SET_NULL, to='nodeodm.ProcessingNode'),
+ ),
+ ]
diff --git a/app/templatetags/plugins.py b/app/templatetags/plugins.py
index 804f4765..0397f4e8 100644
--- a/app/templatetags/plugins.py
+++ b/app/templatetags/plugins.py
@@ -16,7 +16,7 @@ def get_plugins_css_includes():
css_urls = list(itertools.chain(*[plugin.get_include_css_urls() for plugin in get_active_plugins()]))
return "\n".join(map(lambda url: "".format(url), css_urls))
-@register.assignment_tag()
+@register.simple_tag()
def get_plugins_main_menus():
# Flatten list of menus
return list(itertools.chain(*[plugin.main_menu() for plugin in get_active_plugins()]))
diff --git a/app/templatetags/processingnode_extras.py b/app/templatetags/processingnode_extras.py
index c9921b4e..1abb77b1 100644
--- a/app/templatetags/processingnode_extras.py
+++ b/app/templatetags/processingnode_extras.py
@@ -6,16 +6,16 @@ from nodeodm.models import ProcessingNode
register = template.Library()
-@register.assignment_tag(takes_context=True)
+@register.simple_tag(takes_context=True)
def get_visible_processing_nodes(context):
return get_objects_for_user(context['request'].user, "nodeodm.view_processingnode", ProcessingNode, accept_global_perms=False)
-@register.assignment_tag(takes_context=True)
+@register.simple_tag(takes_context=True)
def can_view_processing_nodes(context):
return context['request'].user.has_perm("nodeodm.view_processingnode")
-@register.assignment_tag(takes_context=True)
+@register.simple_tag(takes_context=True)
def can_add_processing_nodes(context):
return context['request'].user.has_perm("nodeodm.add_processingnode")
diff --git a/app/templatetags/settings.py b/app/templatetags/settings.py
index 517981d3..af4d05b2 100644
--- a/app/templatetags/settings.py
+++ b/app/templatetags/settings.py
@@ -5,7 +5,7 @@ from django import template
register = template.Library()
-@register.assignment_tag(takes_context=True)
+@register.simple_tag(takes_context=True)
def settings_image_url(context, image):
return "/media/" + getattr(context['SETTINGS'], image).url
diff --git a/app/views/app.py b/app/views/app.py
index d456fc7f..b99ebeff 100644
--- a/app/views/app.py
+++ b/app/views/app.py
@@ -20,7 +20,7 @@ def index(request):
if User.objects.filter(is_superuser=True).count() == 0:
return redirect('welcome')
- return redirect('dashboard' if request.user.is_authenticated()
+ return redirect('dashboard' if request.user.is_authenticated
else 'login')
@login_required
diff --git a/requirements.txt b/requirements.txt
index 1a2734fd..923ddd50 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -11,13 +11,12 @@ django-codemirror2==0.2
django-colorfield==0.1.14
django-compressor==2.2
django-cors-headers==2.0.2
-django-debug-toolbar==1.6
-django-filter==1.0.4
-django-guardian==1.4.6
+django-filter==1.1.0
+django-guardian==1.4.9
django-imagekit==4.0.1
django-libsass==0.7
-django-webpack-loader==0.3.3
-djangorestframework==3.6.3
+django-webpack-loader==0.6.0
+djangorestframework==3.7.7
djangorestframework-jwt==1.9.0
drf-nested-routers==0.11.1
funcsigs==1.0.2
@@ -45,8 +44,7 @@ requests==2.11.1
rfc3987==1.3.7
rjsmin==1.0.12
simplejson==3.10.0
-six==1.10.0
-sqlparse==0.2.2
+six==1.11.0
strict-rfc3339==0.7
tzlocal==1.3
uritemplate==3.0.0
diff --git a/webodm/settings.py b/webodm/settings.py
index 09d9eaba..4682fea9 100644
--- a/webodm/settings.py
+++ b/webodm/settings.py
@@ -75,13 +75,11 @@ INSTALLED_APPS = [
'imagekit',
'codemirror2',
'compressor',
-# 'debug_toolbar',
'app',
'nodeodm',
]
MIDDLEWARE = [
- # 'debug_toolbar.middleware.DebugToolbarMiddleware',
'corsheaders.middleware.CorsMiddleware',
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
@@ -266,7 +264,7 @@ REST_FRAMEWORK = {
],
'DEFAULT_FILTER_BACKENDS': [
'rest_framework.filters.DjangoObjectPermissionsFilter',
- 'rest_framework.filters.DjangoFilterBackend',
+ 'django_filters.rest_framework.DjangoFilterBackend',
'rest_framework.filters.OrderingFilter',
],
'DEFAULT_AUTHENTICATION_CLASSES': (
@@ -276,6 +274,7 @@ REST_FRAMEWORK = {
'app.api.authentication.JSONWebTokenAuthenticationQS',
),
'PAGE_SIZE': 10,
+ 'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination',
}
JWT_AUTH = {
diff --git a/webodm/urls.py b/webodm/urls.py
index e3fbd905..f5538a24 100644
--- a/webodm/urls.py
+++ b/webodm/urls.py
@@ -29,10 +29,7 @@ urlpatterns = [
]
if settings.DEBUG:
- import debug_toolbar
urlpatterns += [
- url(r'^__debug__/', include(debug_toolbar.urls)),
-
# Expose imagekit generated files and settings file uploads
url(r'^media/CACHE/(?P.*)$', serve, {
'document_root': os.path.join(settings.MEDIA_ROOT, 'CACHE')