diff --git a/taccsite_cms/_settings/djangocms_plugins.py b/taccsite_cms/_settings/djangocms_plugins.py index 21c8d6dec..20e375b1b 100644 --- a/taccsite_cms/_settings/djangocms_plugins.py +++ b/taccsite_cms/_settings/djangocms_plugins.py @@ -39,6 +39,7 @@ ] DJANGOCMS_PICTURE_TEMPLATES = [ ('no_link_to_ext_image', _('Do not link to external image')), + ('header_logo', _('Header logo')), ] ######################## diff --git a/taccsite_cms/management/commands/util.py b/taccsite_cms/management/commands/util.py index 1e8ac6e35..3c8ec5af8 100644 --- a/taccsite_cms/management/commands/util.py +++ b/taccsite_cms/management/commands/util.py @@ -30,6 +30,25 @@ def add_perm(group, app_label, model_name, perm_name): else: group.permissions.add( Permission.objects.get( name=perm_name )) +def del_perm(group, app_label, model_name, perm_name): + """ + Delete specific permission from a given group + """ + logger.debug(f'Removing permission ({app_label}.{model_name}) "{perm_name}"') + if app_label and model_name: + model = model_name.lower().replace(' ', '') + content_type = ContentType.objects.get( + app_label=app_label, + model=model + ) + group.permissions.remove( + Permission.objects.get( + name=perm_name, + content_type=content_type + ) + ) + else: + group.permissions.remove(Permission.objects.get(name=perm_name)) # Page @@ -44,9 +63,15 @@ def let_view_page_and_structure(group): add_perm(group, 'cms', 'page', 'Can change page') add_perm(group, 'cms', 'placeholder', 'Can use Structure mode') - # HELP: Not necessary on TACC (as of Core-CMS v4.17.1) - # Is necessary on WTCS (as of Core-CMS v4.20.2) - add_perm(group, 'cms', 'static placeholder', 'Can change static placeholder') + # To delete undesired permission from sites that still have it: + # ```py + # add_perm(group, 'cms', 'static placeholder', 'Can change static placeholder') + # ``` + # HELP: Should "Sitewide Content Manager" keep this perm? + # SEE: https://weteachcs.org/admin/auth/group/9/change/ + # FAQ: Only superuser may edit static placeholders (footer, header-content) + # TODO: After this is deployed on all sites once, delete this code + del_perm(group, 'cms', 'static placeholder', 'Can change static placeholder') diff --git a/taccsite_cms/settings/settings.py b/taccsite_cms/settings/settings.py index c66bede6b..4758d380b 100644 --- a/taccsite_cms/settings/settings.py +++ b/taccsite_cms/settings/settings.py @@ -561,7 +561,13 @@ def get_subdirs_as_module_names(path): } CMS_PERMISSION = True -CMS_PLACEHOLDER_CONF = {} +CMS_PLACEHOLDER_CONF = { + 'header-content': { + # One PicturePlugin with template "Header logo" = custom logo + # Any other plugins render inline within the header nav + 'limits': {'global': 10}, + }, +} THUMBNAIL_HIGH_RESOLUTION = True THUMBNAIL_PROCESSORS = ( diff --git a/taccsite_cms/templates/djangocms_picture/header_logo/picture.html b/taccsite_cms/templates/djangocms_picture/header_logo/picture.html new file mode 100644 index 000000000..919f259f9 --- /dev/null +++ b/taccsite_cms/templates/djangocms_picture/header_logo/picture.html @@ -0,0 +1,3 @@ +{% load header_content_tags %} +{% header_logo_from_picture instance picture_link as plugin_logo %} +{% include "header_logo.html" with plugin_logo=plugin_logo %} diff --git a/taccsite_cms/templates/header.html b/taccsite_cms/templates/header.html index 6eaa2ce2a..9062397bb 100644 --- a/taccsite_cms/templates/header.html +++ b/taccsite_cms/templates/header.html @@ -1,4 +1,5 @@ {# @var settings #} +{% load cms_tags %} {# WARNING: Some markup is duplicated in other repositories #} {# SEE: https://confluence.tacc.utexas.edu/x/LoCnCQ #} @@ -22,7 +23,9 @@ {% endif %} "> - {% include "header_logo.html" %} + {% static_placeholder "header-content" or %} + {% include "header_logo.html" %} + {% endstatic_placeholder %}