diff --git a/bakery/management/commands/build.py b/bakery/management/commands/build.py
index 4a3bc1a..8ac5abe 100644
--- a/bakery/management/commands/build.py
+++ b/bakery/management/commands/build.py
@@ -15,7 +15,7 @@
# Filesystem
from fs import path
from fs import copy
-from django.utils.encoding import smart_str as smart_text
+from django.utils.encoding import smart_str
# Pooling
import multiprocessing
@@ -128,9 +128,9 @@ def set_options(self, *args, **options):
self.build_dir = settings.BUILD_DIR
# Get the datatypes right so fs will be happy
- self.build_dir = smart_text(self.build_dir)
- self.static_root = smart_text(settings.STATIC_ROOT)
- self.media_root = smart_text(settings.MEDIA_ROOT)
+ self.build_dir = smart_str(self.build_dir)
+ self.static_root = smart_str(settings.STATIC_ROOT)
+ self.media_root = smart_str(settings.MEDIA_ROOT)
# Connect the BUILD_DIR with our filesystem backend
self.app = apps.get_app_config("bakery")
@@ -176,7 +176,7 @@ def build_static(self, *args, **options):
# Set the target directory inside the filesystem.
target_dir = path.join(self.build_dir, settings.STATIC_URL.lstrip("/"))
- target_dir = smart_text(target_dir)
+ target_dir = smart_str(target_dir)
if os.path.exists(self.static_root) and settings.STATIC_URL:
if getattr(settings, "BAKERY_GZIP", False):
self.copytree_and_gzip(self.static_root, target_dir)
@@ -210,7 +210,7 @@ def build_media(self):
if os.path.exists(self.media_root) and settings.MEDIA_URL:
target_dir = path.join(self.build_dir, settings.MEDIA_URL.lstrip("/"))
logger.debug("Copying {}{} to {}{}".format("osfs://", self.media_root, self.fs_name, target_dir))
- copy.copy_dir("osfs:///", smart_text(self.media_root), self.fs, smart_text(target_dir))
+ copy.copy_dir("osfs:///", smart_str(self.media_root), self.fs, smart_str(target_dir))
def get_view_instance(self, view):
"""
@@ -294,7 +294,7 @@ def copyfile_and_gzip(self, source_path, target_path):
"osfs://", source_path, self.fs_name, target_path
)
)
- copy.copy_file("osfs:///", smart_text(source_path), self.fs, smart_text(target_path))
+ copy.copy_file("osfs:///", smart_str(source_path), self.fs, smart_str(target_path))
# # if the file is already gzipped
elif encoding == "gzip":
@@ -303,7 +303,7 @@ def copyfile_and_gzip(self, source_path, target_path):
"osfs://", source_path, self.fs_name, target_path
)
)
- copy.copy_file("osfs:///", smart_text(source_path), self.fs, smart_text(target_path))
+ copy.copy_file("osfs:///", smart_str(source_path), self.fs, smart_str(target_path))
# If it is one we want to gzip...
else:
@@ -320,6 +320,6 @@ def copyfile_and_gzip(self, source_path, target_path):
f.write(six.binary_type(source_file.read()))
# Write that buffer out to the filesystem
- with self.fs.open(smart_text(target_path), "wb") as outfile:
+ with self.fs.open(smart_str(target_path), "wb") as outfile:
outfile.write(data_buffer.getvalue())
outfile.close()
diff --git a/bakery/management/commands/publish.py b/bakery/management/commands/publish.py
index fa43573..2cba459 100644
--- a/bakery/management/commands/publish.py
+++ b/bakery/management/commands/publish.py
@@ -15,7 +15,7 @@
from fs import copy
from fs_s3fs import S3FS
from fs.copy import copy_file
-from django.utils.encoding import smart_str as smart_text
+from django.utils.encoding import smart_str
from django.apps import apps
@@ -223,7 +223,7 @@ def set_options(self, options):
# Go ahead and use it
self.build_dir = settings.BUILD_DIR
- self.build_dir = smart_text(self.build_dir)
+ self.build_dir = smart_str(self.build_dir)
# Connect the BUILD_DIR with our filesystem backend
self.app = apps.get_app_config("bakery")
@@ -295,7 +295,7 @@ def get_local_file_list(self):
local_key = path.combine(path.frombase(path.abspath(self.build_dir), dirpath), fname.name)
local_key = path.relpath(local_key)
- file_list.append(smart_text(local_key))
+ file_list.append(smart_str(local_key))
return file_list
def sync_with_s3(self):
diff --git a/bakery/views/base.py b/bakery/views/base.py
index 819fb29..be1c94f 100644
--- a/bakery/views/base.py
+++ b/bakery/views/base.py
@@ -14,7 +14,7 @@
from fs import path
from django.apps import apps
from django.conf import settings
-from django.utils.encoding import smart_str as smart_text
+from django.utils.encoding import smart_str
from bakery import DEFAULT_GZIP_CONTENT_TYPES
from django.test.client import RequestFactory
from bakery.management.commands import get_s3_client
@@ -76,7 +76,7 @@ def write_file(self, target_path, html):
Writes out the provided HTML to the provided path.
"""
logger.debug("Building to {}{}".format(self.fs_name, target_path))
- with self.fs.open(smart_text(target_path), "wb") as outfile:
+ with self.fs.open(smart_str(target_path), "wb") as outfile:
outfile.write(six.binary_type(html))
outfile.close()
@@ -114,7 +114,7 @@ def gzip_file(self, target_path, html):
f.write(six.binary_type(html))
# Write that buffer out to the filesystem
- with self.fs.open(smart_text(target_path), "wb") as outfile:
+ with self.fs.open(smart_str(target_path), "wb") as outfile:
outfile.write(data_buffer.getvalue())
outfile.close()
diff --git a/bigvince/settings_.py b/bigvince/settings_.py
index 633c5c6..332c45b 100644
--- a/bigvince/settings_.py
+++ b/bigvince/settings_.py
@@ -46,6 +46,8 @@
import environ
import urllib
+import django
+
env = environ.Env(DEBUG=(bool, False))
environ.Env.read_env()
@@ -56,6 +58,11 @@
# any change that requires database migrations is a minor release
VERSION = "3.0.44"
+if django.VERSION >= (5, 1):
+ DB_BACKEND="django.db.backends.postgresql"
+else:
+ DB_BACKEND=DB_BACKEND
+
# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/2.1/howto/deployment/checklist/
@@ -192,7 +199,14 @@
STATIC_URL = f"https://{AWS_S3_CUSTOM_DOMAIN}/{AWS_LOCATION}/"
# Tell the staticfiles app to use S3Boto3 storage when writing the collected static files (when
# you run `collectstatic`).
- STATICFILES_STORAGE = "storages.backends.s3boto3.S3Boto3Storage"
+ if django.VERSION >= (5, 1):
+ STORAGES = {
+ "default": {"BACKEND": "django.core.files.storage.FileSystemStorage"},
+ "staticfiles": {"BACKEND": "storages.backends.s3boto3.S3Boto3Storage"},
+ }
+ else:
+ STATICFILES_STORAGE = "storages.backends.s3boto3.S3Boto3Storage"
+
# set to True if you want VINCE to write a contacts backup file to an S3 directory,
# you must also set ANCIENT_SRMAIL_BUCKET to S3 arn
# To reload contacts into VINCE, set INITIAL_CONTACT_FILE and
@@ -425,7 +439,7 @@ def get_secret(secret_arn):
DATABASES = {"default": {}}
if VINCE_NAMESPACE == "vince":
DATABASES["default"] = {
- "ENGINE": "django.db.backends.postgresql_psycopg2",
+ "ENGINE": DB_BACKEND,
"NAME": vincetrack_db,
"USER": vincetrack_user,
"PASSWORD": vincetrack_password,
@@ -439,7 +453,7 @@ def get_secret(secret_arn):
if VINCE_NAMESPACE in ["vince", "vinny"]:
DATABASES["vincecomm"] = {
- "ENGINE": "django.db.backends.postgresql_psycopg2",
+ "ENGINE": DB_BACKEND,
"NAME": vincecomm_db,
"USER": vincecomm_user,
"PASSWORD": vincecomm_password,
@@ -449,7 +463,7 @@ def get_secret(secret_arn):
}
DATABASES["vincepub"] = {
- "ENGINE": "django.db.backends.postgresql_psycopg2",
+ "ENGINE": DB_BACKEND,
"NAME": vincepub_db,
"USER": vincepub_user,
"PASSWORD": vincepub_password,
@@ -462,7 +476,7 @@ def get_secret(secret_arn):
# don't enable the admin interface for kb
ADMIN_ENABLED = False
DATABASES["default"] = {
- "ENGINE": "django.db.backends.postgresql_psycopg2",
+ "ENGINE": DB_BACKEND,
"NAME": vincepub_db,
"USER": vincepub_user,
"PASSWORD": vincepub_password,
@@ -475,7 +489,7 @@ def get_secret(secret_arn):
if VINCE_NAMESPACE == "vinny":
SESSION_COOKIE_PATH = "/vince/comm"
DATABASES["default"] = {
- "ENGINE": "django.db.backends.postgresql_psycopg2",
+ "ENGINE": DB_BACKEND,
"NAME": vincecomm_db,
"USER": vincecomm_user,
"PASSWORD": vincecomm_password,
diff --git a/cogauth/backend.py b/cogauth/backend.py
index 0ce62dc..f875aac 100644
--- a/cogauth/backend.py
+++ b/cogauth/backend.py
@@ -49,7 +49,7 @@
from vinny.models import VinceAPIToken
from rest_framework import exceptions
from rest_framework.authentication import BaseAuthentication, TokenAuthentication, get_authorization_header
-from django.utils.encoding import smart_str as smart_text
+from django.utils.encoding import smart_str
from django.utils.translation import gettext as _
from bigvince.utils import get_cognito_url, get_cognito_pool_url
import traceback
@@ -443,7 +443,7 @@ def authenticate(self, request):
def get_jwt_token(self, request):
logger.debug(f"Collected headers for JSONWwebToken as {request.headers}")
auth = get_authorization_header(request).split()
- if not auth or smart_text(auth[0].lower()) != "bearer":
+ if not auth or smart_str(auth[0].lower()) != "bearer":
return None
if len(auth) == 1:
diff --git a/requirements.txt b/requirements.txt
index 5d383cf..cd18d91 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,6 +1,6 @@
amqp==5.1.1
appdirs==1.4.4
-asgiref==3.6.0
+asgiref==3.8.1
asn1crypto==1.5.1
async-timeout==4.0.2
attrs==22.1.0
@@ -24,7 +24,7 @@ cryptography==50.0.0
cvelib==1.3.0
Deprecated==1.2.13
dictdiffer==0.9.0
-Django==4.2.30
+Django==5.2.16
django-appconf==1.0.5
django-countries==7.4.2
django-environ==0.9.0
diff --git a/vince/forms.py b/vince/forms.py
index 7b73879..5d63c03 100644
--- a/vince/forms.py
+++ b/vince/forms.py
@@ -55,7 +55,7 @@
from vince.permissions import get_user_gen_queue
import traceback
import os
-from django.utils.encoding import smart_str as smart_text
+from django.utils.encoding import smart_str
logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)
@@ -562,7 +562,7 @@ def save(self):
logger.debug("IN FILE UPLOAD SAVE")
# create the vincecommattachment
if file.size:
- filename = smart_text(file.name)
+ filename = smart_str(file.name)
logger.debug(filename)
try:
mime_type = file.content_type
diff --git a/vince/lib.py b/vince/lib.py
index cbc7d4c..ed5c8be 100644
--- a/vince/lib.py
+++ b/vince/lib.py
@@ -48,7 +48,7 @@
from django.core.files import File
from django.core.serializers.json import DjangoJSONEncoder
from django.utils import timezone
-from django.utils.encoding import smart_str as smart_text
+from django.utils.encoding import smart_str
from django.template.loader import render_to_string, get_template
from vince.models import VulnerabilityCase
@@ -287,7 +287,7 @@ def process_attachments(followup, attached_files):
for attached in attached_files:
logger.debug(attached)
if attached.size:
- filename = smart_text(attached.name)
+ filename = smart_str(attached.name)
logger.debug(filename)
try:
mime_type = attached.content_type
diff --git a/vince/templates/vince/400.html b/vince/templates/vince/400.html
index e8e2baa..33733a6 100644
--- a/vince/templates/vince/400.html
+++ b/vince/templates/vince/400.html
@@ -1,5 +1,5 @@
{% extends VINCETRACK_BASE_TEMPLATE %}
-{% load staticfiles %}
+{% load static %}
{% block content %}
diff --git a/vince/templates/vince/403.html b/vince/templates/vince/403.html
index d679bad..80c51ab 100644
--- a/vince/templates/vince/403.html
+++ b/vince/templates/vince/403.html
@@ -1,5 +1,5 @@
{% extends VINCETRACK_BASE_TEMPLATE %}
-{% load staticfiles %}
+{% load static %}
{% block content %}
diff --git a/vince/templates/vince/500.html b/vince/templates/vince/500.html
index 80f6aab..c715ae8 100644
--- a/vince/templates/vince/500.html
+++ b/vince/templates/vince/500.html
@@ -1,5 +1,5 @@
{% extends VINCETRACK_BASE_TEMPLATE %}
-{% load staticfiles %}
+{% load static %}
{% block content %}
diff --git a/vince/templates/vince/activity.html b/vince/templates/vince/activity.html
index 5820c06..da0186b 100644
--- a/vince/templates/vince/activity.html
+++ b/vince/templates/vince/activity.html
@@ -1,7 +1,7 @@
{% extends VINCETRACK_BASE_TEMPLATE %}{% load i18n dashboard_tags %}
{% block vince_title %}{% trans "Activity" %}{% endblock %}
-{% load staticfiles %}
+{% load static %}
{% block js %}
{{ block.super }}
diff --git a/vince/templates/vince/approve_all.html b/vince/templates/vince/approve_all.html
index f8efd53..20c0c04 100644
--- a/vince/templates/vince/approve_all.html
+++ b/vince/templates/vince/approve_all.html
@@ -1,7 +1,7 @@
{% extends "vince/modal.html" %}
{% load i18n %}
{% load widget_tweaks %}
-{% load staticfiles %}
+{% load static %}
{% block content %}
diff --git a/vince/templates/vince/approve_users.html b/vince/templates/vince/approve_users.html
index ec94c6b..c20600f 100644
--- a/vince/templates/vince/approve_users.html
+++ b/vince/templates/vince/approve_users.html
@@ -1,7 +1,7 @@
{% extends VINCETRACK_BASE_TEMPLATE %}{% load i18n humanize post_tags %}
{% block vince_title %}{% trans "Pending Users" %}{% endblock %}
-{% load staticfiles %}
+{% load static %}
{% block js %}
{{ block.super }}
diff --git a/vince/templates/vince/artifacts.html b/vince/templates/vince/artifacts.html
index daa0d58..054e6ad 100644
--- a/vince/templates/vince/artifacts.html
+++ b/vince/templates/vince/artifacts.html
@@ -1,6 +1,6 @@
{% extends VINCETRACK_BASE_TEMPLATE %}{% load i18n humanize%}
{% block vince_title %}{% trans "Ticket Artifacts" %}{% endblock %}
-{% load staticfiles %}
+{% load static %}
{% block js %}
{{ block.super }}
diff --git a/vince/templates/vince/bouncemanager.html b/vince/templates/vince/bouncemanager.html
index 7ca4491..cacfba0 100644
--- a/vince/templates/vince/bouncemanager.html
+++ b/vince/templates/vince/bouncemanager.html
@@ -1,7 +1,7 @@
{% extends VINCETRACK_BASE_TEMPLATE %}{% load i18n contact_tags %}
{% block vince_title %}{% trans "VINCE Bounce Manager" %}{% endblock %}
-{% load staticfiles %}
+{% load static %}
{% block js %}
{{ block.super }}
diff --git a/vince/templates/vince/case.html b/vince/templates/vince/case.html
index 93f2c02..2017391 100644
--- a/vince/templates/vince/case.html
+++ b/vince/templates/vince/case.html
@@ -1,5 +1,5 @@
{% extends VINCETRACK_BASE_TEMPLATE %}{% load i18n humanize%}
-{% load staticfiles %}
+{% load static %}
{% block js %}
{{ block.super }}
diff --git a/vince/templates/vince/case_templates.html b/vince/templates/vince/case_templates.html
index 6aec9c4..00de03e 100644
--- a/vince/templates/vince/case_templates.html
+++ b/vince/templates/vince/case_templates.html
@@ -1,7 +1,7 @@
{% extends VINCETRACK_BASE_TEMPLATE %}{% load i18n %}
{% block vince_title %}{% trans "Case Template Management" %}{% endblock %}
-{% load staticfiles %}
+{% load static %}
{% block js %}
{{ block.super }}
diff --git a/vince/templates/vince/changelog.html b/vince/templates/vince/changelog.html
index 4ac85fe..f89942e 100644
--- a/vince/templates/vince/changelog.html
+++ b/vince/templates/vince/changelog.html
@@ -1,5 +1,5 @@
{% extends VINCETRACK_BASE_TEMPLATE %}{% load i18n humanize%}
-{% load staticfiles %}
+{% load static %}
{% block js %}
{{ block.super }}
diff --git a/vince/templates/vince/complete_transfer.html b/vince/templates/vince/complete_transfer.html
index 5d3e7ed..82d52b9 100644
--- a/vince/templates/vince/complete_transfer.html
+++ b/vince/templates/vince/complete_transfer.html
@@ -1,5 +1,5 @@
{% extends VINCETRACK_BASE_TEMPLATE %}{% load i18n humanize ticket_to_link %}
-{% load staticfiles %}
+{% load static %}
{% block js %}
{{ block.super }}
diff --git a/vince/templates/vince/contact.html b/vince/templates/vince/contact.html
index 5f4d472..1e673e3 100644
--- a/vince/templates/vince/contact.html
+++ b/vince/templates/vince/contact.html
@@ -1,6 +1,6 @@
{% extends VINCETRACK_BASE_TEMPLATE %}
{% load i18n humanize ticket_to_link contact_tags %}
-{% load staticfiles %}
+{% load static %}
{% block js %}
{{ block.super }}
diff --git a/vince/templates/vince/contact_assoc_list.html b/vince/templates/vince/contact_assoc_list.html
index e0cda07..4193f07 100644
--- a/vince/templates/vince/contact_assoc_list.html
+++ b/vince/templates/vince/contact_assoc_list.html
@@ -1,7 +1,7 @@
{% extends VINCETRACK_BASE_TEMPLATE %}{% load i18n humanize post_tags %}
{% block vince_title %}{% trans "Completed Associations" %}{% endblock %}
-{% load staticfiles %}
+{% load static %}
{% block js %}
{{ block.super }}
{% endblock %}
diff --git a/vince/templates/vince/contact_cases.html b/vince/templates/vince/contact_cases.html
index 8ed4acf..c15b75c 100644
--- a/vince/templates/vince/contact_cases.html
+++ b/vince/templates/vince/contact_cases.html
@@ -1,7 +1,7 @@
{% extends VINCETRACK_BASE_TEMPLATE %}{% load i18n humanize post_tags ticket_to_link %}
{% block vince_title %}{% trans "Contact Cases" %}{% endblock %}
-{% load staticfiles %}
+{% load static %}
{% block js %}
{{ block.super }}
{% endblock %}
diff --git a/vince/templates/vince/contact_changes.html b/vince/templates/vince/contact_changes.html
index 879ab74..2de6130 100644
--- a/vince/templates/vince/contact_changes.html
+++ b/vince/templates/vince/contact_changes.html
@@ -1,6 +1,6 @@
{% extends VINCETRACK_BASE_TEMPLATE %}
{% load i18n humanize contact_tags %}
-{% load staticfiles %}
+{% load static %}
{% block js %}
{{ block.super }}
diff --git a/vince/templates/vince/contact_report.html b/vince/templates/vince/contact_report.html
index 5e0bdd0..7938cde 100644
--- a/vince/templates/vince/contact_report.html
+++ b/vince/templates/vince/contact_report.html
@@ -1,7 +1,7 @@
{% extends VINCETRACK_BASE_TEMPLATE %}{% load i18n dashboard_tags %}
{% block vince_title %}{% trans "Contact Reports" %}{% endblock %}
-{% load staticfiles %}
+{% load static %}
{% block content %}
diff --git a/vince/templates/vince/contactupdatelist.html b/vince/templates/vince/contactupdatelist.html
index bf8bfef..90edf1b 100644
--- a/vince/templates/vince/contactupdatelist.html
+++ b/vince/templates/vince/contactupdatelist.html
@@ -1,7 +1,7 @@
{% extends VINCETRACK_BASE_TEMPLATE %}{% load i18n humanize post_tags %}
{% block vince_title %}{% trans "Contact Updates" %}{% endblock %}
-{% load staticfiles %}
+{% load static %}
{% block js %}
{{ block.super }}
{% endblock %}
diff --git a/vince/templates/vince/cr.html b/vince/templates/vince/cr.html
index b6f3731..565be93 100644
--- a/vince/templates/vince/cr.html
+++ b/vince/templates/vince/cr.html
@@ -1,5 +1,5 @@
{% extends VINCETRACK_BASE_TEMPLATE %}{% load i18n humanize%}
-{% load staticfiles %}
+{% load static %}
{% block js %}
{{ block.super }}
diff --git a/vince/templates/vince/create.html b/vince/templates/vince/create.html
index 1134746..2990011 100644
--- a/vince/templates/vince/create.html
+++ b/vince/templates/vince/create.html
@@ -1,6 +1,6 @@
{% extends VINCETRACK_BASE_TEMPLATE %}{% load i18n %}
-{% load staticfiles %}
+{% load static %}
{% block js %}
{{ block.super }}
diff --git a/vince/templates/vince/create_case.html b/vince/templates/vince/create_case.html
index c529357..05a3f47 100644
--- a/vince/templates/vince/create_case.html
+++ b/vince/templates/vince/create_case.html
@@ -1,7 +1,7 @@
{% extends VINCETRACK_BASE_TEMPLATE %}{% load i18n %}
{% block vince_title %}{% trans "Create New Case Request" %}{% endblock %}
-{% load staticfiles %}
+{% load static %}
{% block js %}
{{ block.super }}
diff --git a/vince/templates/vince/create_user.html b/vince/templates/vince/create_user.html
index 57127a7..28e328a 100644
--- a/vince/templates/vince/create_user.html
+++ b/vince/templates/vince/create_user.html
@@ -2,7 +2,7 @@
{% load i18n static %}
{% block vince_title %}{% trans "Create New User" %}{% endblock %}
-{% load staticfiles %}
+{% load static %}
{% block content %}
{% load widget_tweaks %}
diff --git a/vince/templates/vince/cve_list.html b/vince/templates/vince/cve_list.html
index 0edb5d8..f724adc 100644
--- a/vince/templates/vince/cve_list.html
+++ b/vince/templates/vince/cve_list.html
@@ -1,7 +1,7 @@
{% extends VINCETRACK_BASE_TEMPLATE %}{% load i18n dashboard_tags widget_tweaks %}
{% block vince_title %}{% trans "CVE Services" %}{% endblock %}
-{% load staticfiles %}
+{% load static %}
{% block js %}
{{ block.super }}
diff --git a/vince/templates/vince/cveform.html b/vince/templates/vince/cveform.html
index 3fa0b78..2b4ca47 100644
--- a/vince/templates/vince/cveform.html
+++ b/vince/templates/vince/cveform.html
@@ -1,7 +1,7 @@
{% extends VINCETRACK_BASE_TEMPLATE %}{% load i18n %}
{% block vince_title %}{% trans "Create CVE" %}{% endblock %}
-{% load staticfiles %}
+{% load static %}
{% block js %}
{{ block.super }}
diff --git a/vince/templates/vince/cveservices.html b/vince/templates/vince/cveservices.html
index e486c52..2c0e4a2 100644
--- a/vince/templates/vince/cveservices.html
+++ b/vince/templates/vince/cveservices.html
@@ -1,7 +1,7 @@
{% extends VINCETRACK_BASE_TEMPLATE %}{% load i18n dashboard_tags %}
{% block vince_title %}{% trans "CVE Services" %}{% endblock %}
-{% load staticfiles %}
+{% load static %}
{% block js %}
{{ block.super }}
diff --git a/vince/templates/vince/dashboard.html b/vince/templates/vince/dashboard.html
index 27f7bd4..472c82e 100644
--- a/vince/templates/vince/dashboard.html
+++ b/vince/templates/vince/dashboard.html
@@ -1,7 +1,7 @@
{% extends VINCETRACK_BASE_TEMPLATE %}{% load i18n dashboard_tags post_tags %}
{% block vince_title %}{% trans "Dashboard" %}{% endblock %}
-{% load staticfiles %}
+{% load static %}
{% block js %}
{{ block.super }}
diff --git a/vince/templates/vince/edit_case.html b/vince/templates/vince/edit_case.html
index 9a2501e..a98eb72 100644
--- a/vince/templates/vince/edit_case.html
+++ b/vince/templates/vince/edit_case.html
@@ -1,6 +1,6 @@
{% extends VINCETRACK_BASE_TEMPLATE %}{% load i18n %}
{% block vince_title %}{% trans "Create Case" %}{% endblock %}
-{% load staticfiles %}
+{% load static %}
{% block js %}
{{ block.super }}
diff --git a/vince/templates/vince/edit_case_template.html b/vince/templates/vince/edit_case_template.html
index a236fbd..8522597 100644
--- a/vince/templates/vince/edit_case_template.html
+++ b/vince/templates/vince/edit_case_template.html
@@ -1,7 +1,7 @@
{% extends VINCETRACK_BASE_TEMPLATE %}{% load i18n %}
{% block vince_title %}{% trans "Case Template Management" %}{% endblock %}
-{% load staticfiles %}
+{% load static %}
{% block js %}
{{ block.super }}
diff --git a/vince/templates/vince/edit_cr.html b/vince/templates/vince/edit_cr.html
index 6f204b4..9a22568 100644
--- a/vince/templates/vince/edit_cr.html
+++ b/vince/templates/vince/edit_cr.html
@@ -1,6 +1,6 @@
{% extends VINCETRACK_BASE_TEMPLATE %}{% load i18n %}
{% block vince_title %}{% trans "Create New Case Request" %}{% endblock %}
-{% load staticfiles %}
+{% load static %}
{% block js %}
{{ block.super }}
diff --git a/vince/templates/vince/edit_exploit.html b/vince/templates/vince/edit_exploit.html
index 6cfbaf5..b2bd109 100644
--- a/vince/templates/vince/edit_exploit.html
+++ b/vince/templates/vince/edit_exploit.html
@@ -1,6 +1,6 @@
{% extends "vince/modal.html" %}
{% load i18n widget_tweaks %}
-{% load staticfiles %}
+{% load static %}
{% block js %}
{{ block.super }}
{% endblock %}
diff --git a/vince/templates/vince/edit_ticket.html b/vince/templates/vince/edit_ticket.html
index 8e93089..4ed0088 100644
--- a/vince/templates/vince/edit_ticket.html
+++ b/vince/templates/vince/edit_ticket.html
@@ -1,7 +1,7 @@
{% extends VINCETRACK_BASE_TEMPLATE %}{% load i18n %}
{% block vince_title %}{% trans "Edit Ticket" %}{% endblock %}
-{% load staticfiles %}
+{% load static %}
{% block js %}
{{ block.super }}
diff --git a/vince/templates/vince/edit_vulnote.html b/vince/templates/vince/edit_vulnote.html
index 6a63ee7..93ff2ae 100644
--- a/vince/templates/vince/edit_vulnote.html
+++ b/vince/templates/vince/edit_vulnote.html
@@ -1,6 +1,6 @@
{% extends VINCETRACK_BASE_TEMPLATE %}{% load i18n %}
-{% load staticfiles %}
+{% load static %}
{% block js %}
{{ block.super }}
diff --git a/vince/templates/vince/editcontact.html b/vince/templates/vince/editcontact.html
index 4d1bd33..d700cd0 100644
--- a/vince/templates/vince/editcontact.html
+++ b/vince/templates/vince/editcontact.html
@@ -1,5 +1,5 @@
{% extends VINCETRACK_BASE_TEMPLATE %}
-{% load staticfiles %}
+{% load static %}
{% block js %}
{{ block.super }}
diff --git a/vince/templates/vince/editgroup.html b/vince/templates/vince/editgroup.html
index a39093b..24875dc 100644
--- a/vince/templates/vince/editgroup.html
+++ b/vince/templates/vince/editgroup.html
@@ -1,5 +1,5 @@
{% extends VINCETRACK_BASE_TEMPLATE %}
-{% load staticfiles %}
+{% load static %}
{% block js %}
{{ block.super }}
diff --git a/vince/templates/vince/editvendorstatus.html b/vince/templates/vince/editvendorstatus.html
index d9c30e5..769f66c 100644
--- a/vince/templates/vince/editvendorstatus.html
+++ b/vince/templates/vince/editvendorstatus.html
@@ -1,7 +1,7 @@
{% extends VINCETRACK_BASE_TEMPLATE %}{% load i18n %}
{% block vince_title %}{% trans "Edit Vendor Status" %}{% endblock %}
-{% load staticfiles %}
+{% load static %}
{% block js %}
{{ block.super }}
diff --git a/vince/templates/vince/editvul.html b/vince/templates/vince/editvul.html
index aae646a..1746326 100644
--- a/vince/templates/vince/editvul.html
+++ b/vince/templates/vince/editvul.html
@@ -1,6 +1,6 @@
{% extends "vince/modal.html" %}
{% load i18n widget_tweaks %}
-{% load staticfiles %}
+{% load static %}
{% block content %}
diff --git a/vince/templates/vince/email_all.html b/vince/templates/vince/email_all.html
index 48d9da1..c02f339 100644
--- a/vince/templates/vince/email_all.html
+++ b/vince/templates/vince/email_all.html
@@ -1,7 +1,7 @@
{% extends VINCETRACK_BASE_TEMPLATE %}{% load i18n %}
{% block vince_title %}{% trans "Email All" %}{% endblock %}
-{% load staticfiles %}
+{% load static %}
{% block js %}
{{ block.super }}
diff --git a/vince/templates/vince/email_templates.html b/vince/templates/vince/email_templates.html
index 16353c2..46e994b 100644
--- a/vince/templates/vince/email_templates.html
+++ b/vince/templates/vince/email_templates.html
@@ -1,7 +1,7 @@
{% extends VINCETRACK_BASE_TEMPLATE %}{% load i18n %}
{% block vince_title %}{% trans "Email Template Management" %}{% endblock %}
-{% load staticfiles %}
+{% load static %}
{% block js %}
{{ block.super }}
diff --git a/vince/templates/vince/emails.html b/vince/templates/vince/emails.html
index 14bc17c..fbe1ace 100644
--- a/vince/templates/vince/emails.html
+++ b/vince/templates/vince/emails.html
@@ -1,7 +1,7 @@
{% extends VINCETRACK_BASE_TEMPLATE %}{% load i18n %}
{% block vince_title %}{% trans "VINCE Email" %}{% endblock %}
-{% load staticfiles %}
+{% load static %}
{% block js %}
{{ block.super }}
diff --git a/vince/templates/vince/group.html b/vince/templates/vince/group.html
index 02353f4..3287dc1 100644
--- a/vince/templates/vince/group.html
+++ b/vince/templates/vince/group.html
@@ -1,6 +1,6 @@
{% extends VINCETRACK_BASE_TEMPLATE %}
{% load i18n humanize %}
-{% load staticfiles %}
+{% load static %}
{% block js %}
{{ block.super }}
diff --git a/vince/templates/vince/ignored_users.html b/vince/templates/vince/ignored_users.html
index 747d138..525dfe8 100644
--- a/vince/templates/vince/ignored_users.html
+++ b/vince/templates/vince/ignored_users.html
@@ -1,7 +1,7 @@
{% extends VINCETRACK_BASE_TEMPLATE %}{% load i18n humanize post_tags %}
{% block vince_title %}{% trans "Ignored Users" %}{% endblock %}
-{% load staticfiles %}
+{% load static %}
{% block content %}
{% load widget_tweaks %}
diff --git a/vince/templates/vince/include/statement.html b/vince/templates/vince/include/statement.html
index 652e87c..6c71ee1 100644
--- a/vince/templates/vince/include/statement.html
+++ b/vince/templates/vince/include/statement.html
@@ -1,7 +1,7 @@
{% extends "vince/modal.html" %}
{% load i18n %}
{% load widget_tweaks %}
-{% load staticfiles %}
+{% load static %}
{% block content %}