diff --git a/apps/custom_example/templates/custom_example/custom_example.html b/apps/custom_example/templates/custom_example/custom_example.html
index 3b217c361..c292fcac0 100644
--- a/apps/custom_example/templates/custom_example/custom_example.html
+++ b/apps/custom_example/templates/custom_example/custom_example.html
@@ -1,7 +1,7 @@
{% extends "base.html" %}
{% load static %}
{% block content %}
-
+
Custom App
This page will contain custom content.
{%endblock %}
diff --git a/docs/_layouts/tacc.minimal.override.html b/docs/_layouts/tacc.minimal.override.html
index b29e8d0e3..167d2ce04 100644
--- a/docs/_layouts/tacc.minimal.override.html
+++ b/docs/_layouts/tacc.minimal.override.html
@@ -6,13 +6,13 @@
{% seo %}
-
-
-
+
+
+
-
+
diff --git a/poetry.lock b/poetry.lock
index 952267f7f..4081361f5 100644
--- a/poetry.lock
+++ b/poetry.lock
@@ -1,10 +1,9 @@
-# This file is automatically @generated by Poetry 1.4.0 and should not be changed by hand.
+# This file is automatically @generated by Poetry 1.5.1 and should not be changed by hand.
[[package]]
name = "aldryn-apphooks-config"
version = "0.6.0"
description = "Namespaces based configuration for Apphooks"
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -20,7 +19,6 @@ django-cms = ">=3.5"
name = "aldryn-boilerplates"
version = "0.8.0"
description = "An extension that allows re-usable apps to provide sets of templates and staticfiles for different boilerplates."
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -36,7 +34,6 @@ YURL = ">=0.13"
name = "aldryn-common"
version = "1.0.5"
description = "Common utilities"
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -52,7 +49,6 @@ six = "*"
name = "aldryn-search"
version = "1.1.0"
description = "An extension to django CMS to provide multilingual Haystack indexes"
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -73,7 +69,6 @@ setuptools = "*"
name = "appnope"
version = "0.1.3"
description = "Disable App Nap on macOS >= 10.9"
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -85,7 +80,6 @@ files = [
name = "asgiref"
version = "3.2.10"
description = "ASGI specs, helper code, and adapters"
-category = "main"
optional = false
python-versions = ">=3.5"
files = [
@@ -100,7 +94,6 @@ tests = ["pytest", "pytest-asyncio"]
name = "astroid"
version = "2.4.2"
description = "An abstract syntax tree for Python with inference support."
-category = "main"
optional = false
python-versions = ">=3.5"
files = [
@@ -109,7 +102,7 @@ files = [
]
[package.dependencies]
-lazy-object-proxy = ">=1.4.0,<1.5.0"
+lazy-object-proxy = "==1.4.*"
six = ">=1.12,<2.0"
wrapt = ">=1.11,<2.0"
@@ -117,7 +110,6 @@ wrapt = ">=1.11,<2.0"
name = "asttokens"
version = "2.2.1"
description = "Annotate AST trees with source code positions"
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -135,7 +127,6 @@ test = ["astroid", "pytest"]
name = "autopep8"
version = "1.5.4"
description = "A tool that automatically formats Python code to conform to the PEP 8 style guide"
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -150,7 +141,6 @@ toml = "*"
name = "backcall"
version = "0.2.0"
description = "Specifications for callback functions passed in to an API"
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -162,7 +152,6 @@ files = [
name = "certifi"
version = "2020.6.20"
description = "Python package for providing Mozilla's CA Bundle."
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -174,7 +163,6 @@ files = [
name = "chardet"
version = "3.0.4"
description = "Universal encoding detector for Python 2 and 3"
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -186,7 +174,6 @@ files = [
name = "charset-normalizer"
version = "2.0.12"
description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet."
-category = "main"
optional = false
python-versions = ">=3.5.0"
files = [
@@ -201,7 +188,6 @@ unicode-backport = ["unicodedata2"]
name = "colorama"
version = "0.4.6"
description = "Cross-platform colored terminal text."
-category = "main"
optional = false
python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7"
files = [
@@ -213,7 +199,6 @@ files = [
name = "colorclass"
version = "2.2.0"
description = "Colorful worry-free console applications for Linux, Mac OS X, and Windows."
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -224,7 +209,6 @@ files = [
name = "decorator"
version = "5.1.1"
description = "Decorators for Humans"
-category = "main"
optional = false
python-versions = ">=3.5"
files = [
@@ -236,7 +220,6 @@ files = [
name = "django"
version = "2.2.27"
description = "A high-level Python Web framework that encourages rapid development and clean, pragmatic design."
-category = "main"
optional = false
python-versions = ">=3.5"
files = [
@@ -256,7 +239,6 @@ bcrypt = ["bcrypt"]
name = "django-appconf"
version = "1.0.4"
description = "A helper class for handling configuration defaults of packaged apps gracefully."
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -271,7 +253,6 @@ django = "*"
name = "django-appdata"
version = "0.3.0"
description = "Extendable field that enables Django apps to store their data on your models."
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -286,7 +267,6 @@ six = "*"
name = "django-auth-ldap"
version = "2.2.0"
description = "Django LDAP authentication backend."
-category = "main"
optional = false
python-versions = ">=3.5"
files = [
@@ -302,7 +282,6 @@ python-ldap = ">=3.1"
name = "django-classy-tags"
version = "2.0.0"
description = "Class based template tags for Django"
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -317,7 +296,6 @@ django = ">=2.2"
name = "django-cms"
version = "3.7.4"
description = "An Advanced Django CMS"
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -334,11 +312,28 @@ django-treebeard = ">=4.3"
djangocms-admin-style = ">=1.2"
six = "*"
+[[package]]
+name = "django-csp"
+version = "3.7"
+description = "Django Content Security Policy support."
+optional = false
+python-versions = "*"
+files = [
+ {file = "django_csp-3.7-py2.py3-none-any.whl", hash = "sha256:01443a07723f9a479d498bd7bb63571aaa771e690f64bde515db6cdb76e8041a"},
+ {file = "django_csp-3.7.tar.gz", hash = "sha256:01eda02ad3f10261c74131cdc0b5a6a62b7c7ad4fd017fbefb7a14776e0a9727"},
+]
+
+[package.dependencies]
+Django = ">=1.8"
+
+[package.extras]
+jinja2 = ["jinja2 (>=2.9.6)"]
+tests = ["jinja2 (>=2.9.6)", "mock (==1.0.1)", "pep8 (==1.4.6)", "pytest (<4.0)", "pytest-django", "pytest-flakes (==1.0.1)", "pytest-pep8 (==1.0.6)", "six (==1.12.0)"]
+
[[package]]
name = "django-filer"
version = "2.0.2"
description = "A file management application for django that makes handling of files and images a breeze."
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -356,7 +351,6 @@ Unidecode = ">=0.04,<1.2"
name = "django-formtools"
version = "2.2"
description = "A set of high-level abstractions for Django forms"
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -371,7 +365,6 @@ Django = ">=1.11"
name = "django-haystack"
version = "3.0"
description = "Pluggable search for Django."
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -385,7 +378,6 @@ Django = ">=2.2"
name = "django-ipware"
version = "3.0.1"
description = "A Django utility application that returns client's real IP address"
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -396,7 +388,6 @@ files = [
name = "django-js-asset"
version = "1.2.2"
description = "script tag with additional attributes for django.forms.Media"
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -408,7 +399,6 @@ files = [
name = "django-meta"
version = "1.7.0"
description = "Pluggable app for handling webpage meta tags and OpenGraph properties"
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -423,7 +413,6 @@ six = "*"
name = "django-mptt"
version = "0.11.0"
description = "Utilities for implementing Modified Preorder Tree Traversal with your Django Models and working with trees of Model instances."
-category = "main"
optional = false
python-versions = ">=3.5"
files = [
@@ -439,7 +428,6 @@ django-js-asset = "*"
name = "django-parler"
version = "2.2"
description = "Simple Django model translations without nasty hacks, featuring nice admin integration."
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -450,7 +438,6 @@ files = [
name = "django-polymorphic"
version = "3.0.0"
description = "Seamless polymorphic inheritance for Django models"
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -465,7 +452,6 @@ Django = ">=2.1"
name = "django-recaptcha"
version = "3.0.0"
description = "Django recaptcha form field/widget app."
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -480,7 +466,6 @@ django = "*"
name = "django-sekizai"
version = "2.0.0"
description = "Django Sekizai"
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -496,7 +481,6 @@ django-classy-tags = ">=1"
name = "django-settings-export"
version = "1.2.1"
description = "This Django app allows you to export certain settings to your templates."
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -510,7 +494,6 @@ django = "*"
name = "django-sortedm2m"
version = "3.0.2"
description = "Drop-in replacement for django's many to many field with sorted relations."
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -522,7 +505,6 @@ files = [
name = "django-spurl"
version = "0.6.7"
description = "A Django template library for manipulating URLs."
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -538,7 +520,6 @@ urlobject = ">=2.4.0"
name = "django-standard-form"
version = "1.1.1"
description = "Quick and simple django templatetags for displaying forms."
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -553,7 +534,6 @@ django-classy-tags = ">=0.3.3"
name = "django-taggit"
version = "1.2.0"
description = "django-taggit is a reusable Django application for simple tagging."
-category = "main"
optional = false
python-versions = ">=3.5"
files = [
@@ -568,7 +548,6 @@ Django = ">=1.11"
name = "django-taggit-autosuggest"
version = "0.3.8"
description = "Autosuggestions for django-taggit"
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -583,7 +562,6 @@ django-taggit = "*"
name = "django-taggit-templatetags"
version = "0.2.5"
description = "Templatetags for django-taggit."
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -600,7 +578,6 @@ django-templatetag-sugar = ">=0.1"
name = "django-templatetag-sugar"
version = "1.0"
description = "A library to make Django's template tags sweet."
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -612,7 +589,6 @@ files = [
name = "django-test-without-migrations"
version = "0.6"
description = "Disable migrations when running your Django tests."
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -623,7 +599,6 @@ files = [
name = "django-treebeard"
version = "4.3.1"
description = "Efficient tree implementations for Django"
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -637,7 +612,6 @@ Django = ">=1.8"
name = "djangocms-admin-style"
version = "2.0.0"
description = "Adds pretty CSS styles for the django CMS admin interface."
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -649,7 +623,6 @@ files = [
name = "djangocms-apphook-setup"
version = "0.4.1"
description = "Library to auto setup apphooks"
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -664,7 +637,6 @@ django-cms = "*"
name = "djangocms-attributes-field"
version = "2.0.0"
description = "Adds attributes to Django models."
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -679,7 +651,6 @@ django-cms = ">=3.7"
name = "djangocms-blog"
version = "1.1.1"
description = "A djangoCMS 3 blog application"
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -711,7 +682,6 @@ taggit-helpers = ["django-taggit-helpers"]
name = "djangocms-bootstrap4"
version = "2.0.0"
description = "Adds Bootstrap 4 components as plugins."
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -732,7 +702,6 @@ djangocms-text-ckeditor = ">=3.1.0"
name = "djangocms-column"
version = "1.11.0"
description = "Column Plugin for django CMS"
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -749,7 +718,6 @@ six = ">=1.9.0"
name = "djangocms-file"
version = "3.0.0"
description = "Adds file plugin to django CMS"
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -766,7 +734,6 @@ djangocms-attributes-field = ">=1"
name = "djangocms-forms-maintained"
version = "202206141440"
description = "The easiest and most flexible Django CMS Form builder w/ ReCaptcha v2 support!"
-category = "main"
optional = false
python-versions = "*"
files = []
@@ -793,7 +760,6 @@ resolved_reference = "d8a69efd2f447ee2f940c7b6f5b8b088c9cb79ed"
name = "djangocms-googlemap"
version = "2.0.0"
description = "Adds Google Maps plugins to django CMS."
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -809,7 +775,6 @@ django-filer = ">=1.7"
name = "djangocms-icon"
version = "2.0.0"
description = "Adds icon plugin to django CMS."
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -825,7 +790,6 @@ djangocms-attributes-field = ">=1"
name = "djangocms-link"
version = "3.0.0"
description = "Adds a link plugin to django CMS"
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -842,7 +806,6 @@ djangocms-attributes-field = ">=1"
name = "djangocms-page-meta"
version = "0.10.0"
description = "OpenGraph, Twitter Card and Google+ snippet tags for django CMS 3 pages"
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -859,7 +822,6 @@ django-meta = ">=1.3"
name = "djangocms-picture"
version = "3.0.0"
description = "Adds an image plugin to django CMS"
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -877,7 +839,6 @@ easy-thumbnails = "*"
name = "djangocms-snippet"
version = "3.0.0"
description = "Adds snippet plugin to django CMS."
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -892,7 +853,6 @@ django-cms = ">=3.7"
name = "djangocms-style"
version = "3.0.0"
description = "Adds style plugin to django CMS"
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -908,7 +868,6 @@ djangocms-attributes-field = ">=1"
name = "djangocms-tacc-image-gallery"
version = "0.1.3"
description = ""
-category = "main"
optional = false
python-versions = "*"
files = []
@@ -930,7 +889,6 @@ resolved_reference = "cb6834936c508df449914641dafa232c54c858ef"
name = "djangocms-text-ckeditor"
version = "3.10.0"
description = "Text Plugin for django CMS with CKEditor support"
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -946,7 +904,6 @@ Pillow = "*"
name = "djangocms-transfer"
version = "1.0.0"
description = "Adds import and export of plugin data."
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -961,7 +918,6 @@ django-cms = ">=3.7"
name = "djangocms-video"
version = "3.0.0"
description = "Adds video plugin to django CMS."
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -978,7 +934,6 @@ djangocms-attributes-field = ">=1"
name = "docopt"
version = "0.6.2"
description = "Pythonic argument parser, that will make you smile"
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -989,7 +944,6 @@ files = [
name = "easy-thumbnails"
version = "2.7"
description = "Easy thumbnails for Django"
-category = "main"
optional = false
python-versions = ">=3.5"
files = [
@@ -1004,7 +958,6 @@ pillow = "*"
name = "elasticsearch"
version = "7.9.1"
description = "Python client for Elasticsearch"
-category = "main"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, <4"
files = [
@@ -1026,7 +979,6 @@ requests = ["requests (>=2.4.0,<3.0.0)"]
name = "elasticsearch-dsl"
version = "7.3.0"
description = "Python client for Elasticsearch"
-category = "main"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
files = [
@@ -1046,7 +998,6 @@ develop = ["coverage (<5.0.0)", "mock", "pytest (>=3.0.0)", "pytest-cov", "pytes
name = "et-xmlfile"
version = "1.1.0"
description = "An implementation of lxml.xmlfile for the standard library"
-category = "main"
optional = false
python-versions = ">=3.6"
files = [
@@ -1058,7 +1009,6 @@ files = [
name = "executing"
version = "1.2.0"
description = "Get the currently executing AST node of a frame, and other information"
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -1073,7 +1023,6 @@ tests = ["asttokens", "littleutils", "pytest", "rich"]
name = "flake8"
version = "3.8.3"
description = "the modular source code checker: pep8 pyflakes and co"
-category = "main"
optional = false
python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7"
files = [
@@ -1090,7 +1039,6 @@ pyflakes = ">=2.2.0,<2.3.0"
name = "gunicorn"
version = "20.0.4"
description = "WSGI HTTP Server for UNIX"
-category = "main"
optional = false
python-versions = ">=3.4"
files = [
@@ -1111,7 +1059,6 @@ tornado = ["tornado (>=0.2)"]
name = "hashids"
version = "1.3.1"
description = "Implements the hashids algorithm in python. For more information, visit http://hashids.org/"
-category = "main"
optional = false
python-versions = ">=2.7"
files = [
@@ -1126,7 +1073,6 @@ test = ["pytest (>=2.1.0)"]
name = "html5lib"
version = "1.1"
description = "HTML parser based on the WHATWG HTML specification"
-category = "main"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
files = [
@@ -1148,7 +1094,6 @@ lxml = ["lxml"]
name = "idna"
version = "2.10"
description = "Internationalized Domain Names in Applications (IDNA)"
-category = "main"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
files = [
@@ -1160,7 +1105,6 @@ files = [
name = "importlib-metadata"
version = "1.7.0"
description = "Read metadata from Python packages"
-category = "main"
optional = false
python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7"
files = [
@@ -1179,7 +1123,6 @@ testing = ["importlib-resources (>=1.3)", "packaging", "pep517"]
name = "ipython"
version = "8.12.2"
description = "IPython: Productive Interactive Computing"
-category = "main"
optional = false
python-versions = ">=3.8"
files = [
@@ -1219,7 +1162,6 @@ test-extra = ["curio", "matplotlib (!=3.2.0)", "nbformat", "numpy (>=1.21)", "pa
name = "isort"
version = "5.5.2"
description = "A Python utility / library to sort Python imports."
-category = "main"
optional = false
python-versions = ">=3.6,<4.0"
files = [
@@ -1236,7 +1178,6 @@ requirements-deprecated-finder = ["pip-api", "pipreqs"]
name = "jedi"
version = "0.17.2"
description = "An autocompletion tool for Python that can be used for text editors."
-category = "main"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
files = [
@@ -1255,7 +1196,6 @@ testing = ["Django (<3.1)", "colorama", "docopt", "pytest (>=3.9.0,<5.0.0)"]
name = "jsonfield"
version = "3.1.0"
description = "A reusable Django field that allows you to store validated JSON in your model."
-category = "main"
optional = false
python-versions = ">=3.6"
files = [
@@ -1270,7 +1210,6 @@ Django = ">=2.2"
name = "lazy-object-proxy"
version = "1.4.3"
description = "A fast and thorough lazy object proxy."
-category = "main"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
files = [
@@ -1301,7 +1240,6 @@ files = [
name = "lxml"
version = "4.6.5"
description = "Powerful and Pythonic XML processing library combining libxml2/libxslt with the ElementTree API."
-category = "main"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, != 3.4.*"
files = [
@@ -1377,7 +1315,6 @@ source = ["Cython (>=0.29.7)"]
name = "matplotlib-inline"
version = "0.1.6"
description = "Inline Matplotlib backend for Jupyter"
-category = "main"
optional = false
python-versions = ">=3.5"
files = [
@@ -1392,7 +1329,6 @@ traitlets = "*"
name = "mccabe"
version = "0.6.1"
description = "McCabe checker, plugin for flake8"
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -1404,7 +1340,6 @@ files = [
name = "openpyxl"
version = "3.1.2"
description = "A Python library to read/write Excel 2010 xlsx/xlsm files"
-category = "main"
optional = false
python-versions = ">=3.6"
files = [
@@ -1419,7 +1354,6 @@ et-xmlfile = "*"
name = "packaging"
version = "20.4"
description = "Core utilities for Python packages"
-category = "main"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
files = [
@@ -1435,7 +1369,6 @@ six = "*"
name = "parso"
version = "0.7.1"
description = "A Python Parser"
-category = "main"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
files = [
@@ -1450,7 +1383,6 @@ testing = ["docopt", "pytest (>=3.0.7)"]
name = "pexpect"
version = "4.8.0"
description = "Pexpect allows easy control of interactive console applications."
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -1465,7 +1397,6 @@ ptyprocess = ">=0.5"
name = "pickleshare"
version = "0.7.5"
description = "Tiny 'shelve'-like database with concurrency support"
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -1477,7 +1408,6 @@ files = [
name = "pillow"
version = "9.0.1"
description = "Python Imaging Library (Fork)"
-category = "main"
optional = false
python-versions = ">=3.7"
files = [
@@ -1522,7 +1452,6 @@ files = [
name = "pip-upgrader"
version = "1.4.15"
description = "An interactive pip requirements upgrader. It also updates the version in your requirements.txt file."
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -1544,7 +1473,6 @@ test = ["coverage", "mock", "pytest", "pytest-cov", "pytest-pep8", "responses"]
name = "pluggy"
version = "0.13.1"
description = "plugin and hook calling mechanisms for python"
-category = "main"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
files = [
@@ -1559,7 +1487,6 @@ dev = ["pre-commit", "tox"]
name = "prompt-toolkit"
version = "3.0.38"
description = "Library for building powerful interactive command lines in Python"
-category = "main"
optional = false
python-versions = ">=3.7.0"
files = [
@@ -1574,7 +1501,6 @@ wcwidth = "*"
name = "psycopg2"
version = "2.8.6"
description = "psycopg2 - Python-PostgreSQL Database Adapter"
-category = "main"
optional = false
python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*"
files = [
@@ -1599,7 +1525,6 @@ files = [
name = "psycopg2-binary"
version = "2.8.6"
description = "psycopg2 - Python-PostgreSQL Database Adapter"
-category = "main"
optional = false
python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*"
files = [
@@ -1644,7 +1569,6 @@ files = [
name = "ptyprocess"
version = "0.7.0"
description = "Run a subprocess in a pseudo terminal"
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -1656,7 +1580,6 @@ files = [
name = "pure-eval"
version = "0.2.2"
description = "Safely evaluate AST nodes without side effects"
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -1671,7 +1594,6 @@ tests = ["pytest"]
name = "pyasn1"
version = "0.4.8"
description = "ASN.1 types and codecs"
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -1683,7 +1605,6 @@ files = [
name = "pyasn1-modules"
version = "0.2.8"
description = "A collection of ASN.1-based protocols modules."
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -1698,7 +1619,6 @@ pyasn1 = ">=0.4.6,<0.5.0"
name = "pycodestyle"
version = "2.6.0"
description = "Python style guide checker"
-category = "main"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
files = [
@@ -1710,7 +1630,6 @@ files = [
name = "pydocstyle"
version = "5.1.1"
description = "Python docstring style checker"
-category = "main"
optional = false
python-versions = ">=3.5"
files = [
@@ -1725,7 +1644,6 @@ snowballstemmer = "*"
name = "pyflakes"
version = "2.2.0"
description = "passive checker of Python programs"
-category = "main"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
files = [
@@ -1737,7 +1655,6 @@ files = [
name = "pygments"
version = "2.15.1"
description = "Pygments is a syntax highlighting package written in Python."
-category = "main"
optional = false
python-versions = ">=3.7"
files = [
@@ -1752,7 +1669,6 @@ plugins = ["importlib-metadata"]
name = "pylint"
version = "2.6.0"
description = "python code static checker"
-category = "main"
optional = false
python-versions = ">=3.5.*"
files = [
@@ -1771,7 +1687,6 @@ toml = ">=0.7.1"
name = "pyparsing"
version = "2.4.7"
description = "Python parsing module"
-category = "main"
optional = false
python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*"
files = [
@@ -1783,7 +1698,6 @@ files = [
name = "python-dateutil"
version = "2.8.1"
description = "Extensions to the standard Python datetime module"
-category = "main"
optional = false
python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7"
files = [
@@ -1798,7 +1712,6 @@ six = ">=1.5"
name = "python-jsonrpc-server"
version = "0.4.0"
description = "JSON RPC 2.0 server library"
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -1816,7 +1729,6 @@ test = ["coverage", "mock", "pycodestyle", "pyflakes", "pylint", "pytest", "pyte
name = "python-language-server"
version = "0.35.0"
description = "Python Language Server for the Language Server Protocol"
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -1847,7 +1759,6 @@ yapf = ["yapf"]
name = "python-ldap"
version = "3.4.0"
description = "Python modules for implementing LDAP clients"
-category = "main"
optional = false
python-versions = ">=3.6"
files = [
@@ -1862,7 +1773,6 @@ pyasn1_modules = ">=0.1.5"
name = "pytz"
version = "2020.1"
description = "World timezone definitions, modern and historical"
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -1874,7 +1784,6 @@ files = [
name = "pyyaml"
version = "6.0"
description = "YAML parser and emitter for Python"
-category = "main"
optional = false
python-versions = ">=3.6"
files = [
@@ -1924,7 +1833,6 @@ files = [
name = "requests"
version = "2.27.1"
description = "Python HTTP for Humans."
-category = "main"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*"
files = [
@@ -1946,7 +1854,6 @@ use-chardet-on-py3 = ["chardet (>=3.0.2,<5)"]
name = "rope"
version = "0.17.0"
description = "a python refactoring library..."
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -1960,7 +1867,6 @@ dev = ["pytest"]
name = "rt"
version = "2.2.2"
description = "Python interface to Request Tracker API"
-category = "main"
optional = false
python-versions = ">=3.5"
files = [
@@ -1980,7 +1886,6 @@ test = ["codecov", "coveralls", "nose"]
name = "setuptools"
version = "67.8.0"
description = "Easily download, build, install, upgrade, and uninstall Python packages"
-category = "main"
optional = false
python-versions = ">=3.7"
files = [
@@ -1997,7 +1902,6 @@ testing-integration = ["build[virtualenv]", "filelock (>=3.4.0)", "jaraco.envs (
name = "six"
version = "1.15.0"
description = "Python 2 and 3 compatibility utilities"
-category = "main"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*"
files = [
@@ -2009,7 +1913,6 @@ files = [
name = "snowballstemmer"
version = "2.0.0"
description = "This package provides 26 stemmers for 25 languages generated from Snowball algorithms."
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -2021,7 +1924,6 @@ files = [
name = "sqlparse"
version = "0.3.1"
description = "Non-validating SQL parser"
-category = "main"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
files = [
@@ -2033,7 +1935,6 @@ files = [
name = "stack-data"
version = "0.6.2"
description = "Extract data from python stack frames and tracebacks for informative displays"
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -2053,7 +1954,6 @@ tests = ["cython", "littleutils", "pygments", "pytest", "typeguard"]
name = "tablib"
version = "2.0.0"
description = "Format agnostic tabular data library (XLS, JSON, YAML, CSV)"
-category = "main"
optional = false
python-versions = ">=3.5"
files = [
@@ -2079,7 +1979,6 @@ yaml = ["pyyaml"]
name = "terminaltables"
version = "3.1.0"
description = "Generate simple tables in terminals from a nested list of strings."
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -2090,7 +1989,6 @@ files = [
name = "toml"
version = "0.10.1"
description = "Python Library for Tom's Obvious, Minimal Language"
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -2102,7 +2000,6 @@ files = [
name = "traitlets"
version = "5.9.0"
description = "Traitlets Python configuration system"
-category = "main"
optional = false
python-versions = ">=3.7"
files = [
@@ -2118,7 +2015,6 @@ test = ["argcomplete (>=2.0)", "pre-commit", "pytest", "pytest-mock"]
name = "typed-ast"
version = "1.4.1"
description = "a fork of Python 2 and 3 ast modules with type comment support"
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -2158,7 +2054,6 @@ files = [
name = "typing-extensions"
version = "4.6.3"
description = "Backported and Experimental Type Hints for Python 3.7+"
-category = "main"
optional = false
python-versions = ">=3.7"
files = [
@@ -2170,7 +2065,6 @@ files = [
name = "ujson"
version = "3.2.0"
description = "Ultra fast JSON encoder and decoder for Python"
-category = "main"
optional = false
python-versions = ">=3.5"
files = [
@@ -2201,7 +2095,6 @@ files = [
name = "unidecode"
version = "1.1.1"
description = "ASCII transliterations of Unicode text"
-category = "main"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
files = [
@@ -2213,7 +2106,6 @@ files = [
name = "urllib3"
version = "1.26.5"
description = "HTTP library with thread-safe connection pooling, file post, and more."
-category = "main"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4"
files = [
@@ -2230,7 +2122,6 @@ socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"]
name = "urlobject"
version = "2.4.3"
description = "A utility class for manipulating URLs."
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -2241,7 +2132,6 @@ files = [
name = "uwsgi"
version = "2.0.19.1"
description = "The uWSGI server"
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -2252,7 +2142,6 @@ files = [
name = "wcwidth"
version = "0.2.6"
description = "Measures the displayed width of unicode strings in a terminal"
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -2264,7 +2153,6 @@ files = [
name = "webencodings"
version = "0.5.1"
description = "Character encoding aliases for legacy web content"
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -2276,7 +2164,6 @@ files = [
name = "wrapt"
version = "1.12.1"
description = "Module for decorators, wrappers and monkey patching."
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -2287,7 +2174,6 @@ files = [
name = "yapf"
version = "0.30.0"
description = "A formatter for Python code."
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -2299,7 +2185,6 @@ files = [
name = "yurl"
version = "1.0.0"
description = "Yurl is alternative url manipulation library"
-category = "main"
optional = false
python-versions = "*"
files = [
@@ -2310,7 +2195,6 @@ files = [
name = "zipp"
version = "3.1.0"
description = "Backport of pathlib-compatible object wrapper for zip files"
-category = "main"
optional = false
python-versions = ">=3.6"
files = [
@@ -2325,4 +2209,4 @@ testing = ["func-timeout", "jaraco.itertools"]
[metadata]
lock-version = "2.0"
python-versions = ">=3.8,<4.0"
-content-hash = "0af1e8456d76ecdaaee4562d47b0e195e05f7d31772cb1a638a82fe6009edf4e"
+content-hash = "41ac06a58110c127e391d0d9e1d8f75efaf9895fd022415668857df0525f5e0b"
diff --git a/pyproject.toml b/pyproject.toml
index 936ad00c1..f9998d5d5 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -22,6 +22,7 @@ django-appdata = "0.3.0"
django-auth-ldap = "2.2.0"
django-classy-tags = "2.0.0"
django-cms = "3.7.4"
+django-csp = "3.7"
django-filer = "2.0.2"
django-formtools = "2.2"
django-haystack = "3.0"
diff --git a/taccsite_cms/contrib/taccsite_system_monitor/templates/system_monitor.html b/taccsite_cms/contrib/taccsite_system_monitor/templates/system_monitor.html
index 21f8e1507..07f4b65bb 100644
--- a/taccsite_cms/contrib/taccsite_system_monitor/templates/system_monitor.html
+++ b/taccsite_cms/contrib/taccsite_system_monitor/templates/system_monitor.html
@@ -1,6 +1,6 @@
{% load static %}
-
+
@@ -31,7 +31,7 @@
-
-
+
-
-
diff --git a/taccsite_cms/templates/admin/djangocms_icon/includes/assets.html b/taccsite_cms/templates/admin/djangocms_icon/includes/assets.html
index ac50054be..ae08f800a 100644
--- a/taccsite_cms/templates/admin/djangocms_icon/includes/assets.html
+++ b/taccsite_cms/templates/admin/djangocms_icon/includes/assets.html
@@ -1,4 +1,4 @@
-
+
{% if settings.TACC_CORE_STYLES_VERSION == 0 %}
-
+
{% elif settings.TACC_CORE_STYLES_VERSION >= 1 %}
-
+
{% endif %}